public void Simulation_AddRover_AddsRoversToList() { var simulationBoundary = new Position(1, 1); var createdSimulation = new DefaultSimulation(simulationBoundary); var roverInitialPosition = new Position(0, 0); var roverInstructions = new RoverInstruction[] { RoverInstruction.Left, RoverInstruction.Move }; createdSimulation.AddRover(roverInitialPosition, roverInstructions); var(rover, currentPosition, instructionList) = createdSimulation.roverList[0]; Assert.IsType <DefaultRover>(rover); Assert.Equal(currentPosition, roverInitialPosition); Assert.Equal(instructionList, roverInstructions); }
//TODO: Find a better way to check the results of running a simulation public void Simulation_Runs_details_Correctly(int simIndex) { var simulationDetails = GetSimulationDetails(simIndex); var testSimulation = new DefaultSimulation(simulationDetails.simulationBoundary); foreach (var RoverEntry in simulationDetails.roverList) { testSimulation.AddRover(RoverEntry.initialPosition, RoverEntry.instructions); } var results = testSimulation.RunSimulation(); var comparedResultList = results.Select((result, index) => { var expectedPosition = simulationDetails.roverList[index].ExpectedFinalPosition; return(expectedPosition.X == result.X && expectedPosition.Y == result.Y, index); }); foreach (var(resultValue, index) in comparedResultList) { Assert.True(resultValue, $"There was an issue with Simulation no. {simIndex}. On rover {index}"); } }