Move() public method

public Move ( string instructions ) : void
instructions string
return void
Beispiel #1
0
    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);
    }
Beispiel #2
0
    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);
    }
Beispiel #3
0
    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);
    }
Beispiel #4
0
    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);
    }
Beispiel #5
0
    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);
    }
Beispiel #6
0
    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);
    }
Beispiel #7
0
    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);
    }
Beispiel #8
0
    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;
            }
        }
Beispiel #11
0
 public void MoveOneUnit()
 {
     Assert.IsTrue(oRobotSimulator.Place("0,0,NORTH"));
     Assert.IsTrue(oRobotSimulator.Move());
     Assert.AreEqual(oRobotSimulator.Report(), "0,1,NORTH");
 }
Beispiel #12
0
        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);
        }