mirror of
https://github.com/ppy/osu.git
synced 2024-12-05 09:42:54 +08:00
Fix various test failures
This commit is contained in:
parent
1847b679db
commit
caf56afba6
@ -269,7 +269,7 @@ namespace osu.Game.Tests.Visual.Online
|
|||||||
|
|
||||||
AddStep("signal score processed", () => ((ISpectatorClient)spectatorClient).UserScoreProcessed(userId, scoreId));
|
AddStep("signal score processed", () => ((ISpectatorClient)spectatorClient).UserScoreProcessed(userId, scoreId));
|
||||||
AddUntilStep("update received", () => update != null);
|
AddUntilStep("update received", () => update != null);
|
||||||
AddAssert("statistics values are correct", () => dummyAPI.LocalUser.Value.Statistics.TotalScore, () => Is.EqualTo(5_000_000));
|
AddAssert("statistics values are correct", () => statisticsProvider.GetStatisticsFor(ruleset)!.TotalScore, () => Is.EqualTo(5_000_000));
|
||||||
}
|
}
|
||||||
|
|
||||||
private int nextUserId = 2000;
|
private int nextUserId = 2000;
|
||||||
|
@ -8,14 +8,14 @@ using System.Collections.Generic;
|
|||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using osu.Framework.Allocation;
|
|
||||||
using osu.Framework.Extensions.IEnumerableExtensions;
|
|
||||||
using osu.Framework.Platform;
|
using osu.Framework.Platform;
|
||||||
using osu.Framework.Testing;
|
using osu.Framework.Testing;
|
||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
using osu.Game.Database;
|
using osu.Game.Database;
|
||||||
using osu.Game.Extensions;
|
using osu.Game.Extensions;
|
||||||
using osu.Game.Online.API;
|
using osu.Game.Online.API;
|
||||||
|
using osu.Game.Online.API.Requests;
|
||||||
|
using osu.Game.Online.API.Requests.Responses;
|
||||||
using osu.Game.Rulesets;
|
using osu.Game.Rulesets;
|
||||||
using osu.Game.Rulesets.Catch;
|
using osu.Game.Rulesets.Catch;
|
||||||
using osu.Game.Rulesets.Mania;
|
using osu.Game.Rulesets.Mania;
|
||||||
@ -28,25 +28,31 @@ namespace osu.Game.Tests.Visual.SongSelect
|
|||||||
{
|
{
|
||||||
public partial class TestSceneBeatmapRecommendations : OsuGameTestScene
|
public partial class TestSceneBeatmapRecommendations : OsuGameTestScene
|
||||||
{
|
{
|
||||||
[Resolved]
|
|
||||||
private IRulesetStore rulesetStore { get; set; }
|
|
||||||
|
|
||||||
[SetUpSteps]
|
[SetUpSteps]
|
||||||
public override void SetUpSteps()
|
public override void SetUpSteps()
|
||||||
{
|
{
|
||||||
AddStep("populate ruleset statistics", () =>
|
AddStep("populate ruleset statistics", () =>
|
||||||
{
|
{
|
||||||
Dictionary<string, UserStatistics> rulesetStatistics = new Dictionary<string, UserStatistics>();
|
((DummyAPIAccess)API).HandleRequest += r =>
|
||||||
|
|
||||||
rulesetStore.AvailableRulesets.Where(ruleset => ruleset.IsLegacyRuleset()).ForEach(rulesetInfo =>
|
|
||||||
{
|
{
|
||||||
rulesetStatistics[rulesetInfo.ShortName] = new UserStatistics
|
switch (r)
|
||||||
{
|
{
|
||||||
PP = getNecessaryPP(rulesetInfo.OnlineID)
|
case GetUserRequest userRequest:
|
||||||
};
|
userRequest.TriggerSuccess(new APIUser
|
||||||
});
|
{
|
||||||
|
Id = 99,
|
||||||
|
Statistics = new UserStatistics
|
||||||
|
{
|
||||||
|
PP = getNecessaryPP(userRequest.Ruleset?.OnlineID ?? 0)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
API.LocalUser.Value.RulesetsStatistics = rulesetStatistics;
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
decimal getNecessaryPP(int? rulesetID)
|
decimal getNecessaryPP(int? rulesetID)
|
||||||
|
@ -61,6 +61,9 @@ namespace osu.Game.Beatmaps
|
|||||||
statisticsUpdate = statisticsProvider.StatisticsUpdate.GetBoundCopy();
|
statisticsUpdate = statisticsProvider.StatisticsUpdate.GetBoundCopy();
|
||||||
statisticsUpdate.BindValueChanged(u =>
|
statisticsUpdate.BindValueChanged(u =>
|
||||||
{
|
{
|
||||||
|
if (u.NewValue == null)
|
||||||
|
return;
|
||||||
|
|
||||||
// algorithm taken from https://github.com/ppy/osu-web/blob/e6e2825516449e3d0f3f5e1852c6bdd3428c3437/app/Models/User.php#L1505
|
// algorithm taken from https://github.com/ppy/osu-web/blob/e6e2825516449e3d0f3f5e1852c6bdd3428c3437/app/Models/User.php#L1505
|
||||||
recommendedDifficultyMapping[u.NewValue.Ruleset.ShortName] = Math.Pow((double)(u.NewValue.NewStatistics.PP ?? 0), 0.4) * 0.195;
|
recommendedDifficultyMapping[u.NewValue.Ruleset.ShortName] = Math.Pow((double)(u.NewValue.NewStatistics.PP ?? 0), 0.4) * 0.195;
|
||||||
}, true);
|
}, true);
|
||||||
|
@ -230,7 +230,7 @@ namespace osu.Game.Online.API.Requests.Responses
|
|||||||
[JsonProperty(@"statistics")]
|
[JsonProperty(@"statistics")]
|
||||||
public UserStatistics Statistics
|
public UserStatistics Statistics
|
||||||
{
|
{
|
||||||
get => statistics;
|
get => statistics ??= new UserStatistics();
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (statistics != null)
|
if (statistics != null)
|
||||||
@ -244,11 +244,7 @@ namespace osu.Game.Online.API.Requests.Responses
|
|||||||
[JsonProperty(@"rank_history")]
|
[JsonProperty(@"rank_history")]
|
||||||
private APIRankHistory rankHistory
|
private APIRankHistory rankHistory
|
||||||
{
|
{
|
||||||
set
|
set => Statistics.RankHistory = value;
|
||||||
{
|
|
||||||
statistics ??= new UserStatistics();
|
|
||||||
statistics.RankHistory = value;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[JsonProperty(@"active_tournament_banners")]
|
[JsonProperty(@"active_tournament_banners")]
|
||||||
|
Loading…
Reference in New Issue
Block a user