### Question:
Round implements UnaryOperator<Stream<Player>> { protected Bid findWinningBid(List<Bid> bids) { Bid winningBid = bids.stream().max( comparing(Bid::getOffer) ).get(); return winningBid; } Round(int prizeCard); protected  Round(); @Override Stream<Player> apply(Stream<Player> players);  }### Answer:
@Test public void testFindWinningBid_Basic() { Round round = new Round(); int maxCard = 50; Player p1 = new Player("Beethoven", strategy, maxCard, new Hand()); Player p2 = new Player("Chopin", strategy, maxCard, new Hand()); Player p3 = new Player("Mozart", strategy, maxCard, new Hand()); int prizeCard = 20; List<Bid> bids = new ArrayList<>(); bids.add( new Bid(prizeCard, 10, p1) ); bids.add( new Bid(prizeCard, 12, p2) ); bids.add( new Bid(prizeCard, 14, p3) ); Bid result = round.findWinningBid(bids); assertEquals("Mozart", result.getBidder().getName()); }