mirror of
https://github.com/osukey/osukey.git
synced 2025-08-06 08:03:52 +09:00
Modify tests
This commit is contained in:
@ -3,10 +3,16 @@
|
|||||||
|
|
||||||
#nullable disable
|
#nullable disable
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using osu.Framework.Extensions.ObjectExtensions;
|
using osu.Framework.Extensions.ObjectExtensions;
|
||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
using osu.Game.Beatmaps.ControlPoints;
|
using osu.Game.Beatmaps.ControlPoints;
|
||||||
|
using osu.Game.Rulesets.Mods;
|
||||||
|
using osu.Game.Rulesets.Objects;
|
||||||
|
using osu.Game.Rulesets.Objects.Types;
|
||||||
|
using osu.Game.Rulesets.Osu.Mods;
|
||||||
using osu.Game.Rulesets.Osu.Objects;
|
using osu.Game.Rulesets.Osu.Objects;
|
||||||
using osu.Game.Rulesets.Osu.Objects.Drawables;
|
using osu.Game.Rulesets.Osu.Objects.Drawables;
|
||||||
using osu.Game.Tests.Visual;
|
using osu.Game.Tests.Visual;
|
||||||
@ -16,33 +22,111 @@ namespace osu.Game.Rulesets.Osu.Tests
|
|||||||
{
|
{
|
||||||
public partial class TestSceneHitCircleLateFade : OsuTestScene
|
public partial class TestSceneHitCircleLateFade : OsuTestScene
|
||||||
{
|
{
|
||||||
[Test]
|
private float? alphaAtMiss;
|
||||||
public void TestFadeOutIntoMiss()
|
|
||||||
{
|
|
||||||
float? alphaAtMiss = null;
|
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestHitCircleClassicMod()
|
||||||
|
{
|
||||||
AddStep("Create hit circle", () =>
|
AddStep("Create hit circle", () =>
|
||||||
{
|
{
|
||||||
alphaAtMiss = null;
|
SelectedMods.Value = new Mod[] { new OsuModClassic() };
|
||||||
|
createCircle();
|
||||||
DrawableHitCircle drawableHitCircle = new DrawableHitCircle(new HitCircle
|
|
||||||
{
|
|
||||||
StartTime = Time.Current + 500,
|
|
||||||
Position = new Vector2(250)
|
|
||||||
});
|
|
||||||
|
|
||||||
drawableHitCircle.HitObject.ApplyDefaults(new ControlPointInfo(), new BeatmapDifficulty());
|
|
||||||
|
|
||||||
drawableHitCircle.OnNewResult += (_, _) =>
|
|
||||||
{
|
|
||||||
alphaAtMiss = drawableHitCircle.Alpha;
|
|
||||||
};
|
|
||||||
|
|
||||||
Child = drawableHitCircle;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
AddUntilStep("Wait until circle is missed", () => alphaAtMiss.IsNotNull());
|
AddUntilStep("Wait until circle is missed", () => alphaAtMiss.IsNotNull());
|
||||||
AddAssert("Transparent when missed", () => alphaAtMiss == 0);
|
AddAssert("Transparent when missed", () => alphaAtMiss == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestHitCircleNoMod()
|
||||||
|
{
|
||||||
|
AddStep("Create hit circle", () =>
|
||||||
|
{
|
||||||
|
SelectedMods.Value = Array.Empty<Mod>();
|
||||||
|
createCircle();
|
||||||
|
});
|
||||||
|
|
||||||
|
AddUntilStep("Wait until circle is missed", () => alphaAtMiss.IsNotNull());
|
||||||
|
AddAssert("Opaque when missed", () => alphaAtMiss == 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestSliderClassicMod()
|
||||||
|
{
|
||||||
|
AddStep("Create slider", () =>
|
||||||
|
{
|
||||||
|
SelectedMods.Value = new Mod[] { new OsuModClassic() };
|
||||||
|
createSlider();
|
||||||
|
});
|
||||||
|
|
||||||
|
AddUntilStep("Wait until head circle is missed", () => alphaAtMiss.IsNotNull());
|
||||||
|
AddAssert("Head circle transparent when missed", () => alphaAtMiss == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestSliderNoMod()
|
||||||
|
{
|
||||||
|
AddStep("Create slider", () =>
|
||||||
|
{
|
||||||
|
SelectedMods.Value = Array.Empty<Mod>();
|
||||||
|
createSlider();
|
||||||
|
});
|
||||||
|
|
||||||
|
AddUntilStep("Wait until head circle is missed", () => alphaAtMiss.IsNotNull());
|
||||||
|
AddAssert("Head circle opaque when missed", () => alphaAtMiss == 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createCircle()
|
||||||
|
{
|
||||||
|
alphaAtMiss = null;
|
||||||
|
|
||||||
|
DrawableHitCircle drawableHitCircle = new DrawableHitCircle(new HitCircle
|
||||||
|
{
|
||||||
|
StartTime = Time.Current + 500,
|
||||||
|
Position = new Vector2(250)
|
||||||
|
});
|
||||||
|
|
||||||
|
foreach (var mod in SelectedMods.Value.OfType<IApplicableToDrawableHitObject>())
|
||||||
|
mod.ApplyToDrawableHitObject(drawableHitCircle);
|
||||||
|
|
||||||
|
drawableHitCircle.HitObject.ApplyDefaults(new ControlPointInfo(), new BeatmapDifficulty());
|
||||||
|
|
||||||
|
drawableHitCircle.OnNewResult += (_, _) =>
|
||||||
|
{
|
||||||
|
alphaAtMiss = drawableHitCircle.Alpha;
|
||||||
|
};
|
||||||
|
|
||||||
|
Child = drawableHitCircle;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createSlider()
|
||||||
|
{
|
||||||
|
alphaAtMiss = null;
|
||||||
|
|
||||||
|
DrawableSlider drawableSlider = new DrawableSlider(new Slider
|
||||||
|
{
|
||||||
|
StartTime = Time.Current + 500,
|
||||||
|
Position = new Vector2(250),
|
||||||
|
Path = new SliderPath(PathType.Linear, new[]
|
||||||
|
{
|
||||||
|
Vector2.Zero,
|
||||||
|
new Vector2(0, 100),
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
drawableSlider.HitObject.ApplyDefaults(new ControlPointInfo(), new BeatmapDifficulty());
|
||||||
|
|
||||||
|
drawableSlider.OnLoadComplete += _ =>
|
||||||
|
{
|
||||||
|
foreach (var mod in SelectedMods.Value.OfType<IApplicableToDrawableHitObject>())
|
||||||
|
mod.ApplyToDrawableHitObject(drawableSlider.HeadCircle);
|
||||||
|
|
||||||
|
drawableSlider.HeadCircle.OnNewResult += (_, _) =>
|
||||||
|
{
|
||||||
|
alphaAtMiss = drawableSlider.HeadCircle.Alpha;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
Child = drawableSlider;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user