mirror of
https://github.com/osukey/osukey.git
synced 2025-07-02 16:59:53 +09:00
Add failing test showing OnNewBeat
can execute far away from an actual beat
This commit is contained in:
@ -56,7 +56,34 @@ namespace osu.Game.Tests.Visual.UserInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TestFirstBeatAtFirstTimingPoint()
|
public void TestSeekBackDoesntPlayMidBeat()
|
||||||
|
{
|
||||||
|
int? lastBeatIndex = null;
|
||||||
|
double? lastActuationTime = null;
|
||||||
|
TimingControlPoint lastTimingPoint = null;
|
||||||
|
|
||||||
|
AddStep("bind event", () =>
|
||||||
|
{
|
||||||
|
beatContainer.NewBeat = (i, timingControlPoint, effectControlPoint, channelAmplitudes) =>
|
||||||
|
{
|
||||||
|
lastActuationTime = gameplayClockContainer.CurrentTime;
|
||||||
|
lastTimingPoint = timingControlPoint;
|
||||||
|
lastBeatIndex = i;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
AddStep("Set time before zero", () =>
|
||||||
|
{
|
||||||
|
lastBeatIndex = null;
|
||||||
|
gameplayClockContainer.Seek(-1000);
|
||||||
|
});
|
||||||
|
|
||||||
|
AddUntilStep("wait for trigger", () => lastBeatIndex != null);
|
||||||
|
AddAssert("trigger is near beat length", () => lastActuationTime != null && lastBeatIndex != null && Precision.AlmostEquals(lastTimingPoint.Time + lastBeatIndex.Value * lastTimingPoint.BeatLength, lastActuationTime.Value, 32));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestNegativeBeatsStillUsingBeatmapTiming()
|
||||||
{
|
{
|
||||||
int? lastBeatIndex = null;
|
int? lastBeatIndex = null;
|
||||||
double? lastBpm = null;
|
double? lastBpm = null;
|
||||||
|
Reference in New Issue
Block a user