public async Task UniqueServersTest() { var server3 = GenerateServer("host-3"); await StatisticStorage.UpdateServer(Server1.GetIndex(), Server1); await StatisticStorage.UpdateServer(Server2.GetIndex(), Server2); await StatisticStorage.UpdateServer(server3.GetIndex(), server3); var matches = new[] { GenerateMatch(Server2, Day1, scoreboard: new[] { Player1, Player2 }), GenerateMatch(Server1, Day2, scoreboard: new[] { Player1 }), GenerateMatch(Server2, Day3, scoreboard: new[] { Player2, Player1 }), GenerateMatch(server3, Day4, scoreboard: new[] { Player2 }), }; foreach (var match in matches) { await StatisticStorage.UpdateMatch(match.GetIndex(), match); } await WaitForTasks(); PlayerStatisticStorage.GetStatistics(Player1.Name).UniqueServers.Should().Be(2); PlayerStatisticStorage.GetStatistics(Player2.Name).UniqueServers.Should().Be(2); }
public async Task KillToDeathRatioTest() { await StatisticStorage.UpdateServer(Server1.GetIndex(), Server1); var matches = new[] { GenerateMatch(Server1, Day1, scoreboard: new[] { GeneratePlayer("A", kills: 2, deaths: 1), GeneratePlayer("B", kills: 3, deaths: 0) }), GenerateMatch(Server1, Day2, scoreboard: new[] { GeneratePlayer("A", kills: 4, deaths: 3) }), }; foreach (var match in matches) { await StatisticStorage.UpdateMatch(match.GetIndex(), match); } await WaitForTasks(); PlayerStatisticStorage.GetStatistics("A").KillToDeathRatio.Should().Be(1.5); PlayerStatisticStorage.GetStatistics("B").KillToDeathRatio.Should().Be(null); }
public async Task AverageScoreboardPercentTest() { PlayerInfo player1 = GeneratePlayer("A"), player2 = GeneratePlayer("B"), player3 = GeneratePlayer("C"), player4 = GeneratePlayer("D"); await StatisticStorage.UpdateServer(Server1.GetIndex(), Server1); await StatisticStorage.UpdateServer(Server2.GetIndex(), Server2); var matches = new[] { GenerateMatch(Server2, Day1, scoreboard: new[] { player1, player2, player4 }), GenerateMatch(Server1, Day2, scoreboard: new[] { player3, player2, player1, player4 }), GenerateMatch(Server2, Day3, scoreboard: new[] { player2, player4, player1 }), GenerateMatch(Server2, Day4, scoreboard: new[] { player3, player2 }), }; foreach (var match in matches) { await StatisticStorage.UpdateMatch(match.GetIndex(), match); } await WaitForTasks(); PlayerStatisticStorage.GetStatistics(player1.Name).AverageScoreboardPercent .Should().Be((100.0 + 100.0 / 3 + 0) / 3); PlayerStatisticStorage.GetStatistics(player2.Name).AverageScoreboardPercent .Should().Be((100.0 / 2 + 100.0 * 2 / 3 + 100.0 + 0) / 4); PlayerStatisticStorage.GetStatistics(player3.Name).AverageScoreboardPercent .Should().Be((100.0 + 100.0) / 2); PlayerStatisticStorage.GetStatistics(player4.Name).AverageScoreboardPercent .Should().Be((0.0 + 0.0 + 100.0 / 2) / 3); }
public async Task TotalMatchesPlayedTest() { await StatisticStorage.UpdateServer(Server1.GetIndex(), Server1); var matches = new[] { GenerateMatch(Server1, DateTime1, scoreboard: new[] { Player1, Player2 }), GenerateMatch(Server1, DateTime2, scoreboard: new[] { Player2 }) }; foreach (var match in matches) { await StatisticStorage.UpdateMatch(match.GetIndex(), match); } await WaitForTasks(); PlayerStatisticStorage.GetStatistics(Player1.Name).TotalMatchesPlayed.Should().Be(1); PlayerStatisticStorage.GetStatistics(Player2.Name).TotalMatchesPlayed.Should().Be(2); }
public async Task FavoriteServerTest() { await StatisticStorage.UpdateServer(Server1.GetIndex(), Server1); await StatisticStorage.UpdateServer(Server2.GetIndex(), Server2); var matches = new[] { GenerateMatch(Server2, Day1, scoreboard: new[] { Player1, Player2 }), GenerateMatch(Server2, Day2, scoreboard: new[] { Player1 }), GenerateMatch(Server1, Day3, scoreboard: new[] { Player2, Player1 }), GenerateMatch(Server1, Day4, scoreboard: new[] { Player2 }), }; foreach (var match in matches) { await StatisticStorage.UpdateMatch(match.GetIndex(), match); } await WaitForTasks(); PlayerStatisticStorage.GetStatistics(Player1.Name).FavoriteServer.Should().Be(Server2.Id); PlayerStatisticStorage.GetStatistics(Player2.Name).FavoriteServer.Should().Be(Server1.Id); }
public async Task AverageMatchesPerDayTest() { await StatisticStorage.UpdateServer(Server1.GetIndex(), Server1); await StatisticStorage.UpdateServer(Server2.GetIndex(), Server2); var matches = new[] { GenerateMatch(Server2, new DateTime(2017, 1, 1, 12, 00, 00, DateTimeKind.Utc), scoreboard: new[] { Player1, Player2 }), GenerateMatch(Server1, new DateTime(2017, 1, 8, 13, 00, 00, DateTimeKind.Utc), scoreboard: new[] { Player1 }), GenerateMatch(Server2, new DateTime(2017, 1, 2, 14, 00, 00, DateTimeKind.Utc), scoreboard: new[] { Player2, Player1 }), GenerateMatch(Server2, new DateTime(2017, 1, 1, 15, 00, 00, DateTimeKind.Utc), scoreboard: new[] { Player1, Player2 }), }; foreach (var match in matches) { await StatisticStorage.UpdateMatch(match.GetIndex(), match); } await WaitForTasks(); PlayerStatisticStorage.GetStatistics(Player1.Name).AverageMatchesPerDay.Should().Be(0.5); PlayerStatisticStorage.GetStatistics(Player2.Name).AverageMatchesPerDay.Should().Be(1.5); }