public void TwoversustwoScenario() { var match = new EloMatch(); var team1 = match.AddTeam(new EloTeam(true)); match.AddPlayerToTeam(team1, 1230); match.AddPlayerToTeam(team1, 1260); var team2 = match.AddTeam(new EloTeam(false)); match.AddPlayerToTeam(team2, 1120); match.AddPlayerToTeam(team2, 1410); var result = match.Calculate(); foreach (var ir in result.GetResults(team1)) { Console.WriteLine($"Team 1 - Player: {ir.PlayerIdentifier}, Rating difference: {ir.RatingDifference}"); } foreach (var ir in result.GetResults(team2)) { Console.WriteLine($"Team 2 - Player: {ir.PlayerIdentifier}, Rating difference: {ir.RatingDifference}"); } Assert.Pass(); }
public void CreateMatchDynamically_AddSameTeam_ThrowsArgumentException() { var match = new EloMatch(); var teamIdentifier = match.AddTeam(new EloTeam(true)); Assert.Throws <ArgumentException>(() => match.AddTeam(new EloTeam(teamIdentifier, false))); }
public void CreateMatchDynamically_AddSamePlayer_ThrowsArgumentException() { var match = new EloMatch(); var teamIdentifier = match.AddTeam(new EloTeam(true)); var player = new EloPlayer(1200); match.AddPlayerToTeam(teamIdentifier, player); Assert.Throws <ArgumentException>(() => match.AddPlayerToTeam(teamIdentifier, player)); }
public EloResult CalculateElo(Match match) { var eloMatch = new EloMatch(); var winners = eloMatch.AddTeam(new EloTeam(true)); foreach (var winnerPlayer in match.Winner.Players) { eloMatch.AddPlayerToTeam(winners, new EloPlayer(new EloPlayerIdentifier(winnerPlayer.Id), winnerPlayer.GetSeasonalElo(match.Season))); } var loosers = eloMatch.AddTeam(new EloTeam(false)); foreach (var looserPlayer in match.Looser.Players) { eloMatch.AddPlayerToTeam(loosers, new EloPlayer(new EloPlayerIdentifier(looserPlayer.Id), looserPlayer.GetSeasonalElo(match.Season))); } return(eloMatch.Calculate()); }