mirror of
https://github.com/ppy/osu.git
synced 2025-01-06 09:03:01 +08:00
Put tests in more correct place
This commit is contained in:
parent
383d715378
commit
b16ece32f4
@ -2,10 +2,12 @@
|
|||||||
// See the LICENCE file in the repository root for full licence text.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Linq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
using osu.Game.Rulesets.Filter;
|
using osu.Game.Rulesets.Filter;
|
||||||
using osu.Game.Screens.Select;
|
using osu.Game.Screens.Select;
|
||||||
|
using osu.Game.Screens.Select.Carousel;
|
||||||
using osu.Game.Screens.Select.Filter;
|
using osu.Game.Screens.Select.Filter;
|
||||||
|
|
||||||
namespace osu.Game.Tests.NonVisual.Filtering
|
namespace osu.Game.Tests.NonVisual.Filtering
|
||||||
@ -382,6 +384,54 @@ namespace osu.Game.Tests.NonVisual.Filtering
|
|||||||
Assert.AreEqual("unrecognised=keyword", filterCriteria.SearchText.Trim());
|
Assert.AreEqual("unrecognised=keyword", filterCriteria.SearchText.Trim());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[TestCase("[1]", new[] { 0 })]
|
||||||
|
[TestCase("[1", new[] { 0 })]
|
||||||
|
[TestCase("My[Favourite", new[] { 2 })]
|
||||||
|
[TestCase("My[Favourite]", new[] { 2 })]
|
||||||
|
[TestCase("My[Favourite]Song", new[] { 2 })]
|
||||||
|
[TestCase("Favourite]", new[] { 2 })]
|
||||||
|
[TestCase("[Diff", new[] { 0, 1, 3, 4 })]
|
||||||
|
[TestCase("[Diff]", new[] { 0, 1, 3, 4 })]
|
||||||
|
[TestCase("[Favourite]", new[] { 3 })]
|
||||||
|
[TestCase("Title1 [Diff]", new[] { 0, 1 })]
|
||||||
|
[TestCase("Title1[Diff]", new int[] { })]
|
||||||
|
[TestCase("[diff ]with]", new[] { 4 })]
|
||||||
|
[TestCase("[diff ]with [[ brackets]]]]", new[] { 4 })]
|
||||||
|
[TestCase("[diff] another [brackets]", new[] { 4 })]
|
||||||
|
public void TestDifficultySearch(string query, int[] expectedBeatmapIndexes)
|
||||||
|
{
|
||||||
|
var carouselBeatmaps = (((string title, string difficultyName)[])new[]
|
||||||
|
{
|
||||||
|
("Title1", "Diff1"),
|
||||||
|
("Title1", "Diff2"),
|
||||||
|
("My[Favourite]Song", "Expert"),
|
||||||
|
("Title", "My Favourite Diff"),
|
||||||
|
("Another One", "diff ]with [[ brackets]]]"),
|
||||||
|
}).Select(info => new CarouselBeatmap(new BeatmapInfo
|
||||||
|
{
|
||||||
|
Metadata = new BeatmapMetadata
|
||||||
|
{
|
||||||
|
Title = info.title
|
||||||
|
},
|
||||||
|
DifficultyName = info.difficultyName
|
||||||
|
})).ToList();
|
||||||
|
|
||||||
|
var criteria = new FilterCriteria();
|
||||||
|
|
||||||
|
FilterQueryParser.ApplyQueries(criteria, query);
|
||||||
|
carouselBeatmaps.ForEach(b => b.Filter(criteria));
|
||||||
|
|
||||||
|
Assert.That(carouselBeatmaps.All(b =>
|
||||||
|
{
|
||||||
|
int index = carouselBeatmaps.IndexOf(b);
|
||||||
|
|
||||||
|
bool shouldBeVisible = expectedBeatmapIndexes.Contains(index);
|
||||||
|
bool isVisible = !b.Filtered.Value;
|
||||||
|
|
||||||
|
return isVisible == shouldBeVisible;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
private class CustomFilterCriteria : IRulesetFilterCriteria
|
private class CustomFilterCriteria : IRulesetFilterCriteria
|
||||||
{
|
{
|
||||||
public string? CustomValue { get; set; }
|
public string? CustomValue { get; set; }
|
||||||
|
@ -1,72 +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.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using NUnit.Framework;
|
|
||||||
using osu.Game.Beatmaps;
|
|
||||||
using osu.Game.Screens.Select;
|
|
||||||
using osu.Game.Screens.Select.Carousel;
|
|
||||||
using osu.Game.Tests.Visual;
|
|
||||||
|
|
||||||
namespace osu.Game.Tests.SongSelect
|
|
||||||
{
|
|
||||||
public partial class DifficultySearchTest : OsuTestScene
|
|
||||||
{
|
|
||||||
private static readonly (string title, string difficultyName)[] beatmaps =
|
|
||||||
{
|
|
||||||
("Title1", "Diff1"),
|
|
||||||
("Title1", "Diff2"),
|
|
||||||
("My[Favourite]Song", "Expert"),
|
|
||||||
("Title", "My Favourite Diff"),
|
|
||||||
("Another One", "diff ]with [[ brackets]]]"),
|
|
||||||
};
|
|
||||||
|
|
||||||
[TestCase("[1]", new[] { 0 })]
|
|
||||||
[TestCase("[1", new[] { 0 })]
|
|
||||||
[TestCase("My[Favourite", new[] { 2 })]
|
|
||||||
[TestCase("My[Favourite]", new[] { 2 })]
|
|
||||||
[TestCase("My[Favourite]Song", new[] { 2 })]
|
|
||||||
[TestCase("Favourite]", new[] { 2 })]
|
|
||||||
[TestCase("[Diff", new[] { 0, 1, 3, 4 })]
|
|
||||||
[TestCase("[Diff]", new[] { 0, 1, 3, 4 })]
|
|
||||||
[TestCase("[Favourite]", new[] { 3 })]
|
|
||||||
[TestCase("Title1 [Diff]", new[] { 0, 1 })]
|
|
||||||
[TestCase("Title1[Diff]", new int[] { })]
|
|
||||||
[TestCase("[diff ]with]", new[] { 4 })]
|
|
||||||
[TestCase("[diff ]with [[ brackets]]]]", new[] { 4 })]
|
|
||||||
[TestCase("[diff] another [brackets]", new[] { 4 })]
|
|
||||||
public void TestDifficultySearch(string query, int[] expectedBeatmapIndexes)
|
|
||||||
{
|
|
||||||
var carouselBeatmaps = createCarouselBeatmaps().ToList();
|
|
||||||
|
|
||||||
AddStep("filter beatmaps", () =>
|
|
||||||
{
|
|
||||||
var criteria = new FilterCriteria();
|
|
||||||
FilterQueryParser.ApplyQueries(criteria, query);
|
|
||||||
carouselBeatmaps.ForEach(b => b.Filter(criteria));
|
|
||||||
});
|
|
||||||
|
|
||||||
AddAssert("filtered correctly", () => carouselBeatmaps.All(b =>
|
|
||||||
{
|
|
||||||
int index = carouselBeatmaps.IndexOf(b);
|
|
||||||
|
|
||||||
bool filtered = b.Filtered.Value;
|
|
||||||
|
|
||||||
return filtered != expectedBeatmapIndexes.Contains(index);
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
private static IEnumerable<CarouselBeatmap> createCarouselBeatmaps()
|
|
||||||
{
|
|
||||||
return beatmaps.Select(info => new CarouselBeatmap(new BeatmapInfo
|
|
||||||
{
|
|
||||||
Metadata = new BeatmapMetadata
|
|
||||||
{
|
|
||||||
Title = info.title
|
|
||||||
},
|
|
||||||
DifficultyName = info.difficultyName
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user