mirror of
https://github.com/osukey/osukey.git
synced 2025-07-02 00:40:09 +09:00
Move test ScoreInfo
creation to TestResources
The main goal here is to remove the inheritance, since realm doesn't like that. Unfortunate that we can't use object initialisers in a few of these places, but no real way around that.
This commit is contained in:
@ -62,7 +62,7 @@ namespace osu.Game.Tests.Beatmaps.Formats
|
|||||||
public void TestCultureInvariance()
|
public void TestCultureInvariance()
|
||||||
{
|
{
|
||||||
var ruleset = new OsuRuleset().RulesetInfo;
|
var ruleset = new OsuRuleset().RulesetInfo;
|
||||||
var scoreInfo = new TestScoreInfo(ruleset);
|
var scoreInfo = TestResources.CreateTestScoreInfo(ruleset);
|
||||||
var beatmap = new TestBeatmap(ruleset);
|
var beatmap = new TestBeatmap(ruleset);
|
||||||
var score = new Score
|
var score = new Score
|
||||||
{
|
{
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
@ -12,8 +13,12 @@ using osu.Framework.IO.Stores;
|
|||||||
using osu.Framework.Testing;
|
using osu.Framework.Testing;
|
||||||
using osu.Framework.Utils;
|
using osu.Framework.Utils;
|
||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
|
using osu.Game.Online.API.Requests.Responses;
|
||||||
using osu.Game.Rulesets;
|
using osu.Game.Rulesets;
|
||||||
|
using osu.Game.Rulesets.Mods;
|
||||||
using osu.Game.Rulesets.Osu;
|
using osu.Game.Rulesets.Osu;
|
||||||
|
using osu.Game.Rulesets.Scoring;
|
||||||
|
using osu.Game.Scoring;
|
||||||
|
|
||||||
namespace osu.Game.Tests.Resources
|
namespace osu.Game.Tests.Resources
|
||||||
{
|
{
|
||||||
@ -137,5 +142,67 @@ namespace osu.Game.Tests.Resources
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a test score model.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ruleset">The ruleset for which the score was set against.</param>
|
||||||
|
/// <param name="excessMods">Whether to include an excessive number of mods. If <c>false</c>, only two will be added.</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static ScoreInfo CreateTestScoreInfo(RulesetInfo ruleset = null, bool excessMods = false) =>
|
||||||
|
CreateTestScoreInfo(CreateTestBeatmapSetInfo(1, new[] { ruleset ?? new OsuRuleset().RulesetInfo }).Beatmaps.First(), excessMods);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create a test score model.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="beatmap">The beatmap for which the score was set against.</param>
|
||||||
|
/// <param name="excessMods">Whether to include an excessive number of mods. If <c>false</c>, only two will be added.</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
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, int>
|
||||||
|
{
|
||||||
|
[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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@ using osu.Game.Scoring;
|
|||||||
using osu.Game.Screens.OnlinePlay.Playlists;
|
using osu.Game.Screens.OnlinePlay.Playlists;
|
||||||
using osu.Game.Screens.Ranking;
|
using osu.Game.Screens.Ranking;
|
||||||
using osu.Game.Tests.Beatmaps;
|
using osu.Game.Tests.Beatmaps;
|
||||||
|
using osu.Game.Tests.Resources;
|
||||||
|
|
||||||
namespace osu.Game.Tests.Visual.Playlists
|
namespace osu.Game.Tests.Visual.Playlists
|
||||||
{
|
{
|
||||||
@ -52,7 +53,9 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
|
|
||||||
AddStep("bind user score info handler", () =>
|
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);
|
bindHandler(userScore: userScore);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -78,7 +81,9 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
|
|
||||||
AddStep("bind user score info handler", () =>
|
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);
|
bindHandler(true, userScore);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -127,7 +132,9 @@ namespace osu.Game.Tests.Visual.Playlists
|
|||||||
|
|
||||||
AddStep("bind user score info handler", () =>
|
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);
|
bindHandler(userScore: userScore);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ using osu.Game.Rulesets.Osu;
|
|||||||
using osu.Game.Scoring;
|
using osu.Game.Scoring;
|
||||||
using osu.Game.Screens.Ranking;
|
using osu.Game.Screens.Ranking;
|
||||||
using osu.Game.Screens.Ranking.Contracted;
|
using osu.Game.Screens.Ranking.Contracted;
|
||||||
|
using osu.Game.Tests.Resources;
|
||||||
using osuTK;
|
using osuTK;
|
||||||
|
|
||||||
namespace osu.Game.Tests.Visual.Ranking
|
namespace osu.Game.Tests.Visual.Ranking
|
||||||
@ -22,13 +23,13 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestShowPanel()
|
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]
|
[Test]
|
||||||
public void TestExcessMods()
|
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)
|
private void showPanel(WorkingBeatmap workingBeatmap, ScoreInfo score)
|
||||||
|
@ -20,6 +20,7 @@ using osu.Game.Scoring;
|
|||||||
using osu.Game.Screens.Ranking;
|
using osu.Game.Screens.Ranking;
|
||||||
using osu.Game.Screens.Ranking.Expanded;
|
using osu.Game.Screens.Ranking.Expanded;
|
||||||
using osu.Game.Tests.Beatmaps;
|
using osu.Game.Tests.Beatmaps;
|
||||||
|
using osu.Game.Tests.Resources;
|
||||||
using osuTK;
|
using osuTK;
|
||||||
|
|
||||||
namespace osu.Game.Tests.Visual.Ranking
|
namespace osu.Game.Tests.Visual.Ranking
|
||||||
@ -34,10 +35,7 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
{
|
{
|
||||||
var author = new APIUser { Username = "mapper_name" };
|
var author = new APIUser { Username = "mapper_name" };
|
||||||
|
|
||||||
AddStep("show example score", () => showPanel(new TestScoreInfo(new OsuRuleset().RulesetInfo)
|
AddStep("show example score", () => showPanel(TestResources.CreateTestScoreInfo(createTestBeatmap(author))));
|
||||||
{
|
|
||||||
BeatmapInfo = createTestBeatmap(author)
|
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
@ -45,10 +43,7 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
{
|
{
|
||||||
var author = new APIUser { Username = "mapper_name" };
|
var author = new APIUser { Username = "mapper_name" };
|
||||||
|
|
||||||
AddStep("show excess mods score", () => showPanel(new TestScoreInfo(new OsuRuleset().RulesetInfo, true)
|
AddStep("show excess mods score", () => showPanel(TestResources.CreateTestScoreInfo(createTestBeatmap(author), true)));
|
||||||
{
|
|
||||||
BeatmapInfo = createTestBeatmap(author)
|
|
||||||
}));
|
|
||||||
|
|
||||||
AddAssert("mapper name present", () => this.ChildrenOfType<OsuSpriteText>().Any(spriteText => spriteText.Current.Value == "mapper_name"));
|
AddAssert("mapper name present", () => this.ChildrenOfType<OsuSpriteText>().Any(spriteText => spriteText.Current.Value == "mapper_name"));
|
||||||
}
|
}
|
||||||
@ -56,10 +51,7 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestMapWithUnknownMapper()
|
public void TestMapWithUnknownMapper()
|
||||||
{
|
{
|
||||||
AddStep("show example score", () => showPanel(new TestScoreInfo(new OsuRuleset().RulesetInfo)
|
AddStep("show example score", () => showPanel(TestResources.CreateTestScoreInfo(createTestBeatmap(new APIUser()))));
|
||||||
{
|
|
||||||
BeatmapInfo = createTestBeatmap(new APIUser())
|
|
||||||
}));
|
|
||||||
|
|
||||||
AddAssert("mapped by text not present", () =>
|
AddAssert("mapped by text not present", () =>
|
||||||
this.ChildrenOfType<OsuSpriteText>().All(spriteText => !containsAny(spriteText.Text.ToString(), "mapped", "by")));
|
this.ChildrenOfType<OsuSpriteText>().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 mods = new Mod[] { ruleset.GetAutoplayMod() };
|
||||||
var beatmap = createTestBeatmap(new APIUser());
|
var beatmap = createTestBeatmap(new APIUser());
|
||||||
|
|
||||||
showPanel(new TestScoreInfo(ruleset.RulesetInfo)
|
var score = TestResources.CreateTestScoreInfo(beatmap);
|
||||||
{
|
|
||||||
Mods = mods,
|
score.Mods = mods;
|
||||||
BeatmapInfo = beatmap,
|
score.Date = default;
|
||||||
Date = default,
|
|
||||||
});
|
showPanel(score);
|
||||||
});
|
});
|
||||||
|
|
||||||
AddAssert("play time not displayed", () => !this.ChildrenOfType<ExpandedPanelMiddleContent.PlayedOnText>().Any());
|
AddAssert("play time not displayed", () => !this.ChildrenOfType<ExpandedPanelMiddleContent.PlayedOnText>().Any());
|
||||||
|
@ -5,8 +5,8 @@ using osu.Framework.Extensions.Color4Extensions;
|
|||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
using osu.Framework.Graphics.Containers;
|
using osu.Framework.Graphics.Containers;
|
||||||
using osu.Framework.Graphics.Shapes;
|
using osu.Framework.Graphics.Shapes;
|
||||||
using osu.Game.Rulesets.Osu;
|
|
||||||
using osu.Game.Screens.Ranking.Expanded;
|
using osu.Game.Screens.Ranking.Expanded;
|
||||||
|
using osu.Game.Tests.Resources;
|
||||||
using osuTK;
|
using osuTK;
|
||||||
|
|
||||||
namespace osu.Game.Tests.Visual.Ranking
|
namespace osu.Game.Tests.Visual.Ranking
|
||||||
@ -27,7 +27,7 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
RelativeSizeAxes = Axes.Both,
|
RelativeSizeAxes = Axes.Both,
|
||||||
Colour = Color4Extensions.FromHex("#444"),
|
Colour = Color4Extensions.FromHex("#444"),
|
||||||
},
|
},
|
||||||
new ExpandedPanelTopContent(new TestScoreInfo(new OsuRuleset().RulesetInfo).User),
|
new ExpandedPanelTopContent(TestResources.CreateTestScoreInfo().User),
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,7 @@ using osu.Game.Screens;
|
|||||||
using osu.Game.Screens.Play;
|
using osu.Game.Screens.Play;
|
||||||
using osu.Game.Screens.Ranking;
|
using osu.Game.Screens.Ranking;
|
||||||
using osu.Game.Screens.Ranking.Statistics;
|
using osu.Game.Screens.Ranking.Statistics;
|
||||||
|
using osu.Game.Tests.Resources;
|
||||||
using osuTK;
|
using osuTK;
|
||||||
using osuTK.Input;
|
using osuTK.Input;
|
||||||
|
|
||||||
@ -72,11 +73,10 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
{
|
{
|
||||||
TestResultsScreen screen = null;
|
TestResultsScreen screen = null;
|
||||||
|
|
||||||
var score = new TestScoreInfo(new OsuRuleset().RulesetInfo)
|
var score = TestResources.CreateTestScoreInfo();
|
||||||
{
|
|
||||||
Accuracy = accuracy,
|
score.Accuracy = accuracy;
|
||||||
Rank = rank
|
score.Rank = rank;
|
||||||
};
|
|
||||||
|
|
||||||
AddStep("load results", () => Child = new TestResultsContainer(screen = createResultsScreen(score)));
|
AddStep("load results", () => Child = new TestResultsContainer(screen = createResultsScreen(score)));
|
||||||
AddUntilStep("wait for loaded", () => screen.IsLoaded);
|
AddUntilStep("wait for loaded", () => screen.IsLoaded);
|
||||||
@ -204,7 +204,7 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
{
|
{
|
||||||
DelayedFetchResultsScreen screen = null;
|
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);
|
AddUntilStep("wait for loaded", () => screen.IsLoaded);
|
||||||
AddStep("click expanded panel", () =>
|
AddStep("click expanded panel", () =>
|
||||||
{
|
{
|
||||||
@ -237,9 +237,9 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
AddAssert("download button is enabled", () => screen.ChildrenOfType<DownloadButton>().Last().Enabled.Value);
|
AddAssert("download button is enabled", () => screen.ChildrenOfType<DownloadButton>().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
|
private class TestResultsContainer : Container
|
||||||
{
|
{
|
||||||
@ -282,7 +282,7 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
|
|
||||||
for (int i = 0; i < 20; i++)
|
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.TotalScore += 10 - i;
|
||||||
score.Hash = $"test{i}";
|
score.Hash = $"test{i}";
|
||||||
scores.Add(score);
|
scores.Add(score);
|
||||||
@ -316,7 +316,7 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
|
|
||||||
for (int i = 0; i < 20; i++)
|
for (int i = 0; i < 20; i++)
|
||||||
{
|
{
|
||||||
var score = new TestScoreInfo(new OsuRuleset().RulesetInfo);
|
var score = TestResources.CreateTestScoreInfo();
|
||||||
score.TotalScore += 10 - i;
|
score.TotalScore += 10 - i;
|
||||||
scores.Add(score);
|
scores.Add(score);
|
||||||
}
|
}
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||
|
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
using osu.Game.Rulesets.Osu;
|
|
||||||
using osu.Game.Rulesets.Scoring;
|
using osu.Game.Rulesets.Scoring;
|
||||||
using osu.Game.Scoring;
|
using osu.Game.Scoring;
|
||||||
using osu.Game.Screens.Ranking;
|
using osu.Game.Screens.Ranking;
|
||||||
|
using osu.Game.Tests.Resources;
|
||||||
|
|
||||||
namespace osu.Game.Tests.Visual.Ranking
|
namespace osu.Game.Tests.Visual.Ranking
|
||||||
{
|
{
|
||||||
@ -17,7 +17,9 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestDRank()
|
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);
|
addPanelStep(score);
|
||||||
}
|
}
|
||||||
@ -25,7 +27,9 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestCRank()
|
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);
|
addPanelStep(score);
|
||||||
}
|
}
|
||||||
@ -33,7 +37,9 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestBRank()
|
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);
|
addPanelStep(score);
|
||||||
}
|
}
|
||||||
@ -41,7 +47,9 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestARank()
|
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);
|
addPanelStep(score);
|
||||||
}
|
}
|
||||||
@ -49,7 +57,9 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestSRank()
|
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);
|
addPanelStep(score);
|
||||||
}
|
}
|
||||||
@ -57,7 +67,9 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestAlmostSSRank()
|
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);
|
addPanelStep(score);
|
||||||
}
|
}
|
||||||
@ -65,7 +77,9 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestSSRank()
|
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);
|
addPanelStep(score);
|
||||||
}
|
}
|
||||||
@ -73,7 +87,9 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestAllHitResults()
|
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);
|
addPanelStep(score);
|
||||||
}
|
}
|
||||||
@ -81,7 +97,9 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestContractedPanel()
|
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);
|
addPanelStep(score, PanelState.Contracted);
|
||||||
}
|
}
|
||||||
@ -89,7 +107,9 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestExpandAndContract()
|
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);
|
addPanelStep(score, PanelState.Contracted);
|
||||||
AddWaitStep("wait for transition", 10);
|
AddWaitStep("wait for transition", 10);
|
||||||
|
@ -10,6 +10,7 @@ using osu.Framework.Utils;
|
|||||||
using osu.Game.Rulesets.Osu;
|
using osu.Game.Rulesets.Osu;
|
||||||
using osu.Game.Scoring;
|
using osu.Game.Scoring;
|
||||||
using osu.Game.Screens.Ranking;
|
using osu.Game.Screens.Ranking;
|
||||||
|
using osu.Game.Tests.Resources;
|
||||||
using osuTK.Input;
|
using osuTK.Input;
|
||||||
|
|
||||||
namespace osu.Game.Tests.Visual.Ranking
|
namespace osu.Game.Tests.Visual.Ranking
|
||||||
@ -29,14 +30,14 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
{
|
{
|
||||||
createListStep(() => new ScorePanelList
|
createListStep(() => new ScorePanelList
|
||||||
{
|
{
|
||||||
SelectedScore = { Value = new TestScoreInfo(new OsuRuleset().RulesetInfo) }
|
SelectedScore = { Value = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo) }
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TestAddPanelAfterSelectingScore()
|
public void TestAddPanelAfterSelectingScore()
|
||||||
{
|
{
|
||||||
var score = new TestScoreInfo(new OsuRuleset().RulesetInfo);
|
var score = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo);
|
||||||
|
|
||||||
createListStep(() => new ScorePanelList
|
createListStep(() => new ScorePanelList
|
||||||
{
|
{
|
||||||
@ -52,7 +53,7 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestAddPanelBeforeSelectingScore()
|
public void TestAddPanelBeforeSelectingScore()
|
||||||
{
|
{
|
||||||
var score = new TestScoreInfo(new OsuRuleset().RulesetInfo);
|
var score = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo);
|
||||||
|
|
||||||
createListStep(() => new ScorePanelList());
|
createListStep(() => new ScorePanelList());
|
||||||
|
|
||||||
@ -75,7 +76,7 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
AddStep("add many scores", () =>
|
AddStep("add many scores", () =>
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 20; i++)
|
for (int i = 0; i < 20; i++)
|
||||||
list.AddScore(new TestScoreInfo(new OsuRuleset().RulesetInfo));
|
list.AddScore(TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo));
|
||||||
});
|
});
|
||||||
|
|
||||||
assertFirstPanelCentred();
|
assertFirstPanelCentred();
|
||||||
@ -84,7 +85,7 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestAddManyScoresAfterExpandedPanel()
|
public void TestAddManyScoresAfterExpandedPanel()
|
||||||
{
|
{
|
||||||
var initialScore = new TestScoreInfo(new OsuRuleset().RulesetInfo);
|
var initialScore = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo);
|
||||||
|
|
||||||
createListStep(() => new ScorePanelList());
|
createListStep(() => new ScorePanelList());
|
||||||
|
|
||||||
@ -97,7 +98,7 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
AddStep("add many scores", () =>
|
AddStep("add many scores", () =>
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 20; i++)
|
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);
|
assertScoreState(initialScore, true);
|
||||||
@ -107,7 +108,7 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestAddManyScoresBeforeExpandedPanel()
|
public void TestAddManyScoresBeforeExpandedPanel()
|
||||||
{
|
{
|
||||||
var initialScore = new TestScoreInfo(new OsuRuleset().RulesetInfo);
|
var initialScore = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo);
|
||||||
|
|
||||||
createListStep(() => new ScorePanelList());
|
createListStep(() => new ScorePanelList());
|
||||||
|
|
||||||
@ -120,7 +121,7 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
AddStep("add scores", () =>
|
AddStep("add scores", () =>
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 20; i++)
|
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);
|
assertScoreState(initialScore, true);
|
||||||
@ -130,7 +131,7 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestAddManyPanelsOnBothSidesOfExpandedPanel()
|
public void TestAddManyPanelsOnBothSidesOfExpandedPanel()
|
||||||
{
|
{
|
||||||
var initialScore = new TestScoreInfo(new OsuRuleset().RulesetInfo);
|
var initialScore = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo);
|
||||||
|
|
||||||
createListStep(() => new ScorePanelList());
|
createListStep(() => new ScorePanelList());
|
||||||
|
|
||||||
@ -143,10 +144,10 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
AddStep("add scores after", () =>
|
AddStep("add scores after", () =>
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 20; i++)
|
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++)
|
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);
|
assertScoreState(initialScore, true);
|
||||||
@ -156,8 +157,8 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestSelectMultipleScores()
|
public void TestSelectMultipleScores()
|
||||||
{
|
{
|
||||||
var firstScore = new TestScoreInfo(new OsuRuleset().RulesetInfo);
|
var firstScore = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo);
|
||||||
var secondScore = new TestScoreInfo(new OsuRuleset().RulesetInfo);
|
var secondScore = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo);
|
||||||
|
|
||||||
firstScore.UserString = "A";
|
firstScore.UserString = "A";
|
||||||
secondScore.UserString = "B";
|
secondScore.UserString = "B";
|
||||||
@ -190,7 +191,7 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestAddScoreImmediately()
|
public void TestAddScoreImmediately()
|
||||||
{
|
{
|
||||||
var score = new TestScoreInfo(new OsuRuleset().RulesetInfo);
|
var score = TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo);
|
||||||
|
|
||||||
createListStep(() =>
|
createListStep(() =>
|
||||||
{
|
{
|
||||||
@ -206,9 +207,14 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestKeyboardNavigation()
|
public void TestKeyboardNavigation()
|
||||||
{
|
{
|
||||||
var lowestScore = new TestScoreInfo(new OsuRuleset().RulesetInfo) { MaxCombo = 100 };
|
var lowestScore = TestResources.CreateTestScoreInfo();
|
||||||
var middleScore = new TestScoreInfo(new OsuRuleset().RulesetInfo) { MaxCombo = 200 };
|
lowestScore.MaxCombo = 100;
|
||||||
var highestScore = new TestScoreInfo(new OsuRuleset().RulesetInfo) { MaxCombo = 300 };
|
|
||||||
|
var middleScore = TestResources.CreateTestScoreInfo();
|
||||||
|
middleScore.MaxCombo = 200;
|
||||||
|
|
||||||
|
var highestScore = TestResources.CreateTestScoreInfo();
|
||||||
|
highestScore.MaxCombo = 300;
|
||||||
|
|
||||||
createListStep(() => new ScorePanelList());
|
createListStep(() => new ScorePanelList());
|
||||||
|
|
||||||
@ -270,6 +276,13 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
assertExpandedPanelCentred();
|
assertExpandedPanelCentred();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ScoreInfo createScoreForTotalScore(long totalScore)
|
||||||
|
{
|
||||||
|
var score = TestResources.CreateTestScoreInfo();
|
||||||
|
score.TotalScore = totalScore;
|
||||||
|
return score;
|
||||||
|
}
|
||||||
|
|
||||||
private void createListStep(Func<ScorePanelList> creationFunc)
|
private void createListStep(Func<ScorePanelList> creationFunc)
|
||||||
{
|
{
|
||||||
AddStep("create list", () => Child = list = creationFunc().With(d =>
|
AddStep("create list", () => Child = list = creationFunc().With(d =>
|
||||||
|
@ -11,6 +11,7 @@ using osu.Game.Scoring;
|
|||||||
using osu.Game.Screens.Ranking.Statistics;
|
using osu.Game.Screens.Ranking.Statistics;
|
||||||
using osu.Game.Rulesets.Osu.Objects;
|
using osu.Game.Rulesets.Osu.Objects;
|
||||||
using osu.Game.Rulesets.Scoring;
|
using osu.Game.Rulesets.Scoring;
|
||||||
|
using osu.Game.Tests.Resources;
|
||||||
using osuTK;
|
using osuTK;
|
||||||
|
|
||||||
namespace osu.Game.Tests.Visual.Ranking
|
namespace osu.Game.Tests.Visual.Ranking
|
||||||
@ -20,10 +21,8 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestScoreWithTimeStatistics()
|
public void TestScoreWithTimeStatistics()
|
||||||
{
|
{
|
||||||
var score = new TestScoreInfo(new OsuRuleset().RulesetInfo)
|
var score = TestResources.CreateTestScoreInfo();
|
||||||
{
|
score.HitEvents = TestSceneHitEventTimingDistributionGraph.CreateDistributedHitEvents();
|
||||||
HitEvents = TestSceneHitEventTimingDistributionGraph.CreateDistributedHitEvents()
|
|
||||||
};
|
|
||||||
|
|
||||||
loadPanel(score);
|
loadPanel(score);
|
||||||
}
|
}
|
||||||
@ -31,10 +30,8 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestScoreWithPositionStatistics()
|
public void TestScoreWithPositionStatistics()
|
||||||
{
|
{
|
||||||
var score = new TestScoreInfo(new OsuRuleset().RulesetInfo)
|
var score = TestResources.CreateTestScoreInfo();
|
||||||
{
|
score.HitEvents = createPositionDistributedHitEvents();
|
||||||
HitEvents = createPositionDistributedHitEvents()
|
|
||||||
};
|
|
||||||
|
|
||||||
loadPanel(score);
|
loadPanel(score);
|
||||||
}
|
}
|
||||||
@ -42,7 +39,7 @@ namespace osu.Game.Tests.Visual.Ranking
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestScoreWithoutStatistics()
|
public void TestScoreWithoutStatistics()
|
||||||
{
|
{
|
||||||
loadPanel(new TestScoreInfo(new OsuRuleset().RulesetInfo));
|
loadPanel(TestResources.CreateTestScoreInfo(new OsuRuleset().RulesetInfo));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -1,66 +0,0 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Reference in New Issue
Block a user