anchor.diff:        expect(game.round.turnCount, 1);
       });
     });
  +  group('play card with payment path tests', () {
  +    // test board:
  +    // +--=--+ 1 3 2
  +    // |     |
  +    // +--=--+ 2 3 3
  +    Game game = game_test.createSeededGame(3);
  +    Player p0 = game.players[0];
  +    Player p1 = game.players[1];
  +    Player p2 = game.players[2];
  +    
  +    validPaymentPathTestBoard(game.board);
  +    expect(game.board.count, 6);
  +
  +    //select lab
  +    game.round.makeSelection(p0, game.round.roundData[p0.playerNum].hand[2]);
  +    //select rec
  +    game.round.makeSelection(p1, game.round.roundData[p1.playerNum].hand[0]);
  +    //select rec
  +    game.round.makeSelection(p2, game.round.roundData[p2.playerNum].hand[0]);
  +
  +    expect(game.round.activePlayer, p0);
  +    
  +    test('play card with invalid path tests', () {
  +      //play lab no path
  +      expect(game.round.playCard(p0, Card.lab, 
  +        BoardLoc.origin.neighborLoc(CardDirection.down).neighborLoc(CardDirection.down), 
  +        CardDirection.up), isFalse);
  +      //play lab empty path
  +      expect(game.round.playCard(p0, Card.lab, 
  +        BoardLoc.origin.neighborLoc(CardDirection.down).neighborLoc(CardDirection.down), 
  +        CardDirection.up, new PaymentPath.from([])), isFalse);
  +      //play lab unconnected path
  +      expect(game.round.playCard(p0, Card.lab, 
  +        BoardLoc.origin.neighborLoc(CardDirection.down).neighborLoc(CardDirection.down), 
  +        CardDirection.up, new PaymentPath.from([BoardLoc.origin])), isFalse);  
  +      //play lab short path
  +      expect(game.round.playCard(p0, Card.lab, 
  +        BoardLoc.origin.neighborLoc(CardDirection.down).neighborLoc(CardDirection.down), 
  +        CardDirection.up, 
  +        new PaymentPath.from([BoardLoc.origin.neighborLoc(CardDirection.down)])), isFalse);
  +      //play lab invalid path
  +      expect(game.round.playCard(p0, Card.lab, 
  +        BoardLoc.origin.neighborLoc(CardDirection.down).neighborLoc(CardDirection.down), 
  +        CardDirection.up, 
  +        new PaymentPath.from([BoardLoc.origin.neighborLoc(CardDirection.down),
  +          BoardLoc.origin.neighborLoc(CardDirection.down).neighborLoc(CardDirection.right)])), isFalse);
  +
  +    });
  +  });
  +  
     group('complete turn tests', () {
       test('play lab then cap test', () {
         //two player game for shorter tests
  
positive.code:       expect(game.round.turnCount, 1);
      });
    });
  }
negative.code:       Game game = game_test.createSeededGame(2);
        Player p0 = game.players[0];
        Player p1 = game.players[1];
        
        //wrong round state
        expect(game.round.playCard(p1, Card.rec, BoardLoc.origin, CardDirection.up), isFalse);
        
        //select cap
        game.round.makeSelection(p0, game.round.roundData[p0.playerNum].hand[0]);
        //select cap
  