// 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.Collections.Generic; using System.Linq; using NUnit.Framework; using osu.Framework.Graphics; using osu.Framework.MathUtils; using osu.Game.Beatmaps; using osu.Game.Overlays.BeatmapSet; using osu.Game.Screens.Select.Details; namespace osu.Game.Tests.Visual.Online { public class TestSceneBeatmapSetOverlayDetails : OsuTestScene { public override IReadOnlyList RequiredTypes => new[] { typeof(Details) }; private RatingsExposingDetails details; [SetUp] public void Setup() => Schedule(() => { Child = details = new RatingsExposingDetails { Anchor = Anchor.Centre, Origin = Anchor.Centre }; }); [Test] public void TestMetrics() { var firstSet = createSet(); var secondSet = createSet(); AddStep("set first set", () => details.BeatmapSet = firstSet); AddAssert("ratings set", () => details.Ratings.Metrics == firstSet.Metrics); AddStep("set second set", () => details.BeatmapSet = secondSet); AddAssert("ratings set", () => details.Ratings.Metrics == secondSet.Metrics); BeatmapSetInfo createSet() => new BeatmapSetInfo { Metrics = new BeatmapSetMetrics { Ratings = Enumerable.Range(0, 11).Select(_ => RNG.Next(10)).ToArray() }, Beatmaps = new List { new BeatmapInfo { Metrics = new BeatmapMetrics { Fails = Enumerable.Range(1, 100).Select(_ => RNG.Next(10)).ToArray(), Retries = Enumerable.Range(-2, 100).Select(_ => RNG.Next(10)).ToArray(), } } } }; } private class RatingsExposingDetails : Details { public new UserRatings Ratings => base.Ratings; } } }