public async Task CalculateElo_TieGameWithDifferentElo_EloChanged() { var match = new MatchBuilder <TwoPlayerMatch>() .WithParticipants("Player 1", 1000, "Player 2", 1200) .Build(); var result = await _sut.AddMatchAsync <TwoPlayerMatch>(match); var player1 = result.Player1; var player2 = result.Player2; Assert.Equal(1007.8, player1.CurrentElo, 1); Assert.Equal(1192.2, player2.CurrentElo, 1); }
public async Task CalculateElo_EloChangeBelowZero_ReturnsZero() { var match = new MatchBuilder <TwoPlayerMatch>() .WithParticipants("Player 1", 0, "Player 2", 1000) .WithWinningTeam(TeamSide.Away) .Build(); var result = await _sut.AddMatchAsync <TwoPlayerMatch>(match); var player1 = result.Player1; Assert.Equal("Player 1", player1.Name); Assert.Equal(0, player1.CurrentElo); }
public async Task CalculateElo_RankedTeamTeam2Wins_EloUpdated() { var match = new MatchBuilder <TeamMatch>() .WithParticipants("Team 1", 1200, "Team 2", 1000) .WithWinningTeam(TeamSide.Away) .Build(); var result = await _sut.AddMatchAsync <TeamMatch>(match); var team1 = result.Team1; var team2 = result.Team2; Assert.Equal("Team 1", team1.Name); Assert.Equal(1177.2, team1.CurrentElo, 1); Assert.Equal("Team 2", team2.Name); Assert.Equal(1022.8, team2.CurrentElo, 1); }
public async Task CalculateElo_TwoPlayersTeam2Wins_EloUpdated() { var match = new MatchBuilder <TwoPlayerMatch>() .WithParticipants("Player 1", 1200, "Player 2", 1000) .WithWinningTeam(TeamSide.Away) .Build(); var result = await _sut.AddMatchAsync <TwoPlayerMatch>(match); var player1 = result.Player1; var player2 = result.Player2; Assert.Equal("Player 1", player1.Name); Assert.Equal(1177.2, player1.CurrentElo, 1); Assert.Equal("Player 2", player2.Name); Assert.Equal(1022.8, player2.CurrentElo, 1); }