public void Moving_forward_one_facing_north_increments_y() { var sut = new RobotSimulator(Direction.North, 0, 0); sut.Move("A"); Assert.Equal(Direction.North, sut.Direction); Assert.Equal(0, sut.X); Assert.Equal(1, sut.Y); }
public void Rotating_clockwise_changes_south_to_west() { var sut = new RobotSimulator(Direction.South, 0, 0); sut.Move("R"); Assert.Equal(Direction.West, sut.Direction); Assert.Equal(0, sut.X); Assert.Equal(0, sut.Y); }
public void Rotating_counter_clockwise_changes_east_to_north() { var sut = new RobotSimulator(Direction.East, 0, 0); sut.Move("L"); Assert.Equal(Direction.North, sut.Direction); Assert.Equal(0, sut.X); Assert.Equal(0, sut.Y); }
public void Follow_series_of_instructions_moving_east_and_north() { var sut = new RobotSimulator(Direction.South, 8, 4); sut.Move("LAAARRRALLLL"); Assert.Equal(Direction.North, sut.Direction); Assert.Equal(11, sut.X); Assert.Equal(5, sut.Y); }
public void Follow_series_of_instructions_moving_west_and_south() { var sut = new RobotSimulator(Direction.East, 2, -7); sut.Move("RRAAAAALA"); Assert.Equal(Direction.South, sut.Direction); Assert.Equal(-3, sut.X); Assert.Equal(-8, sut.Y); }
public void Follow_series_of_instructions_moving_west_and_north() { var sut = new RobotSimulator(Direction.North, 0, 0); sut.Move("LAAARALA"); Assert.Equal(Direction.West, sut.Direction); Assert.Equal(-4, sut.X); Assert.Equal(1, sut.Y); }
public void Follow_series_of_instructions_moving_east_and_north_from_readme() { var sut = new RobotSimulator(Direction.North, 7, 3); sut.Move("RAALAL"); Assert.Equal(Direction.West, sut.Direction); Assert.Equal(9, sut.X); Assert.Equal(4, sut.Y); }
public void Moving_forward_one_facing_west_decrements_x() { var sut = new RobotSimulator(Direction.West, 0, 0); sut.Move("A"); Assert.Equal(Direction.West, sut.Direction); Assert.Equal(-1, sut.X); Assert.Equal(0, sut.Y); }
public void MoveTest(int y) { Location location = new Location() { X = 0, Y = y, F = "NORTH" }; robot.Location = location; robot.Initialised = true; var result = _robotSimulator.Move(robot); Assert.Equal(y + 1, result.Location.Y); }
public void Run(Command command) { if (command == null) { throw new ArgumentNullException(nameof(Command)); } if (command is Command_Left) { _simulator.TurnLeft(); } else if (command is Command_Right) { _simulator.TurnRight(); } else if (command is Command_Move) { _simulator.Move(); } else if (command is Command_Place) { Command_Place cp = (Command_Place)command; _simulator.Place(cp.Position, cp.Facing); } else if (command is Command_Report) { string message = _simulator.Report(); if (message != null) { System.Console.WriteLine(message); } } else { return; } }
public void MoveOneUnit() { Assert.IsTrue(oRobotSimulator.Place("0,0,NORTH")); Assert.IsTrue(oRobotSimulator.Move()); Assert.AreEqual(oRobotSimulator.Report(), "0,1,NORTH"); }
public void MoveTest() { Robot robot = new Robot(); TableTop table = new TableTop(5, 6); IRobotMovingService movingService = new ToyRobotMovingService(); IRobotReportingService reportingService = new ToyRobotReportingService(); IRobotTurningService turningService = new ToyRobotTurningService(); RobotSimulator simulator = new RobotSimulator(robot, table, movingService, turningService, reportingService); simulator.Move(); Assert.IsNull(robot.Position); simulator.Place(new Position(3, 3), Facing.EAST); simulator.Move(); Assert.AreEqual(4, robot.Position.X); Assert.AreEqual(3, robot.Position.Y); Assert.AreEqual(Facing.EAST, robot.Facing); //Invalid moving, position of robot should not been changed. //Test 1 simulator.Place(new Position(0, 0), Facing.SOUTH); simulator.Move(); //Robot move SOUTH from 0,0 //expect new Position is 0,0 Assert.AreEqual(Facing.SOUTH, robot.Facing); Assert.AreEqual(0, robot.Position.X); Assert.AreEqual(0, robot.Position.Y); //Test 2 simulator.Place(new Position(0, 1), Facing.WEST); simulator.Move(); //Robot move WEST from 0,1 //expect new Position is 0,0 Assert.AreEqual(Facing.WEST, robot.Facing); Assert.AreEqual(0, robot.Position.X); Assert.AreEqual(1, robot.Position.Y); //Test 3 simulator.Place(new Position(1, 0), Facing.SOUTH); simulator.Move(); //Robot move NORTH from 1,0 //expect new Position is 1,0 Assert.AreEqual(Facing.SOUTH, robot.Facing); Assert.AreEqual(1, robot.Position.X); Assert.AreEqual(0, robot.Position.Y); //Test 4 simulator.Place(new Position(4, 2), Facing.EAST); simulator.Move(); //Robot move east from 4,2 //expect new Position is 4,2 Assert.AreEqual(Facing.EAST, robot.Facing); Assert.AreEqual(4, robot.Position.X); Assert.AreEqual(2, robot.Position.Y); //Test 5 simulator.Place(new Position(3, 5), Facing.NORTH); simulator.Move(); //Robot move south from 3,5 //expect new Position is 3,5 Assert.AreEqual(Facing.NORTH, robot.Facing); Assert.AreEqual(3, robot.Position.X); Assert.AreEqual(5, robot.Position.Y); //Valid moving, position of robot should been changed. //Test 1 simulator.Place(new Position(1, 1), Facing.EAST); simulator.Move(); //Robot move east from 1,1 //expect new Position is 2,1 Assert.AreEqual(Facing.EAST, robot.Facing); Assert.AreEqual(2, robot.Position.X); Assert.AreEqual(1, robot.Position.Y); //Test 2 simulator.Place(new Position(0, 1), Facing.SOUTH); simulator.Move(); //Robot move SOUTH from 0,1 //expect new Position is 0,0 Assert.AreEqual(Facing.SOUTH, robot.Facing); Assert.AreEqual(0, robot.Position.X); Assert.AreEqual(0, robot.Position.Y); //Test 3 simulator.Place(new Position(1, 0), Facing.WEST); simulator.Move(); //Robot move west from 1,0 //expect new Position is 0,0 Assert.AreEqual(Facing.WEST, robot.Facing); Assert.AreEqual(0, robot.Position.X); Assert.AreEqual(0, robot.Position.Y); //Test 4 simulator.Place(new Position(3, 5), Facing.EAST); simulator.Move(); //Robot move east from 3,5 //expect new Position is 4,5 Assert.AreEqual(Facing.EAST, robot.Facing); Assert.AreEqual(4, robot.Position.X); Assert.AreEqual(5, robot.Position.Y); //Test 5 simulator.Place(new Position(4, 4), Facing.NORTH); simulator.Move(); //Robot move NORTH from 4,4 //expect new Position is 4,5 Assert.AreEqual(Facing.NORTH, robot.Facing); Assert.AreEqual(4, robot.Position.X); Assert.AreEqual(5, robot.Position.Y); }