anchor.diff:      });
     });
   
  +  group("Bad input", () {
  +    DirectionSystem directionSystem;
  +    setUp(() {
  +      directionSystem = new DirectionSystem();
  +    });
  +    tearDown(() {
  +      directionSystem = null;
  +    });
  +    test("AddToMainDirection", () {
  +      expect(()=>directionSystem.addToMainDirection(Direction.UP.toUpperCase()), throwsArgumentError);
  +      expect(()=>directionSystem.addToMainDirection("Up"), throwsArgumentError);
  +      expect(()=>directionSystem.addToMainDirection("uP"), throwsArgumentError);
  +      expect(()=>directionSystem.addToMainDirection("${Direction.UP} "), throwsArgumentError);
  +      expect(()=>directionSystem.addToMainDirection(" ${Direction.UP}"), throwsArgumentError);
  +    });
  +    test("SetMainDirection", () {
  +      expect(()=>directionSystem.setMainDirection(Direction.UP.toUpperCase()), throwsArgumentError);
  +      expect(()=>directionSystem.setMainDirection("Up"), throwsArgumentError);
  +      expect(()=>directionSystem.setMainDirection("uP"), throwsArgumentError);
  +      expect(()=>directionSystem.setMainDirection("${Direction.UP} "), throwsArgumentError);
  +      expect(()=>directionSystem.setMainDirection(" ${Direction.UP}"), throwsArgumentError);
  +    });
  +    test("GetDirection", () {
  +      expect(()=>directionSystem.getDirection(Direction.UP.toUpperCase()), throwsArgumentError);
  +      expect(()=>directionSystem.getDirection("Up"), throwsArgumentError);
  +      expect(()=>directionSystem.getDirection("uP"), throwsArgumentError);
  +      expect(()=>directionSystem.getDirection("${Direction.UP} "), throwsArgumentError);
  +      expect(()=>directionSystem.getDirection(" ${Direction.UP}"), throwsArgumentError);
  +    });
  +  });
  +
   }
   
   //=============================================================================
  
positive.code:     });
    });
  
    group("rotateDirections", () {
      DirectionSystem directionSystem;
      setUp(() {
        directionSystem = new DirectionSystem();
  
negative.code:       directionSystem = null;
      });
      test("Get main directions", () {
        testGetDirections(directionSystem, Direction.MAIN_DIRECTIONS,
            [{"x": 0,"y": -1}, {"x": 0,"y": 1},
             {"x": -1,"y": 0}, {"x": 1,"y": 0}]);
      });
      test("Get diagonal directions", () {
        testGetDirections(directionSystem, Direction.DIAGONAL_DIRECTIONS,
            [{"x": -expectedDiagonalValue,"y": -expectedDiagonalValue},
             {"x": expectedDiagonalValue,"y": -expectedDiagonalValue},
             {"x": -expectedDiagonalValue,"y": expectedDiagonalValue},
             {"x": expectedDiagonalValue,"y": expectedDiagonalValue}]);
      });
  