示例#1
0
        public void ExecuteMovementPlan_WhenMovementIsOutOfBounds_ShouldThrow()
        {
            var plateau      = new Plateau(new Coordinate(5, 5));
            var rover        = new Rover("1 2 E", plateau);
            var movementPlan = "MMMMMM";

            Assert.ThrowsException <InvalidMovementException>(() => RoverController.ExecuteMovementPlan(movementPlan, rover, plateau));
        }
示例#2
0
        public void ExecuteMovementPlan_WhenArgumentsValid_ShouldExecute()
        {
            var plateau      = new Plateau(new Coordinate(5, 5));
            var rover        = new Rover("1 2 N", plateau);
            var movementPlan = "LMLMLMLMM";
            var expected     = new Rover("1 3 N", plateau);
            var actual       = RoverController.ExecuteMovementPlan(movementPlan, rover, plateau);

            Assert.AreEqual(expected, actual, message: "");
        }
示例#3
0
        public static void Main(string[] args)
        {
            Console.Write("Enter Graph Upper Right Coordinate: ");
            var coordinate = Console.ReadLine();

            var plateau = new Plateau(RoverController.ParseCoordinate(coordinate));

            for (var roverCount = 1; roverCount < 3; roverCount++)
            {
                Console.Write($"Rover {roverCount} Starting Position: ");
                var startPosition = Console.ReadLine();

                var rover = new Rover(startPosition, plateau);

                Console.Write($"Rover {roverCount} Movement Plan: ");
                var movementPlan = Console.ReadLine();

                rover = RoverController.ExecuteMovementPlan(movementPlan, rover, plateau);

                Console.WriteLine($"Rover {roverCount} Output: {rover}");
            }

            Quit();
        }
示例#4
0
 public void ExecuteMovementPlan_WhenPassedNullValues_ShouldThrow()
 {
     Assert.ThrowsException <ArgumentNullException>(() => RoverController.ExecuteMovementPlan(null, null, null));
 }