using System.Collections.Immutable; using SideScrollerGame.Sim.Definitions; using SideScrollerGame.Sim.Input; using SideScrollerGame.Sim.Verification; namespace SideScrollerGame.Sim.Tests; internal static class SimulationTestFactory { public static GameDefinition CreateGameDefinition(AxisAlignedBounds? worldBounds = null, ImmutableArray hazards = default, ImmutableArray triggers = default) { return new(new(worldBounds ?? new(new(0, 0), new(100, 100)), hazards, triggers), ImmutableArray.Create(new PlayerDefinition(new(1), new(10, 20), 10))); } public static SimulationConfig CreateConfig(VerificationMode verificationMode = VerificationMode.None) { return new(SimulationDefaults.DefaultTicksPerSecond, verificationMode); } public static TickActionBatch CreateTick(int tick, params SimulationAction[] actions) { return new(tick, ImmutableArray.Create(actions)); } }