From ea2fa5fa00d4c467a0a3d2e34ea35f765ea1a2e3 Mon Sep 17 00:00:00 2001 From: EVAST9919 Date: Wed, 15 Nov 2017 09:48:40 +0300 Subject: [PATCH] Fix wrong ratings calculations --- .../Visual/TestCaseBeatmapDetails.cs | 4 ++-- .../Visual/TestCaseBeatmapSetOverlay.cs | 20 +++++++++---------- .../Screens/Select/Details/UserRatings.cs | 6 +++--- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/osu.Game.Tests/Visual/TestCaseBeatmapDetails.cs b/osu.Game.Tests/Visual/TestCaseBeatmapDetails.cs index 5306121a92..b31eded9a0 100644 --- a/osu.Game.Tests/Visual/TestCaseBeatmapDetails.cs +++ b/osu.Game.Tests/Visual/TestCaseBeatmapDetails.cs @@ -39,7 +39,7 @@ namespace osu.Game.Tests.Visual StarDifficulty = 5.3f, Metrics = new BeatmapMetrics { - Ratings = Enumerable.Range(0, 10), + Ratings = Enumerable.Range(0, 11), Fails = Enumerable.Range(1, 100).Select(i => i % 12 - 6), Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6), }, @@ -63,7 +63,7 @@ namespace osu.Game.Tests.Visual StarDifficulty = 4.8f, Metrics = new BeatmapMetrics { - Ratings = Enumerable.Range(0, 10), + Ratings = Enumerable.Range(0, 11), }, }); diff --git a/osu.Game.Tests/Visual/TestCaseBeatmapSetOverlay.cs b/osu.Game.Tests/Visual/TestCaseBeatmapSetOverlay.cs index 2226dbf9e9..c2de4ec05d 100644 --- a/osu.Game.Tests/Visual/TestCaseBeatmapSetOverlay.cs +++ b/osu.Game.Tests/Visual/TestCaseBeatmapSetOverlay.cs @@ -83,7 +83,7 @@ namespace osu.Game.Tests.Visual }, Metrics = new BeatmapMetrics { - Ratings = Enumerable.Range(0, 10), + Ratings = Enumerable.Range(0, 11), Fails = Enumerable.Range(1, 100).Select(i => i % 12 - 6), Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6), }, @@ -110,7 +110,7 @@ namespace osu.Game.Tests.Visual }, Metrics = new BeatmapMetrics { - Ratings = Enumerable.Range(0, 10), + Ratings = Enumerable.Range(0, 11), Fails = Enumerable.Range(1, 100).Select(i => i % 12 - 6), Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6), }, @@ -137,7 +137,7 @@ namespace osu.Game.Tests.Visual }, Metrics = new BeatmapMetrics { - Ratings = Enumerable.Range(0, 10), + Ratings = Enumerable.Range(0, 11), Fails = Enumerable.Range(1, 100).Select(i => i % 12 - 6), Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6), }, @@ -164,7 +164,7 @@ namespace osu.Game.Tests.Visual }, Metrics = new BeatmapMetrics { - Ratings = Enumerable.Range(0, 10), + Ratings = Enumerable.Range(0, 11), Fails = Enumerable.Range(1, 100).Select(i => i % 12 - 6), Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6), }, @@ -191,7 +191,7 @@ namespace osu.Game.Tests.Visual }, Metrics = new BeatmapMetrics { - Ratings = Enumerable.Range(0, 10), + Ratings = Enumerable.Range(0, 11), Fails = Enumerable.Range(1, 100).Select(i => i % 12 - 6), Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6), }, @@ -253,7 +253,7 @@ namespace osu.Game.Tests.Visual }, Metrics = new BeatmapMetrics { - Ratings = Enumerable.Range(0, 10), + Ratings = Enumerable.Range(0, 11), Fails = Enumerable.Range(1, 100).Select(i => i % 12 - 6), Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6), }, @@ -280,7 +280,7 @@ namespace osu.Game.Tests.Visual }, Metrics = new BeatmapMetrics { - Ratings = Enumerable.Range(0, 10), + Ratings = Enumerable.Range(0, 11), Fails = Enumerable.Range(1, 100).Select(i => i % 12 - 6), Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6), }, @@ -307,7 +307,7 @@ namespace osu.Game.Tests.Visual }, Metrics = new BeatmapMetrics { - Ratings = Enumerable.Range(0, 10), + Ratings = Enumerable.Range(0, 11), Fails = Enumerable.Range(1, 100).Select(i => i % 12 - 6), Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6), }, @@ -334,7 +334,7 @@ namespace osu.Game.Tests.Visual }, Metrics = new BeatmapMetrics { - Ratings = Enumerable.Range(0, 10), + Ratings = Enumerable.Range(0, 11), Fails = Enumerable.Range(1, 100).Select(i => i % 12 - 6), Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6), }, @@ -361,7 +361,7 @@ namespace osu.Game.Tests.Visual }, Metrics = new BeatmapMetrics { - Ratings = Enumerable.Range(0, 10), + Ratings = Enumerable.Range(0, 11), Fails = Enumerable.Range(1, 100).Select(i => i % 12 - 6), Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6), }, diff --git a/osu.Game/Screens/Select/Details/UserRatings.cs b/osu.Game/Screens/Select/Details/UserRatings.cs index db6d932464..2153eb150c 100644 --- a/osu.Game/Screens/Select/Details/UserRatings.cs +++ b/osu.Game/Screens/Select/Details/UserRatings.cs @@ -30,9 +30,9 @@ namespace osu.Game.Screens.Select.Details metrics = value; var ratings = Metrics.Ratings.ToList(); - negativeRatings.Text = ratings.GetRange(0, ratings.Count / 2).Sum().ToString(); - positiveRatings.Text = ratings.GetRange(ratings.Count / 2, ratings.Count / 2).Sum().ToString(); - ratingsBar.Length = (float)ratings.GetRange(0, ratings.Count / 2).Sum() / ratings.Sum(); + negativeRatings.Text = ratings.GetRange(0, ratings.Count / 2 + 1).Sum().ToString(); + positiveRatings.Text = ratings.GetRange(ratings.Count / 2 + 1, ratings.Count / 2).Sum().ToString(); + ratingsBar.Length = (float)ratings.GetRange(0, ratings.Count / 2 + 1).Sum() / ratings.Sum(); graph.Values = Metrics.Ratings.Select(r => (float)r); } }