public void TestKeepAlive() { TestDrawableHitObject dho = null; TestLifetimeEntry entry = null; AddStep("Create DHO", () => { dho = new TestDrawableHitObject(null); dho.Apply(entry = new TestLifetimeEntry(new HitObject()) { LifetimeStart = 0, LifetimeEnd = 1000, }); Child = dho; }); AddStep("KeepAlive = true", () => entry.KeepAlive = true); AddAssert("Lifetime is overriden", () => entry.LifetimeStart == double.MinValue && entry.LifetimeEnd == double.MaxValue); AddStep("Set LifetimeStart", () => dho.LifetimeStart = 500); AddStep("KeepAlive = false", () => entry.KeepAlive = false); AddAssert("Lifetime is correct", () => entry.LifetimeStart == 500 && entry.LifetimeEnd == 1000); AddStep("Set LifetimeStart while KeepAlive", () => { entry.KeepAlive = true; dho.LifetimeStart = double.MinValue; entry.KeepAlive = false; }); AddAssert("Lifetime is changed", () => entry.LifetimeStart == double.MinValue && entry.LifetimeEnd == 1000); }
public void TestDrawableLifetimeUpdateOnEntryLifetimeChange() { TestDrawableHitObject dho = null; TestLifetimeEntry entry = null; AddStep("Create DHO", () => { dho = new TestDrawableHitObject(null); dho.Apply(entry = new TestLifetimeEntry(new HitObject())); Child = dho; }); AddStep("Set entry lifetime", () => { entry.LifetimeStart = 777; entry.LifetimeEnd = 888; }); AddAssert("Drawable lifetime is updated", () => dho.LifetimeStart == 777 && dho.LifetimeEnd == 888); AddStep("KeepAlive = true", () => entry.KeepAlive = true); AddAssert("Drawable lifetime is updated", () => dho.LifetimeStart == double.MinValue && dho.LifetimeEnd == double.MaxValue); AddStep("Modify start time", () => entry.HitObject.StartTime = 100); AddAssert("Drawable lifetime is correct", () => dho.LifetimeStart == double.MinValue); AddStep("Set LifetimeStart", () => dho.LifetimeStart = 666); AddAssert("Lifetime change is blocked", () => dho.LifetimeStart == double.MinValue); AddStep("Set LifetimeEnd", () => dho.LifetimeEnd = 999); AddAssert("Lifetime change is blocked", () => dho.LifetimeEnd == double.MaxValue); AddStep("KeepAlive = false", () => entry.KeepAlive = false); AddAssert("Drawable lifetime is restored", () => dho.LifetimeStart == 666 && dho.LifetimeEnd == 999); }
public void TestLifetimeUpdatedOnDefaultApplied() { TestLifetimeEntry entry = null; AddStep("Create entry", () => entry = new TestLifetimeEntry(new HitObject()) { LifetimeStart = 1 }); AddStep("ApplyDefaults", () => entry.HitObject.ApplyDefaults(new ControlPointInfo(), new BeatmapDifficulty())); AddAssert("Lifetime is updated", () => entry.LifetimeStart == -TestLifetimeEntry.INITIAL_LIFETIME_OFFSET); TestDrawableHitObject dho = null; AddStep("Create DHO", () => { dho = new TestDrawableHitObject(null); dho.Apply(entry); Child = dho; dho.SetLifetimeStartOnApply = true; }); AddStep("ApplyDefaults", () => entry.HitObject.ApplyDefaults(new ControlPointInfo(), new BeatmapDifficulty())); AddAssert("Lifetime is correct", () => dho.LifetimeStart == TestDrawableHitObject.LIFETIME_ON_APPLY && entry.LifetimeStart == TestDrawableHitObject.LIFETIME_ON_APPLY); }