anchor.diff:        expect(board.count, 1);
   
         // for each possible direction of played card from existing card
  -      for(CardDirection neighborDir in CardUtil.allDirections){
  +      for(CardDirection neighborDir in CardDirection.values){
           var playedLoc = BoardLoc.origin.neighborLoc(neighborDir);
           // for each possible facing direction of played card
  -        for(CardDirection playedDir in CardUtil.allDirections){
  +        for(CardDirection playedDir in CardDirection.values){
             if(neighborDir == CardDirection.up){
               expect(board.isLegalMove(playedLoc, Card.pow, playedDir), isTrue);
             } else {
  
positive.code:       expect(board.contains(BoardLoc.origin), isTrue);
  
        // for each possible direction of played card from existing card
        for(CardDirection neighborDir in CardUtil.allDirections){
          var playedLoc = BoardLoc.origin.neighborLoc(neighborDir);
          // for each possible facing direction of played card
          for(CardDirection playedDir in CardUtil.allDirections){
            if(playedDir == CardUtil.opposite(neighborDir)){
              expect(board.isLegalMove(playedLoc, Card.rec, playedDir), isTrue);
            } else {
  
negative.code:   group('is legal move', () {
      test('first card is always legal move', () {
        Board board = new Board();
        for(CardDirection dir in CardDirection.values){
          expect(Card.values.every((card) => board.isLegalMove(BoardLoc.origin, card, dir)), isTrue);
        }
      });
  