public bool DoTest(out int pass, out int fail, out List <string> messages) { pass = 0; fail = 0; messages = new List <string>(); // Create 100 blocks for the red line var blocks = new List <IBlock>(); // First block blocks.Add(new Block(1, StateEnum.Healthy, 100, 0, 0, new[] { 0, 0 }, BlockLengh, DirEnum.East, new[] { "" }, 2, 0, 0, "Red", 100)); // Next 99 blocks for (var i = 2; i < 100; i++) { blocks.Add(new Block(i, StateEnum.Healthy, i - 1, 0, 0, new[] { 0, 0 }, BlockLengh, DirEnum.East, new[] { "" }, i + 1, 0, 0, "Red", 100)); } // Last block blocks.Add(new Block(100, StateEnum.Healthy, 99, 0, 0, new[] { 0, 0 }, BlockLengh, DirEnum.East, new[] { "" }, 1, 0, 0, "Red", 100)); // Environment object ISimulationEnvironment environment = new global::SimulationEnvironment.SimulationEnvironment(); // Our track circuit ITrackCircuit currCircuit = new TrackController.TrackCircuit(environment, blocks.Where(x => x.BlockID > 0 && x.BlockID <= 34).ToList()); // Next track controller's circuit ITrackCircuit nextCircuit = new TrackController.TrackCircuit(environment, blocks.Where(x => x.BlockID > 34 && x.BlockID <= 67).ToList()); // Previous track controller's circuit ITrackCircuit prevCircuit = new TrackController.TrackCircuit(environment, blocks.Where(x => x.BlockID > 67 && x.BlockID <= 100).ToList()); ITrackController prev = new TrackController.TrackController(environment, currCircuit); ITrackController curr = new TrackController.TrackController(environment, currCircuit); ITrackController next = new TrackController.TrackController(environment, currCircuit); prev.Previous = null; prev.Next = curr; curr.Previous = prev; curr.Next = next; next.Previous = curr; next.Next = null; environment.PrimaryTrackControllerGreen = prev; environment.PrimaryTrackControllerRed = prev; environment.TrackModel = new DummyTrackModel(blocks); _env = (global::SimulationEnvironment.SimulationEnvironment)environment; _startBlock = blocks[0]; return(DoTestInternal(out pass, out fail, out messages)); }
public bool DoTest(out int pass, out int fail, out List<string> messages) { pass = 0; fail = 0; messages = new List<string>(); // Create 100 blocks for the red line var blocks = new List<IBlock>(); // First block blocks.Add(new Block(1, StateEnum.Healthy, 100, 0, 0, new[] { 0, 0 }, BlockLengh, DirEnum.East, new[] { "" }, 2, 0, 0, "Red", 100)); // Next 99 blocks for (var i = 2; i < 100; i++) blocks.Add(new Block(i, StateEnum.Healthy, i - 1, 0, 0, new[] { 0, 0 }, BlockLengh, DirEnum.East, new[] { "" }, i + 1, 0, 0, "Red", 100)); // Last block blocks.Add(new Block(100, StateEnum.Healthy, 99, 0, 0, new[] { 0, 0 }, BlockLengh, DirEnum.East, new[] { "" }, 1, 0, 0, "Red", 100)); // Environment object ISimulationEnvironment environment = new global::SimulationEnvironment.SimulationEnvironment(); // Our track circuit ITrackCircuit currCircuit = new TrackController.TrackCircuit(environment, blocks.Where(x => x.BlockID > 0 && x.BlockID <= 34).ToList()); // Next track controller's circuit ITrackCircuit nextCircuit = new TrackController.TrackCircuit(environment, blocks.Where(x => x.BlockID > 34 && x.BlockID <= 67).ToList()); // Previous track controller's circuit ITrackCircuit prevCircuit = new TrackController.TrackCircuit(environment, blocks.Where(x => x.BlockID > 67 && x.BlockID <= 100).ToList()); ITrackController prev = new TrackController.TrackController(environment, currCircuit); ITrackController curr = new TrackController.TrackController(environment, currCircuit); ITrackController next = new TrackController.TrackController(environment, currCircuit); prev.Previous = null; prev.Next = curr; curr.Previous = prev; curr.Next = next; next.Previous = curr; next.Next = null; environment.PrimaryTrackControllerGreen = prev; environment.PrimaryTrackControllerRed = prev; environment.TrackModel = new DummyTrackModel(blocks); _env = (global::SimulationEnvironment.SimulationEnvironment) environment; _startBlock = blocks[0]; return DoTestInternal(out pass, out fail, out messages); }