Exemple #1
0
        public void Test_RoverProcessorConstructor_when_Ycoordinate_is_outof_FiledArea()
        {
            // arrange
            var fieldArea = new FieldAreaProcessor(5, 5);

            // act
            var roverProcessorUnderTest = new RoverProcessor(1, 7, "N", fieldArea);
        }
Exemple #2
0
        public void Test_RoverProcessorConstructor_when_Direction_is_incorrect()
        {
            // arrange
            var fieldArea = new FieldAreaProcessor(5, 5);

            // act
            var roverProcessorUnderTest = new RoverProcessor(1, 2, "A", fieldArea);
        }
Exemple #3
0
        public void Test_RoverProcessorConstructor_when_Xcoordinate_is_negative()
        {
            // arrange
            var fieldArea = new FieldAreaProcessor(5, 5);

            // act
            var roverProcessorUnderTest = new RoverProcessor(-1, 2, "N", fieldArea);
        }
Exemple #4
0
        public void Test_RoverProcessorConstructor_ReadRoverCommand_MoveRoverForward_ToPositionString()
        {
            // arrange
            var fieldArea = new FieldAreaProcessor(5, 5);
            var roverProcessorUnderTest = new RoverProcessor(3, 3, "E", fieldArea);

            string roverPosition = roverProcessorUnderTest.ToPositionString();

            Assert.IsNotNull(roverPosition);
        }
Exemple #5
0
        public void Test_RoverProcessorConstructor_ReadRoverCommand_MoveRoverForward_CheckRoverPositionOutsideField_when_inside_fieldarea()
        {
            // arrange
            var fieldArea = new FieldAreaProcessor(5, 5);
            var roverProcessorUnderTest = new RoverProcessor(1, 2, "E", fieldArea);

            roverProcessorUnderTest.ReadRoverCommands("MM");

            bool roverPositionOutsideFieldArea = roverProcessorUnderTest.CheckRoverPositionOutsideField();

            Assert.IsFalse(roverPositionOutsideFieldArea);
        }
Exemple #6
0
        public void Test_RoverProcessorConstructor_ReadRoverCommand_when_valid_commandstring_provided()
        {
            // arrange
            var    fieldArea = new FieldAreaProcessor(5, 5);
            var    roverProcessorUnderTest = new RoverProcessor(1, 2, "N", fieldArea);
            String expectedDirection       = "N";

            // act
            string actualDirection = roverProcessorUnderTest.ReadRoverCommands("LRM");

            // assert
            Assert.AreEqual(expectedDirection, actualDirection);
        }
Exemple #7
0
        public void Test_RoverProcessorConstructor_ReadRoverCommand_MoveRoverForward()
        {
            // arrange
            var fieldArea = new FieldAreaProcessor(5, 5);
            var roverProcessorUnderTest = new RoverProcessor(1, 2, "N", fieldArea);
            var expectedY = 3;

            // act
            roverProcessorUnderTest.MoveRoverForward();

            // assert
            NUnit.Framework.Assert.That(roverProcessorUnderTest.RoverPositionY, NUnit.Framework.Is.EqualTo(expectedY));
        }
Exemple #8
0
        public void Test_RoverProcessorConstructor_ReadRoverCommand_TurnRoverToRight()
        {
            // arrange
            var    fieldArea = new FieldAreaProcessor(5, 5);
            var    roverProcessorUnderTest = new RoverProcessor(1, 2, "N", fieldArea);
            String expectedDirection       = "E";

            // act
            roverProcessorUnderTest.TurnRoverToRight();

            // assert
            NUnit.Framework.Assert.That(roverProcessorUnderTest.Direction, NUnit.Framework.Is.EqualTo(expectedDirection));
        }
        public void Test_FieldAreaProcessorConstructor_when_correct_coordinates_provided()
        {
            // arrange
            var expectedX = 5;
            var expectedY = 5;

            // act
            var fieldAreaUnderTest = new FieldAreaProcessor(5, 5);

            // asserts
            Assert.AreEqual(expectedX, fieldAreaUnderTest.Xcoordinate);
            Assert.AreEqual(expectedY, fieldAreaUnderTest.Ycoordinate);
        }
Exemple #10
0
        public void Test_RoverProcessorConstructor_when_correct_coordinates_provided()
        {
            // arrange
            var fieldArea         = new FieldAreaProcessor(5, 5);
            var expectedX         = 1;
            var expectedY         = 2;
            var expectedDirection = "N";

            // act
            var roverProcessorUnderTest = new RoverProcessor(1, 2, "N", fieldArea);

            // asserts
            Assert.AreEqual(expectedX, roverProcessorUnderTest.RoverPositionX);
            Assert.AreEqual(expectedY, roverProcessorUnderTest.RoverPositionY);
            Assert.AreEqual(expectedDirection, roverProcessorUnderTest.Direction);
        }
Exemple #11
0
        public void Test_RoverProcessorConstructor_ReadRoverCommand_MoveRoverForward_RoverTwo()
        {
            // arrange
            var    fieldArea = new FieldAreaProcessor(5, 5);
            var    roverProcessorUnderTest = new RoverProcessor(3, 3, "E", fieldArea);
            String expectedDirection       = "E";
            int    expectedX = 5;
            int    expectedY = 1;

            // act
            roverProcessorUnderTest.ReadRoverCommands("MMRMMRMRRM");

            // assert
            Assert.AreEqual(expectedDirection, roverProcessorUnderTest.Direction);
            Assert.AreEqual(expectedX, roverProcessorUnderTest.RoverPositionX);
            Assert.AreEqual(expectedY, roverProcessorUnderTest.RoverPositionY);
        }
Exemple #12
0
        public void Test_RoverProcessorConstructor_ReadRoverCommand_MoveRoverForward_RoverOne()
        {
            // arrange
            var    fieldArea = new FieldAreaProcessor(5, 5);
            var    roverProcessorUnderTest = new RoverProcessor(1, 2, "N", fieldArea);
            String expectedDirection       = "N";
            int    expectedX = 1;
            int    expectedY = 3;

            // act
            roverProcessorUnderTest.ReadRoverCommands("LMLMLMLMM");

            // assert
            Assert.AreEqual(expectedDirection, roverProcessorUnderTest.Direction);
            Assert.AreEqual(expectedX, roverProcessorUnderTest.RoverPositionX);
            Assert.AreEqual(expectedY, roverProcessorUnderTest.RoverPositionY);
        }
        static void Main(string[] args)
        {
            try
            {
                IUnityContainer objectContainer = new UnityContainer();

                Console.WriteLine("Input:");

                int[] fieldcoordinates = Array.ConvertAll(Console.ReadLine().ToUpper()?.Split(" "), int.Parse) ??
                                         throw new ArgumentNullException("Console.ReadLine().Split(\" \")");
                objectContainer.RegisterType <IFieldAreaProcessor, FieldAreaProcessor>();
                _fieldArea =
                    objectContainer.Resolve <FieldAreaProcessor>(GenerateFieldAreaObject(fieldcoordinates));

                string[] rover1InitPosition = Console.ReadLine().ToUpper()?.Split(" ") ??
                                              throw new ArgumentNullException("Console.ReadLine().Split(\" \")");
                objectContainer.RegisterType <IRoverProcessor, RoverProcessor>();
                RoverProcessor rover =
                    objectContainer.Resolve <RoverProcessor>(GenerateRoverProcessorObject(rover1InitPosition));
                rover.ReadRoverCommands(Console.ReadLine().ToUpper());

                string[] rover2InitPosition = Console.ReadLine().ToUpper()?.Split(" ") ??
                                              throw new ArgumentNullException("Console.ReadLine().Split(\" \")");
                RoverProcessor rover2 = objectContainer.Resolve <RoverProcessor>(
                    GenerateRoverProcessorObject(rover2InitPosition));
                rover2.ReadRoverCommands(Console.ReadLine().ToUpper());
                Console.WriteLine(Environment.NewLine);

                Console.WriteLine("Output:");
                Console.WriteLine(rover.ToPositionString());
                Console.WriteLine(rover2.ToPositionString());
                Console.WriteLine(Environment.NewLine);
                Console.Write("Press <enter> to exit...");
                Console.ReadKey();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                Console.WriteLine(Environment.NewLine);
                Console.Write("Press <enter> to exit...");
                Console.ReadKey();
            }
        }
 public void Test_FieldAreaProcessorConstructor_when_coordinates_are_zero()
 {
     var fieldAreaUnderTest = new FieldAreaProcessor(0, 0);
 }
 public void Test_FieldAreaProcessorConstructor_when_Ycoordinate_is_negative()
 {
     var fieldAreaUnderTest = new FieldAreaProcessor(5, -5);
 }
 static Program()
 {
     _fieldArea = null;
 }