diff --git a/osu.Game.Tests/Beatmaps/Formats/LegacyScoreDecoderTest.cs b/osu.Game.Tests/Beatmaps/Formats/LegacyScoreDecoderTest.cs
index a73ae9dcdb..81d89359e0 100644
--- a/osu.Game.Tests/Beatmaps/Formats/LegacyScoreDecoderTest.cs
+++ b/osu.Game.Tests/Beatmaps/Formats/LegacyScoreDecoderTest.cs
@@ -62,7 +62,7 @@ namespace osu.Game.Tests.Beatmaps.Formats
public void TestCultureInvariance()
{
var ruleset = new OsuRuleset().RulesetInfo;
- var scoreInfo = new TestScoreInfo(ruleset);
+ var scoreInfo = TestResources.CreateTestScoreInfo(ruleset);
var beatmap = new TestBeatmap(ruleset);
var score = new Score
{
diff --git a/osu.Game.Tests/Resources/TestResources.cs b/osu.Game.Tests/Resources/TestResources.cs
index 440d5e701f..7535f6769f 100644
--- a/osu.Game.Tests/Resources/TestResources.cs
+++ b/osu.Game.Tests/Resources/TestResources.cs
@@ -4,6 +4,7 @@
using System;
using System.Collections.Generic;
using System.IO;
+using System.Linq;
using System.Text;
using System.Threading;
using NUnit.Framework;
@@ -12,8 +13,12 @@ using osu.Framework.IO.Stores;
using osu.Framework.Testing;
using osu.Framework.Utils;
using osu.Game.Beatmaps;
+using osu.Game.Online.API.Requests.Responses;
using osu.Game.Rulesets;
+using osu.Game.Rulesets.Mods;
using osu.Game.Rulesets.Osu;
+using osu.Game.Rulesets.Scoring;
+using osu.Game.Scoring;
namespace osu.Game.Tests.Resources
{
@@ -137,5 +142,67 @@ namespace osu.Game.Tests.Resources
}
}
}
+
+ ///
+ /// Create a test score model.
+ ///
+ /// The ruleset for which the score was set against.
+ /// Whether to include an excessive number of mods. If false, only two will be added.
+ ///
+ public static ScoreInfo CreateTestScoreInfo(RulesetInfo ruleset = null, bool excessMods = false) =>
+ CreateTestScoreInfo(CreateTestBeatmapSetInfo(1, new[] { ruleset ?? new OsuRuleset().RulesetInfo }).Beatmaps.First(), excessMods);
+
+ ///
+ /// Create a test score model.
+ ///
+ /// The beatmap for which the score was set against.
+ /// Whether to include an excessive number of mods. If false, only two will be added.
+ ///
+ public static ScoreInfo CreateTestScoreInfo(BeatmapInfo beatmap, bool excessMods = false) => new ScoreInfo
+ {
+ User = new APIUser
+ {
+ Id = 2,
+ Username = "peppy",
+ CoverUrl = "https://osu.ppy.sh/images/headers/profile-covers/c3.jpg",
+ },
+ BeatmapInfo = beatmap,
+ Ruleset = beatmap.Ruleset,
+ RulesetID = beatmap.Ruleset.ID ?? 0,
+ Mods = excessMods
+ ? beatmap.Ruleset.CreateInstance().CreateAllMods().ToArray()
+ : new Mod[] { new TestModHardRock(), new TestModDoubleTime() },
+ TotalScore = 2845370,
+ Accuracy = 0.95,
+ MaxCombo = 999,
+ Position = 1,
+ Rank = ScoreRank.S,
+ Date = DateTimeOffset.Now,
+ Statistics = new Dictionary
+ {
+ [HitResult.Miss] = 1,
+ [HitResult.Meh] = 50,
+ [HitResult.Ok] = 100,
+ [HitResult.Good] = 200,
+ [HitResult.Great] = 300,
+ [HitResult.Perfect] = 320,
+ [HitResult.SmallTickHit] = 50,
+ [HitResult.SmallTickMiss] = 25,
+ [HitResult.LargeTickHit] = 100,
+ [HitResult.LargeTickMiss] = 50,
+ [HitResult.SmallBonus] = 10,
+ [HitResult.SmallBonus] = 50
+ },
+ };
+
+ private class TestModHardRock : ModHardRock
+ {
+ public override double ScoreMultiplier => 1;
+ }
+
+ private class TestModDoubleTime : ModDoubleTime
+ {
+ public override double ScoreMultiplier => 1;
+ }
}
}
diff --git a/osu.Game.Tests/Visual/Playlists/TestScenePlaylistsResultsScreen.cs b/osu.Game.Tests/Visual/Playlists/TestScenePlaylistsResultsScreen.cs
index 64fc4797a0..faa0ce2bdc 100644
--- a/osu.Game.Tests/Visual/Playlists/TestScenePlaylistsResultsScreen.cs
+++ b/osu.Game.Tests/Visual/Playlists/TestScenePlaylistsResultsScreen.cs
@@ -22,6 +22,7 @@ using osu.Game.Scoring;
using osu.Game.Screens.OnlinePlay.Playlists;
using osu.Game.Screens.Ranking;
using osu.Game.Tests.Beatmaps;
+using osu.Game.Tests.Resources;
namespace osu.Game.Tests.Visual.Playlists
{
@@ -52,7 +53,9 @@ namespace osu.Game.Tests.Visual.Playlists
AddStep("bind user score info handler", () =>
{
- userScore = new TestScoreInfo(new OsuRuleset().RulesetInfo) { OnlineID = currentScoreId++ };
+ userScore = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo);
+ userScore.OnlineID = currentScoreId++;
+
bindHandler(userScore: userScore);
});
@@ -78,7 +81,9 @@ namespace osu.Game.Tests.Visual.Playlists
AddStep("bind user score info handler", () =>
{
- userScore = new TestScoreInfo(new OsuRuleset().RulesetInfo) { OnlineID = currentScoreId++ };
+ userScore = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo);
+ userScore.OnlineID = currentScoreId++;
+
bindHandler(true, userScore);
});
@@ -127,7 +132,9 @@ namespace osu.Game.Tests.Visual.Playlists
AddStep("bind user score info handler", () =>
{
- userScore = new TestScoreInfo(new OsuRuleset().RulesetInfo) { OnlineID = currentScoreId++ };
+ userScore = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo);
+ userScore.OnlineID = currentScoreId++;
+
bindHandler(userScore: userScore);
});
diff --git a/osu.Game.Tests/Visual/Ranking/TestSceneContractedPanelMiddleContent.cs b/osu.Game.Tests/Visual/Ranking/TestSceneContractedPanelMiddleContent.cs
index f246560c82..04ddc5d7f0 100644
--- a/osu.Game.Tests/Visual/Ranking/TestSceneContractedPanelMiddleContent.cs
+++ b/osu.Game.Tests/Visual/Ranking/TestSceneContractedPanelMiddleContent.cs
@@ -13,6 +13,7 @@ using osu.Game.Rulesets.Osu;
using osu.Game.Scoring;
using osu.Game.Screens.Ranking;
using osu.Game.Screens.Ranking.Contracted;
+using osu.Game.Tests.Resources;
using osuTK;
namespace osu.Game.Tests.Visual.Ranking
@@ -22,13 +23,13 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestShowPanel()
{
- AddStep("show example score", () => showPanel(CreateWorkingBeatmap(CreateBeatmap(new OsuRuleset().RulesetInfo)), new TestScoreInfo(new OsuRuleset().RulesetInfo)));
+ AddStep("show example score", () => showPanel(CreateWorkingBeatmap(CreateBeatmap(new OsuRuleset().RulesetInfo)), TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo)));
}
[Test]
public void TestExcessMods()
{
- AddStep("show excess mods score", () => showPanel(CreateWorkingBeatmap(CreateBeatmap(new OsuRuleset().RulesetInfo)), new TestScoreInfo(new OsuRuleset().RulesetInfo, true)));
+ AddStep("show excess mods score", () => showPanel(CreateWorkingBeatmap(CreateBeatmap(new OsuRuleset().RulesetInfo)), TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo, true)));
}
private void showPanel(WorkingBeatmap workingBeatmap, ScoreInfo score)
diff --git a/osu.Game.Tests/Visual/Ranking/TestSceneExpandedPanelMiddleContent.cs b/osu.Game.Tests/Visual/Ranking/TestSceneExpandedPanelMiddleContent.cs
index 9983993d9c..1f34606fcb 100644
--- a/osu.Game.Tests/Visual/Ranking/TestSceneExpandedPanelMiddleContent.cs
+++ b/osu.Game.Tests/Visual/Ranking/TestSceneExpandedPanelMiddleContent.cs
@@ -20,6 +20,7 @@ using osu.Game.Scoring;
using osu.Game.Screens.Ranking;
using osu.Game.Screens.Ranking.Expanded;
using osu.Game.Tests.Beatmaps;
+using osu.Game.Tests.Resources;
using osuTK;
namespace osu.Game.Tests.Visual.Ranking
@@ -34,10 +35,7 @@ namespace osu.Game.Tests.Visual.Ranking
{
var author = new APIUser { Username = "mapper_name" };
- AddStep("show example score", () => showPanel(new TestScoreInfo(new OsuRuleset().RulesetInfo)
- {
- BeatmapInfo = createTestBeatmap(author)
- }));
+ AddStep("show example score", () => showPanel(TestResources.CreateTestScoreInfo(createTestBeatmap(author))));
}
[Test]
@@ -45,10 +43,7 @@ namespace osu.Game.Tests.Visual.Ranking
{
var author = new APIUser { Username = "mapper_name" };
- AddStep("show excess mods score", () => showPanel(new TestScoreInfo(new OsuRuleset().RulesetInfo, true)
- {
- BeatmapInfo = createTestBeatmap(author)
- }));
+ AddStep("show excess mods score", () => showPanel(TestResources.CreateTestScoreInfo(createTestBeatmap(author), true)));
AddAssert("mapper name present", () => this.ChildrenOfType().Any(spriteText => spriteText.Current.Value == "mapper_name"));
}
@@ -56,10 +51,7 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestMapWithUnknownMapper()
{
- AddStep("show example score", () => showPanel(new TestScoreInfo(new OsuRuleset().RulesetInfo)
- {
- BeatmapInfo = createTestBeatmap(new APIUser())
- }));
+ AddStep("show example score", () => showPanel(TestResources.CreateTestScoreInfo(createTestBeatmap(new APIUser()))));
AddAssert("mapped by text not present", () =>
this.ChildrenOfType().All(spriteText => !containsAny(spriteText.Text.ToString(), "mapped", "by")));
@@ -77,12 +69,12 @@ namespace osu.Game.Tests.Visual.Ranking
var mods = new Mod[] { ruleset.GetAutoplayMod() };
var beatmap = createTestBeatmap(new APIUser());
- showPanel(new TestScoreInfo(ruleset.RulesetInfo)
- {
- Mods = mods,
- BeatmapInfo = beatmap,
- Date = default,
- });
+ var score = TestResources.CreateTestScoreInfo(beatmap);
+
+ score.Mods = mods;
+ score.Date = default;
+
+ showPanel(score);
});
AddAssert("play time not displayed", () => !this.ChildrenOfType().Any());
diff --git a/osu.Game.Tests/Visual/Ranking/TestSceneExpandedPanelTopContent.cs b/osu.Game.Tests/Visual/Ranking/TestSceneExpandedPanelTopContent.cs
index a32bcbe7f0..a2fa142896 100644
--- a/osu.Game.Tests/Visual/Ranking/TestSceneExpandedPanelTopContent.cs
+++ b/osu.Game.Tests/Visual/Ranking/TestSceneExpandedPanelTopContent.cs
@@ -5,8 +5,8 @@ using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes;
-using osu.Game.Rulesets.Osu;
using osu.Game.Screens.Ranking.Expanded;
+using osu.Game.Tests.Resources;
using osuTK;
namespace osu.Game.Tests.Visual.Ranking
@@ -27,7 +27,7 @@ namespace osu.Game.Tests.Visual.Ranking
RelativeSizeAxes = Axes.Both,
Colour = Color4Extensions.FromHex("#444"),
},
- new ExpandedPanelTopContent(new TestScoreInfo(new OsuRuleset().RulesetInfo).User),
+ new ExpandedPanelTopContent(TestResources.CreateTestScoreInfo().User),
}
};
}
diff --git a/osu.Game.Tests/Visual/Ranking/TestSceneResultsScreen.cs b/osu.Game.Tests/Visual/Ranking/TestSceneResultsScreen.cs
index 94700bac6a..809f513a83 100644
--- a/osu.Game.Tests/Visual/Ranking/TestSceneResultsScreen.cs
+++ b/osu.Game.Tests/Visual/Ranking/TestSceneResultsScreen.cs
@@ -21,6 +21,7 @@ using osu.Game.Screens;
using osu.Game.Screens.Play;
using osu.Game.Screens.Ranking;
using osu.Game.Screens.Ranking.Statistics;
+using osu.Game.Tests.Resources;
using osuTK;
using osuTK.Input;
@@ -72,11 +73,10 @@ namespace osu.Game.Tests.Visual.Ranking
{
TestResultsScreen screen = null;
- var score = new TestScoreInfo(new OsuRuleset().RulesetInfo)
- {
- Accuracy = accuracy,
- Rank = rank
- };
+ var score = TestResources.CreateTestScoreInfo();
+
+ score.Accuracy = accuracy;
+ score.Rank = rank;
AddStep("load results", () => Child = new TestResultsContainer(screen = createResultsScreen(score)));
AddUntilStep("wait for loaded", () => screen.IsLoaded);
@@ -204,7 +204,7 @@ namespace osu.Game.Tests.Visual.Ranking
{
DelayedFetchResultsScreen screen = null;
- AddStep("load results", () => Child = new TestResultsContainer(screen = new DelayedFetchResultsScreen(new TestScoreInfo(new OsuRuleset().RulesetInfo), 3000)));
+ AddStep("load results", () => Child = new TestResultsContainer(screen = new DelayedFetchResultsScreen(TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo), 3000)));
AddUntilStep("wait for loaded", () => screen.IsLoaded);
AddStep("click expanded panel", () =>
{
@@ -237,9 +237,9 @@ namespace osu.Game.Tests.Visual.Ranking
AddAssert("download button is enabled", () => screen.ChildrenOfType().Last().Enabled.Value);
}
- private TestResultsScreen createResultsScreen(ScoreInfo score = null) => new TestResultsScreen(score ?? new TestScoreInfo(new OsuRuleset().RulesetInfo));
+ private TestResultsScreen createResultsScreen(ScoreInfo score = null) => new TestResultsScreen(score ?? TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo));
- private UnrankedSoloResultsScreen createUnrankedSoloResultsScreen() => new UnrankedSoloResultsScreen(new TestScoreInfo(new OsuRuleset().RulesetInfo));
+ private UnrankedSoloResultsScreen createUnrankedSoloResultsScreen() => new UnrankedSoloResultsScreen(TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo));
private class TestResultsContainer : Container
{
@@ -282,7 +282,7 @@ namespace osu.Game.Tests.Visual.Ranking
for (int i = 0; i < 20; i++)
{
- var score = new TestScoreInfo(new OsuRuleset().RulesetInfo);
+ var score = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo);
score.TotalScore += 10 - i;
score.Hash = $"test{i}";
scores.Add(score);
@@ -316,7 +316,7 @@ namespace osu.Game.Tests.Visual.Ranking
for (int i = 0; i < 20; i++)
{
- var score = new TestScoreInfo(new OsuRuleset().RulesetInfo);
+ var score = TestResources.CreateTestScoreInfo();
score.TotalScore += 10 - i;
scores.Add(score);
}
diff --git a/osu.Game.Tests/Visual/Ranking/TestSceneScorePanel.cs b/osu.Game.Tests/Visual/Ranking/TestSceneScorePanel.cs
index 5af55e99f8..5dbeefd390 100644
--- a/osu.Game.Tests/Visual/Ranking/TestSceneScorePanel.cs
+++ b/osu.Game.Tests/Visual/Ranking/TestSceneScorePanel.cs
@@ -3,10 +3,10 @@
using NUnit.Framework;
using osu.Framework.Graphics;
-using osu.Game.Rulesets.Osu;
using osu.Game.Rulesets.Scoring;
using osu.Game.Scoring;
using osu.Game.Screens.Ranking;
+using osu.Game.Tests.Resources;
namespace osu.Game.Tests.Visual.Ranking
{
@@ -17,7 +17,9 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestDRank()
{
- var score = new TestScoreInfo(new OsuRuleset().RulesetInfo) { Accuracy = 0.5, Rank = ScoreRank.D };
+ var score = TestResources.CreateTestScoreInfo();
+ score.Accuracy = 0.5;
+ score.Rank = ScoreRank.D;
addPanelStep(score);
}
@@ -25,7 +27,9 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestCRank()
{
- var score = new TestScoreInfo(new OsuRuleset().RulesetInfo) { Accuracy = 0.75, Rank = ScoreRank.C };
+ var score = TestResources.CreateTestScoreInfo();
+ score.Accuracy = 0.75;
+ score.Rank = ScoreRank.C;
addPanelStep(score);
}
@@ -33,7 +37,9 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestBRank()
{
- var score = new TestScoreInfo(new OsuRuleset().RulesetInfo) { Accuracy = 0.85, Rank = ScoreRank.B };
+ var score = TestResources.CreateTestScoreInfo();
+ score.Accuracy = 0.85;
+ score.Rank = ScoreRank.B;
addPanelStep(score);
}
@@ -41,7 +47,9 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestARank()
{
- var score = new TestScoreInfo(new OsuRuleset().RulesetInfo) { Accuracy = 0.925, Rank = ScoreRank.A };
+ var score = TestResources.CreateTestScoreInfo();
+ score.Accuracy = 0.925;
+ score.Rank = ScoreRank.A;
addPanelStep(score);
}
@@ -49,7 +57,9 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestSRank()
{
- var score = new TestScoreInfo(new OsuRuleset().RulesetInfo) { Accuracy = 0.975, Rank = ScoreRank.S };
+ var score = TestResources.CreateTestScoreInfo();
+ score.Accuracy = 0.975;
+ score.Rank = ScoreRank.S;
addPanelStep(score);
}
@@ -57,7 +67,9 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestAlmostSSRank()
{
- var score = new TestScoreInfo(new OsuRuleset().RulesetInfo) { Accuracy = 0.9999, Rank = ScoreRank.S };
+ var score = TestResources.CreateTestScoreInfo();
+ score.Accuracy = 0.9999;
+ score.Rank = ScoreRank.S;
addPanelStep(score);
}
@@ -65,7 +77,9 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestSSRank()
{
- var score = new TestScoreInfo(new OsuRuleset().RulesetInfo) { Accuracy = 1, Rank = ScoreRank.X };
+ var score = TestResources.CreateTestScoreInfo();
+ score.Accuracy = 1;
+ score.Rank = ScoreRank.X;
addPanelStep(score);
}
@@ -73,7 +87,9 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestAllHitResults()
{
- var score = new TestScoreInfo(new OsuRuleset().RulesetInfo) { Statistics = { [HitResult.Perfect] = 350, [HitResult.Ok] = 200 } };
+ var score = TestResources.CreateTestScoreInfo();
+ score.Statistics[HitResult.Perfect] = 350;
+ score.Statistics[HitResult.Ok] = 200;
addPanelStep(score);
}
@@ -81,7 +97,9 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestContractedPanel()
{
- var score = new TestScoreInfo(new OsuRuleset().RulesetInfo) { Accuracy = 0.925, Rank = ScoreRank.A };
+ var score = TestResources.CreateTestScoreInfo();
+ score.Accuracy = 0.925;
+ score.Rank = ScoreRank.A;
addPanelStep(score, PanelState.Contracted);
}
@@ -89,7 +107,9 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestExpandAndContract()
{
- var score = new TestScoreInfo(new OsuRuleset().RulesetInfo) { Accuracy = 0.925, Rank = ScoreRank.A };
+ var score = TestResources.CreateTestScoreInfo();
+ score.Accuracy = 0.925;
+ score.Rank = ScoreRank.A;
addPanelStep(score, PanelState.Contracted);
AddWaitStep("wait for transition", 10);
diff --git a/osu.Game.Tests/Visual/Ranking/TestSceneScorePanelList.cs b/osu.Game.Tests/Visual/Ranking/TestSceneScorePanelList.cs
index 2f9652d354..f963be5d81 100644
--- a/osu.Game.Tests/Visual/Ranking/TestSceneScorePanelList.cs
+++ b/osu.Game.Tests/Visual/Ranking/TestSceneScorePanelList.cs
@@ -10,6 +10,7 @@ using osu.Framework.Utils;
using osu.Game.Rulesets.Osu;
using osu.Game.Scoring;
using osu.Game.Screens.Ranking;
+using osu.Game.Tests.Resources;
using osuTK.Input;
namespace osu.Game.Tests.Visual.Ranking
@@ -29,14 +30,14 @@ namespace osu.Game.Tests.Visual.Ranking
{
createListStep(() => new ScorePanelList
{
- SelectedScore = { Value = new TestScoreInfo(new OsuRuleset().RulesetInfo) }
+ SelectedScore = { Value = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo) }
});
}
[Test]
public void TestAddPanelAfterSelectingScore()
{
- var score = new TestScoreInfo(new OsuRuleset().RulesetInfo);
+ var score = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo);
createListStep(() => new ScorePanelList
{
@@ -52,7 +53,7 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestAddPanelBeforeSelectingScore()
{
- var score = new TestScoreInfo(new OsuRuleset().RulesetInfo);
+ var score = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo);
createListStep(() => new ScorePanelList());
@@ -75,7 +76,7 @@ namespace osu.Game.Tests.Visual.Ranking
AddStep("add many scores", () =>
{
for (int i = 0; i < 20; i++)
- list.AddScore(new TestScoreInfo(new OsuRuleset().RulesetInfo));
+ list.AddScore(TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo));
});
assertFirstPanelCentred();
@@ -84,7 +85,7 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestAddManyScoresAfterExpandedPanel()
{
- var initialScore = new TestScoreInfo(new OsuRuleset().RulesetInfo);
+ var initialScore = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo);
createListStep(() => new ScorePanelList());
@@ -97,7 +98,7 @@ namespace osu.Game.Tests.Visual.Ranking
AddStep("add many scores", () =>
{
for (int i = 0; i < 20; i++)
- list.AddScore(new TestScoreInfo(new OsuRuleset().RulesetInfo) { TotalScore = initialScore.TotalScore - i - 1 });
+ list.AddScore(createScoreForTotalScore(initialScore.TotalScore - i - 1));
});
assertScoreState(initialScore, true);
@@ -107,7 +108,7 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestAddManyScoresBeforeExpandedPanel()
{
- var initialScore = new TestScoreInfo(new OsuRuleset().RulesetInfo);
+ var initialScore = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo);
createListStep(() => new ScorePanelList());
@@ -120,7 +121,7 @@ namespace osu.Game.Tests.Visual.Ranking
AddStep("add scores", () =>
{
for (int i = 0; i < 20; i++)
- list.AddScore(new TestScoreInfo(new OsuRuleset().RulesetInfo) { TotalScore = initialScore.TotalScore + i + 1 });
+ list.AddScore(createScoreForTotalScore(initialScore.TotalScore + i + 1));
});
assertScoreState(initialScore, true);
@@ -130,7 +131,7 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestAddManyPanelsOnBothSidesOfExpandedPanel()
{
- var initialScore = new TestScoreInfo(new OsuRuleset().RulesetInfo);
+ var initialScore = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo);
createListStep(() => new ScorePanelList());
@@ -143,10 +144,10 @@ namespace osu.Game.Tests.Visual.Ranking
AddStep("add scores after", () =>
{
for (int i = 0; i < 20; i++)
- list.AddScore(new TestScoreInfo(new OsuRuleset().RulesetInfo) { TotalScore = initialScore.TotalScore - i - 1 });
+ list.AddScore(createScoreForTotalScore(initialScore.TotalScore - i - 1));
for (int i = 0; i < 20; i++)
- list.AddScore(new TestScoreInfo(new OsuRuleset().RulesetInfo) { TotalScore = initialScore.TotalScore + i + 1 });
+ list.AddScore(createScoreForTotalScore(initialScore.TotalScore + i + 1));
});
assertScoreState(initialScore, true);
@@ -156,8 +157,8 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestSelectMultipleScores()
{
- var firstScore = new TestScoreInfo(new OsuRuleset().RulesetInfo);
- var secondScore = new TestScoreInfo(new OsuRuleset().RulesetInfo);
+ var firstScore = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo);
+ var secondScore = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo);
firstScore.UserString = "A";
secondScore.UserString = "B";
@@ -190,7 +191,7 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestAddScoreImmediately()
{
- var score = new TestScoreInfo(new OsuRuleset().RulesetInfo);
+ var score = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo);
createListStep(() =>
{
@@ -206,9 +207,14 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestKeyboardNavigation()
{
- var lowestScore = new TestScoreInfo(new OsuRuleset().RulesetInfo) { MaxCombo = 100 };
- var middleScore = new TestScoreInfo(new OsuRuleset().RulesetInfo) { MaxCombo = 200 };
- var highestScore = new TestScoreInfo(new OsuRuleset().RulesetInfo) { MaxCombo = 300 };
+ var lowestScore = TestResources.CreateTestScoreInfo();
+ lowestScore.MaxCombo = 100;
+
+ var middleScore = TestResources.CreateTestScoreInfo();
+ middleScore.MaxCombo = 200;
+
+ var highestScore = TestResources.CreateTestScoreInfo();
+ highestScore.MaxCombo = 300;
createListStep(() => new ScorePanelList());
@@ -270,6 +276,13 @@ namespace osu.Game.Tests.Visual.Ranking
assertExpandedPanelCentred();
}
+ private ScoreInfo createScoreForTotalScore(long totalScore)
+ {
+ var score = TestResources.CreateTestScoreInfo();
+ score.TotalScore = totalScore;
+ return score;
+ }
+
private void createListStep(Func creationFunc)
{
AddStep("create list", () => Child = list = creationFunc().With(d =>
diff --git a/osu.Game.Tests/Visual/Ranking/TestSceneStatisticsPanel.cs b/osu.Game.Tests/Visual/Ranking/TestSceneStatisticsPanel.cs
index d91aec753c..ebea523b9e 100644
--- a/osu.Game.Tests/Visual/Ranking/TestSceneStatisticsPanel.cs
+++ b/osu.Game.Tests/Visual/Ranking/TestSceneStatisticsPanel.cs
@@ -11,6 +11,7 @@ using osu.Game.Scoring;
using osu.Game.Screens.Ranking.Statistics;
using osu.Game.Rulesets.Osu.Objects;
using osu.Game.Rulesets.Scoring;
+using osu.Game.Tests.Resources;
using osuTK;
namespace osu.Game.Tests.Visual.Ranking
@@ -20,10 +21,8 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestScoreWithTimeStatistics()
{
- var score = new TestScoreInfo(new OsuRuleset().RulesetInfo)
- {
- HitEvents = TestSceneHitEventTimingDistributionGraph.CreateDistributedHitEvents()
- };
+ var score = TestResources.CreateTestScoreInfo();
+ score.HitEvents = TestSceneHitEventTimingDistributionGraph.CreateDistributedHitEvents();
loadPanel(score);
}
@@ -31,10 +30,8 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestScoreWithPositionStatistics()
{
- var score = new TestScoreInfo(new OsuRuleset().RulesetInfo)
- {
- HitEvents = createPositionDistributedHitEvents()
- };
+ var score = TestResources.CreateTestScoreInfo();
+ score.HitEvents = createPositionDistributedHitEvents();
loadPanel(score);
}
@@ -42,7 +39,7 @@ namespace osu.Game.Tests.Visual.Ranking
[Test]
public void TestScoreWithoutStatistics()
{
- loadPanel(new TestScoreInfo(new OsuRuleset().RulesetInfo));
+ loadPanel(TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo));
}
[Test]
diff --git a/osu.Game/Tests/TestScoreInfo.cs b/osu.Game/Tests/TestScoreInfo.cs
deleted file mode 100644
index a53cb0ae78..0000000000
--- a/osu.Game/Tests/TestScoreInfo.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
-// See the LICENCE file in the repository root for full licence text.
-
-using System;
-using System.Linq;
-using osu.Game.Online.API.Requests.Responses;
-using osu.Game.Rulesets;
-using osu.Game.Rulesets.Mods;
-using osu.Game.Rulesets.Scoring;
-using osu.Game.Scoring;
-using osu.Game.Tests.Beatmaps;
-
-namespace osu.Game.Tests
-{
- public class TestScoreInfo : ScoreInfo
- {
- public TestScoreInfo(RulesetInfo ruleset, bool excessMods = false)
- {
- User = new APIUser
- {
- Id = 2,
- Username = "peppy",
- CoverUrl = "https://osu.ppy.sh/images/headers/profile-covers/c3.jpg",
- };
-
- BeatmapInfo = new TestBeatmap(ruleset).BeatmapInfo;
- Ruleset = ruleset;
- RulesetID = ruleset.ID ?? 0;
-
- Mods = excessMods
- ? ruleset.CreateInstance().CreateAllMods().ToArray()
- : new Mod[] { new TestModHardRock(), new TestModDoubleTime() };
-
- TotalScore = 2845370;
- Accuracy = 0.95;
- MaxCombo = 999;
- Rank = ScoreRank.S;
- Date = DateTimeOffset.Now;
-
- Statistics[HitResult.Miss] = 1;
- Statistics[HitResult.Meh] = 50;
- Statistics[HitResult.Ok] = 100;
- Statistics[HitResult.Good] = 200;
- Statistics[HitResult.Great] = 300;
- Statistics[HitResult.Perfect] = 320;
- Statistics[HitResult.SmallTickHit] = 50;
- Statistics[HitResult.SmallTickMiss] = 25;
- Statistics[HitResult.LargeTickHit] = 100;
- Statistics[HitResult.LargeTickMiss] = 50;
- Statistics[HitResult.SmallBonus] = 10;
- Statistics[HitResult.SmallBonus] = 50;
-
- Position = 1;
- }
-
- private class TestModHardRock : ModHardRock
- {
- public override double ScoreMultiplier => 1;
- }
-
- private class TestModDoubleTime : ModDoubleTime
- {
- public override double ScoreMultiplier => 1;
- }
- }
-}