public PlayerStatistics(BasePlayerStatistics stats) { totalMatchesPlayed = stats.TotalMatchesPlayed; totalMatchesWon = stats.TotalMatchesWon; favoriteServer = stats.Servers .FirstOrDefault(pair => pair.Value == stats.Servers.Max(valuePair => valuePair.Value)).Key; uniqueServers = stats.UniqueServers; favoriteGameMode = stats.GameModes .FirstOrDefault(pair => pair.Value == stats.GameModes.Max(valuePair => valuePair.Value)).Key; averageScoreboardPercent = stats.TotalScoreboardPercent / stats.TotalMatchesPlayed; maximumMatchesPerDay = stats.MaximumMatchesPerDay; averageMatchesPerDay = stats.TotalMatchesPlayed / Math.Max(Math.Ceiling(stats.LastMatchPlayed.Subtract(stats.FirstMatchPlayed).TotalDays), 1.0); lastMatchPlayed = stats.LastMatchPlayed; killToDeathRatio = (double)stats.TotalKills / stats.TotalDeaths; }
public void RecalculatedAsCompetitor_WithAdditionalMatch() { var stats = new BasePlayerStatistics("PlayerB"); var updatedStats = stats.RecalculateWithAdditional(match); Assert.AreNotEqual(updatedStats, null); updatedStats.TotalMatchesPlayed.ShouldBeEquivalentTo(1); updatedStats.TotalMatchesWon.ShouldBeEquivalentTo(0); updatedStats.TotalKills.ShouldBeEquivalentTo(1); updatedStats.TotalDeaths.ShouldBeEquivalentTo(3); updatedStats.MaximumMatchesPerDay.ShouldBeEquivalentTo(1); updatedStats.TotalMatchesToday.ShouldBeEquivalentTo(1); updatedStats.TotalScoreboardPercent.ShouldBeEquivalentTo(0.0); updatedStats.FirstMatchPlayed.ShouldBeEquivalentTo(new DateTime(2017, 01, 01)); updatedStats.LastMatchPlayed.ShouldBeEquivalentTo(new DateTime(2017, 01, 01)); updatedStats.Servers["192.168.0.1-8080"].ShouldBeEquivalentTo(1); updatedStats.GameModes["TestModeA"].ShouldBeEquivalentTo(1); }
public override Tuple <int, int> Selector(BasePlayerStatistics arg) { return(Tuple.Create(arg.TotalKills, arg.TotalDeaths)); }
public override PlayersKillToDeathRateStat Transformer(BasePlayerStatistics arg) { return(new PlayersKillToDeathRateStat(arg.Name, (double)arg.TotalKills / arg.TotalDeaths)); }
public override bool Filter(BasePlayerStatistics arg) { return(arg.TotalMatchesPlayed >= 10 && arg.TotalDeaths != 0); }