Exemple #1
0
        /* MARS ROVERS by Acaz
         *
         * I comment some assumptions along the code of my design as my recruiter asked.
         *
         * I tried to make a simple code without an over-engineering but is also flexible to change.
         */
        static void Main(string[] args)
        {
            string[] inputData = File.ReadAllLines("InputData.txt");

            var plateauLength = inputData[0].Split(' ');
            var rover1Position = inputData[1].Split(' ');
            var rover1Instructions = inputData[2];
            var rover2Position = inputData[3].Split(' ');
            var rover2Instructions = inputData[4];

            var plateau = new Plateau(Convert.ToInt32(plateauLength[0]), Convert.ToInt32(plateauLength[1]));

            //Rover 1
            plateau.InsertRover(new Rover(), new Position(Convert.ToInt32(rover1Position[0]), Convert.ToInt32(rover1Position[1]), ConvertToOrientation(Convert.ToChar(rover1Position[2]))));
            foreach (char instruction in rover1Instructions)
            {
                plateau.Rovers[0].ExecuteCommandByLetter(instruction);
            }
            Console.WriteLine(plateau.Rovers[0].ReportPosition());

            //Rover 2
            plateau.InsertRover(new Rover(), new Position(Convert.ToInt32(rover2Position[0]), Convert.ToInt32(rover2Position[1]), ConvertToOrientation(Convert.ToChar(rover2Position[2]))));
            foreach (char instruction in rover2Instructions)
            {
                plateau.Rovers[1].ExecuteCommandByLetter(instruction);
            }
            Console.WriteLine(plateau.Rovers[1].ReportPosition());

            Console.ReadLine();
        }
Exemple #2
0
        public void InsertRover_with_a_instance_of_a_rover_and_a_valid_position_should_insert_the_rover_in_the_reported_position()
        {
            var plateau = new Plateau(5, 5);

            plateau.InsertRover(new Rover(), new Position(1, 2, Orientation.North));

            Assert.AreEqual(1, plateau.Rovers[0].Position.PositionX);
            Assert.AreEqual(2, plateau.Rovers[0].Position.PositionY);
            Assert.AreEqual(Orientation.North, plateau.Rovers[0].Position.Orientation);
        }
Exemple #3
0
        public void InsertRover_with_a_invalid_position_should_throw_a_exception_with_a_error_message()
        {
            var plateau = new Plateau(5, 5);

            try
            {
                plateau.InsertRover(new Rover(), new Position(5, 6, Orientation.North));
            }
            catch (Exception ex)
            {
                Assert.AreEqual("Invalid coordinates.", ex.Message);
                throw;
            }
        }
Exemple #4
0
 public void Plateau_constructor_with_5_and_5_should_get_a_instance_of_plateau_with_5_of_lenght_X_and_5_of_length_Y()
 {
     var plateau = new Plateau(5, 5);
     Assert.AreEqual(5, plateau.LengthX);
     Assert.AreEqual(5, plateau.LengthY);
 }