Beispiel #1
0
 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);
 }
Beispiel #2
0
 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);
 }