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)); }
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); }