Пример #1
0
        public void TestInvalidRoverMovement()
        {
            Plateau    plateau    = new Plateau("1 1");
            RoverSquad roverSquad = new RoverSquad(plateau);

            Assert.Throws <InvalidOperationException>(() => roverSquad.DeployNewRover("1 2 N", "LMLMLMLMM"));
        }
Пример #2
0
        static void Main(string[] args)
        {
            IPlato marsPlato = new Plato(new Coordinate(5, 5));

            Rover rover1           = new Rover(new Coordinate(1, 2), Direction.N);
            var   rover1Controller = new RoverController(rover1, marsPlato);

            Rover rover2           = new Rover(new Coordinate(3, 3), Direction.E);
            var   rover2Controller = new RoverController(rover2, marsPlato);

            rover1Controller.SetCommand("LMLMLMLMM");
            rover2Controller.SetCommand("MMRMMRMRRM");

            var roverSquad = new RoverSquad();

            roverSquad.AddRover(rover1Controller);
            roverSquad.AddRover(rover2Controller);

            foreach (var rover in roverSquad.Rovers)
            {
                roverSquad.ExecuteRover(rover);
                Console.WriteLine(rover.GetPosition());
            }

            Console.ReadLine();
        }
Пример #3
0
        public void Display(string GRID, string rover1Intial, string roverDir, string rover2Initial, string rover2Dir)
        {
            ILandingSurface landingSurface = new Plateau(GRID);
            RoverSquad      roverSquad     = new RoverSquad(landingSurface);

            roverSquad.DeployNewRover(rover1Intial, roverDir);
            roverSquad.DeployNewRover(rover2Initial, rover2Dir);

            int roverOneIdx = 0;
            int roverTwoIdx = 1;

            IRover roverOne = roverSquad[roverOneIdx];
            IRover roverTwo = roverSquad[roverTwoIdx];

            Console.WriteLine("Input");
            Console.WriteLine(GRID);
            Console.WriteLine(rover1Intial);
            Console.WriteLine(roverDir);
            Console.WriteLine(rover2Initial);
            Console.WriteLine(rover2Dir);
            Console.WriteLine("\n");
            Console.WriteLine("OUTPUT");
            Console.WriteLine(roverOne.XCoordinate.ToString() + " " + roverOne.YCoordinate.ToString() + " " + roverOne.DirectionFacing);
            Console.WriteLine(roverTwo.XCoordinate.ToString() + " " + roverTwo.YCoordinate.ToString() + " " + roverTwo.DirectionFacing);
            Console.ReadLine();
        }
Пример #4
0
        public void TestRovers()
        {
            Plateau    plateau    = new Plateau("5 5");
            RoverSquad roverSquad = new RoverSquad(plateau);

            roverSquad.DeployNewRover("1 2 N", "LMLMLMLMM");
            roverSquad.DeployNewRover("3 3 E", "MMRMMRMRRM");

            int noRovers = 2;

            Assert.True(roverSquad.Count == noRovers);
        }
Пример #5
0
        public void DeployRoverSquad()
        {
            ILandingArea area       = new Plateau("5 5");
            RoverSquad   roverSquad = new RoverSquad(area);

            roverSquad.DeployRover("1 2 N", "LMLMLMLMM");
            roverSquad.DeployRover("3 3 E", "MMRMMRMRRM");

            foreach (var rover in roverSquad)
            {
                Assert.IsNotNull(rover);
            }
        }
Пример #6
0
        public void ValidateRoverSquadPositionDirection()
        {
            ILandingArea area       = new Plateau("5 5");
            RoverSquad   roverSquad = new RoverSquad(area);

            roverSquad.DeployRover("1 2 N", "LMLMLMLMM");
            roverSquad.DeployRover("3 3 E", "MMRMMRMRRM");

            IRoverUnit roverOne = roverSquad.Find(r => r.XPosition == 1 && r.YPosition == 3 && r.PositionFacing == "N");
            IRoverUnit roverTwo = roverSquad.Find(r => r.XPosition == 5 && r.YPosition == 1 && r.PositionFacing == "E");

            Assert.IsNotNull(roverOne);
            Assert.IsNotNull(roverTwo);
        }
Пример #7
0
        public void RoverDirectionTest2()
        {
            IPlato marsPlato        = new Plato(new Coordinate(5, 5));
            Rover  rover2           = new Rover(new Coordinate(3, 3), Direction.E);
            var    rover2Controller = new RoverController(rover2, marsPlato);

            rover2Controller.SetCommand("MMRMMRMRRM");

            var roverSquad = new RoverSquad();

            roverSquad.AddRover(rover2Controller);

            roverSquad.ExecuteRoverCommand(rover2Controller);

            Assert.IsTrue(rover2.Direction == Direction.E);
        }
Пример #8
0
        public void RoverDirectionTest1()
        {
            IPlato marsPlato        = new Plato(new Coordinate(5, 5));
            Rover  rover1           = new Rover(new Coordinate(1, 2), Direction.N);
            var    rover1Controller = new RoverController(rover1, marsPlato);

            rover1Controller.SetCommand("LMLMLMLMM");

            var roverSquad = new RoverSquad();

            roverSquad.AddRover(rover1Controller);

            roverSquad.ExecuteRoverCommand(rover1Controller);

            Assert.IsTrue(rover1.Direction == Direction.N);
        }
Пример #9
0
        public void RoversCordinatesOutOfBound()
        {
            ILandingSurface landingSurface = new Plateau("5 5");
            RoverSquad      roverSquad     = new RoverSquad(landingSurface);

            roverSquad.DeployNewRover("1 2 N", "LMMMMM");
            roverSquad.DeployNewRover("3 3 E", "MMRMMRMMMMMMMMMMMMMMMMMMMMM");

            int roverOneIdx = 0;
            int roverTwoIdx = 1;

            IRover roverOne = roverSquad[roverOneIdx];
            IRover roverTwo = roverSquad[roverTwoIdx];

            Assert.IsTrue(roverOne.DirectionFacing == "OUTOFBOUND", "OUTOFBOUND");
            Assert.IsTrue(roverTwo.DirectionFacing == "OUTOFBOUND", "OUTOFBOUND");
        }
Пример #10
0
        public void DeployRoversTest()
        {
            ILandingSurface landingSurface = new Plateau("5 5");
            RoverSquad      roverSquad     = new RoverSquad(landingSurface);

            roverSquad.DeployNewRover("1 2 N", "LMLMLMLMM");
            roverSquad.DeployNewRover("3 3 E", "MMRMMRMRRM");

            int noRovers    = 2;
            int roverOneIdx = 0;
            int roverTwoIdx = 1;

            Assert.IsTrue(roverSquad.Count == noRovers);

            IRover roverOne = roverSquad[roverOneIdx];
            IRover roverTwo = roverSquad[roverTwoIdx];

            Assert.IsNotNull(roverOne);
            Assert.IsNotNull(roverTwo);
        }
Пример #11
0
        public void DeployRoversAndTestCoordinates()
        {
            ILandingSurface landingSurface = new Plateau("10 10");
            RoverSquad      roverSquad     = new RoverSquad(landingSurface);

            roverSquad.DeployNewRover("1 2 N", "LMLMLMLMM");
            roverSquad.DeployNewRover("3 3 E", "MMRMMRMRRM");

            int roverOneIdx = 0;
            int roverTwoIdx = 1;

            IRover roverOne = roverSquad[roverOneIdx];
            IRover roverTwo = roverSquad[roverTwoIdx];

            Assert.IsTrue(roverOne.XCoordinate == 1, "RoverOne: X != 1");
            Assert.IsTrue(roverOne.YCoordinate == 3, "RoverOne: Y != 3");
            Assert.IsTrue(roverOne.DirectionFacing == "N", "RoverOne: Direction != North");

            Assert.IsTrue(roverTwo.XCoordinate == 5, "RoverTwo: X != 5");
            Assert.IsTrue(roverTwo.YCoordinate == 1, "RoverTwo: Y != 1");
            Assert.IsTrue(roverTwo.DirectionFacing == "E", "RoverTwo: Direction != East");
        }
Пример #12
0
        public void TestRoverMovement()
        {
            Plateau    plateau    = new Plateau("5 5");
            RoverSquad roverSquad = new RoverSquad(plateau);

            roverSquad.DeployNewRover("1 2 N", "LMLMLMLMM");
            roverSquad.DeployNewRover("3 3 E", "MMRMMRMRRM");

            int roverOneIdx = 0;
            int roverTwoIdx = 1;

            IRover roverOne = roverSquad[roverOneIdx];
            IRover roverTwo = roverSquad[roverTwoIdx];

            Assert.True(roverOne.XCoordinate == 1);
            Assert.True(roverOne.YCoordinate == 3);
            Assert.True(roverOne.Direction == "N");

            Assert.True(roverTwo.XCoordinate == 5);
            Assert.True(roverTwo.YCoordinate == 1);
            Assert.True(roverTwo.Direction == "E");
        }