public void ContainsPlayers_ReturnsTrueIfBothPlayersExistInPairing()
        {
            var pairing = new Pairing(P1, P2);

            Assert.False(pairing.ContainsPlayers(P1, P3));
            Assert.False(pairing.ContainsPlayers(P3, P2));
            Assert.True(pairing.ContainsPlayers(P1, P2));
            Assert.True(pairing.ContainsPlayers(P2, P1));
        }
        public void ContainsPlayer_ReturnsTrueIfPlayerIsInPairing()
        {
            var players = new[] { P1, P2, P3 };
            var pairing = new Pairing(players[0], players[1]);

            Assert.True(pairing.ContainsPlayers(players[0]));
            Assert.True(pairing.ContainsPlayers(players[1]));
            Assert.False(pairing.ContainsPlayers(players[2]));
            Assert.False(pairing.ContainsPlayers(new Player { Name = "foo" }));
        }
 private static Pairing GetUniquePairing(ICollection<Player> players, IList<Player> unpaired, IList<Pairing> history)
 {
     for (var i = 0; i < unpaired.Count; i++)
     {
         for (var j = i + 1; j < unpaired.Count; j++)
         {
             var pairing = new Pairing(unpaired[i], unpaired[j]);
             if (IsUniquePairingPossible(players, history) && PlayersHavePlayedBefore(history, pairing))
             {
                 continue;
             }
             return pairing;
         }
     }
     return null;
 }
 private static bool PlayersHavePlayedBefore(IEnumerable<Pairing> history, Pairing pairing)
 {
     return history.Any(p => p.ContainsPlayers(pairing.Player1, pairing.Player2));
 }
Example #5
0
 public Round()
 {
     Pairings = new Pairing[0];
 }
 public void SetScore_AddsScoresForBothPlayers()
 {
     var pairing = new Pairing(new Player { Name = "P1" }, new Player { Name = "P2" });
     pairing.SetScore(9, 12);
     Assert.Equal(9, pairing.P1Score);
     Assert.Equal(12, pairing.P2Score);
 }