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); }
public void Test_RoverProcessorConstructor_when_Direction_is_incorrect() { // arrange var fieldArea = new FieldAreaProcessor(5, 5); // act var roverProcessorUnderTest = new RoverProcessor(1, 2, "A", fieldArea); }
public void Test_RoverProcessorConstructor_when_Xcoordinate_is_negative() { // arrange var fieldArea = new FieldAreaProcessor(5, 5); // act var roverProcessorUnderTest = new RoverProcessor(-1, 2, "N", fieldArea); }
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); }
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); }
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); }
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)); }
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); }
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); }
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); }
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; }