// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using System.Linq; using osu.Framework.Testing; using osu.Game.Audio; using osu.Game.Beatmaps; using osu.Game.Rulesets.Taiko.Objects.Drawables; using osu.Game.Tests.Visual; namespace osu.Game.Rulesets.Taiko.Tests { /// /// Taiko has some interesting rules for legacy mappings. /// [HeadlessTest] public class TestSceneSampleOutput : PlayerTestScene { public TestSceneSampleOutput() : base(new TaikoRuleset()) { } public override void SetUpSteps() { base.SetUpSteps(); AddAssert("has correct samples", () => { var names = Player.DrawableRuleset.Playfield.AllHitObjects.OfType().Select(h => string.Join(',', h.GetSamples().Select(s => s.Name))); var expected = new[] { string.Empty, string.Empty, string.Empty, string.Empty, HitSampleInfo.HIT_FINISH, HitSampleInfo.HIT_WHISTLE, HitSampleInfo.HIT_WHISTLE, HitSampleInfo.HIT_WHISTLE, }; return names.SequenceEqual(expected); }); } protected override IBeatmap CreateBeatmap(RulesetInfo ruleset) => new TaikoBeatmapConversionTest().GetBeatmap("sample-to-type-conversions"); } }