mirror of https://github.com/ppy/osu
Add test case for legacy loop count behaviour
This commit is contained in:
parent
d6dbdc911f
commit
281a3a0cea
|
@ -149,5 +149,32 @@ public void TestDecodeOutOfRangeLoopAnimationType()
|
|||
Assert.AreEqual(AnimationLoopType.LoopForever, ((StoryboardAnimation)foreground.Elements[5]).LoopType);
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestDecodeLoopCount()
|
||||
{
|
||||
// all loop sequences in loop-count.osb have a total duration of 2000ms (fade in 0->1000ms, fade out 1000->2000ms).
|
||||
const double loop_duration = 2000;
|
||||
|
||||
var decoder = new LegacyStoryboardDecoder();
|
||||
|
||||
using (var resStream = TestResources.OpenResource("loop-count.osb"))
|
||||
using (var stream = new LineBufferedReader(resStream))
|
||||
{
|
||||
var storyboard = decoder.Decode(stream);
|
||||
|
||||
StoryboardLayer background = storyboard.Layers.Single(l => l.Depth == 3);
|
||||
|
||||
// stable ensures that any loop command executes at least once, even if the loop count specified in the .osb is zero or negative.
|
||||
StoryboardSprite zeroTimes = background.Elements.OfType<StoryboardSprite>().Single(s => s.Path == "zero-times.png");
|
||||
Assert.That(zeroTimes.EndTime, Is.EqualTo(1000 + loop_duration));
|
||||
|
||||
StoryboardSprite oneTime = background.Elements.OfType<StoryboardSprite>().Single(s => s.Path == "one-time.png");
|
||||
Assert.That(oneTime.EndTime, Is.EqualTo(4000 + loop_duration));
|
||||
|
||||
StoryboardSprite manyTimes = background.Elements.OfType<StoryboardSprite>().Single(s => s.Path == "many-times.png");
|
||||
Assert.That(manyTimes.EndTime, Is.EqualTo(9000 + 40 * loop_duration));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
osu file format v14
|
||||
|
||||
[Events]
|
||||
Sprite,Background,TopCentre,"zero-times.png",320,240
|
||||
L,1000,0
|
||||
F,0,0,1000,0,1
|
||||
F,0,1000,2000,1,0
|
||||
Sprite,Background,TopCentre,"one-time.png",320,240
|
||||
L,4000,1
|
||||
F,0,0,1000,0,1
|
||||
F,0,1000,2000,1,0
|
||||
Sprite,Background,TopCentre,"many-times.png",320,240
|
||||
L,9000,40
|
||||
F,0,0,1000,0,1
|
||||
F,0,1000,2000,1,0
|
Loading…
Reference in New Issue