public void TestRobotStepLeftAndRightWithoutCountingDoubleFields() { var robot = new Robot(); robot.Initialize(5, 10, 20); Assert.AreEqual(1, robot.NumberOfUniqueVisitedFields); robot.StepAndAssertVisitedFields(CardinalDirection.East, 2, 3); //while walking back to where we were, the cleaned area does not increase robot.StepAndAssertVisitedFields(CardinalDirection.West, 1, 3); robot.StepAndAssertVisitedFields(CardinalDirection.West, 1, 3); //when stepping on new ground, cleaned area increases again robot.StepAndAssertVisitedFields(CardinalDirection.West, 1, 4); }
public void TestRobotStepWithOverlap() { var robot = new Robot(); //start in positive area and make step in same area robot.Initialize(5, 10, 20); robot.StepAndAssertVisitedFields(CardinalDirection.East, 5, 6); RobotAssert.AreEqual(robot.CurrentCoordinate, 15, 20); //step into area where Y is negative robot.StepAndAssertVisitedFields(CardinalDirection.South, 100, 106); RobotAssert.AreEqual(robot.CurrentCoordinate, 15, -80); //step into area where x is negative too robot.StepAndAssertVisitedFields(CardinalDirection.West, 30, 136); RobotAssert.AreEqual(robot.CurrentCoordinate, -15, -80); //cross former path in two steps, back to positive X area robot.StepAndAssertVisitedFields(CardinalDirection.North, 10, 146); RobotAssert.AreEqual(robot.CurrentCoordinate, -15, -70); robot.StepAndAssertVisitedFields(CardinalDirection.East, 100, 245); RobotAssert.AreEqual(robot.CurrentCoordinate, 85, -70); }