public void TestKeepAlive() { TestDrawableHitObject dho = null; TestLifetimeEntry entry = null; AddStep("Create DHO", () => Child = dho = new TestDrawableHitObject { Entry = entry = new TestLifetimeEntry(new HitObject()) }); AddStep("KeepAlive = true", () => { entry.LifetimeStart = 0; entry.LifetimeEnd = 1000; 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", () => Child = dho = new TestDrawableHitObject { Entry = entry = new TestLifetimeEntry(new HitObject()) }); 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); }
private void addHitObject(double time) { playfields.ForEach(p => { var hitObject = new TestDrawableHitObject(time); setAnchor(hitObject, p); p.Add(hitObject); }); }
public void TestChangeComboIndexAfterLoad() { TestDrawableHitObject hitObject = null; AddStep("add hitobject", () => skinContainer.Add(hitObject = new TestDrawableHitObject())); AddAssert("combo colour is red", () => hitObject.AccentColour.Value == Color4.Red); AddStep("change combo", () => hitObject.HitObject.ComboIndex = 1); AddAssert("combo colour is green", () => hitObject.AccentColour.Value == Color4.Green); }
public void TestChangeComboIndexDuringLoad() { TestDrawableHitObject hitObject = null; AddStep("add hitobject and set combo", () => { skinContainer.Add(hitObject = new TestDrawableHitObject()); hitObject.HitObject.ComboIndex = 1; }); AddAssert("combo colour is green", () => hitObject.AccentColour.Value == Color4.Green); }
public void TestEarlyHitObjectIsAddedLaterInList() { DrawableHitObject hitObject = null; AddStep("setup", () => container.Add(new TestDrawableHitObject(new HitObject { StartTime = 500 }))); AddStep("add early hitobject", () => container.Add(hitObject = new TestDrawableHitObject(new HitObject()))); AddAssert("hitobject index is 0", () => container.IndexOf(hitObject) == 1); }
public void TestStateChangeBeforeLoadComplete() { TestDrawableHitObject dho = null; AddStep("Add DHO and apply result", () => { Child = dho = new TestDrawableHitObject(new HitObject { StartTime = Time.Current }); dho.MissForcefully(); }); AddAssert("DHO state is correct", () => dho.State.Value == ArmedState.Miss); }
public void TestChangeComboIndexBeforeLoad() { TestDrawableHitObject hitObject = null; AddStep("set combo and add hitobject", () => { hitObject = new TestDrawableHitObject(); hitObject.HitObject.ComboIndex = 1; skinContainer.Add(hitObject); }); AddAssert("combo colour is green", () => hitObject.AccentColour.Value == Colour4.Green); }
public void TestHitObjectsResortedAfterStartTimeChange() { DrawableHitObject firstObject = null; DrawableHitObject secondObject = null; AddStep("setup", () => { container.Add(firstObject = new TestDrawableHitObject(new HitObject())); container.Add(secondObject = new TestDrawableHitObject(new HitObject { StartTime = 1000 })); }); AddStep("move first object after second", () => firstObject.HitObject.StartTime = 2000); AddAssert("first object index is 1", () => container.IndexOf(firstObject) == 0); AddAssert("second object index is 0", () => container.IndexOf(secondObject) == 1); }
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", () => Child = dho = new TestDrawableHitObject { Entry = entry, 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); }
public void TestEntryLifetime() { TestDrawableHitObject dho = null; var initialHitObject = new HitObject { StartTime = 1000 }; var entry = new TestLifetimeEntry(new HitObject { StartTime = 2000 }); AddStep("Create DHO", () => Child = dho = new TestDrawableHitObject(initialHitObject)); AddAssert("Correct initial lifetime", () => dho.LifetimeStart == initialHitObject.StartTime - TestDrawableHitObject.INITIAL_LIFETIME_OFFSET); AddStep("Apply entry", () => dho.Apply(entry)); AddAssert("Correct initial lifetime", () => dho.LifetimeStart == entry.HitObject.StartTime - TestLifetimeEntry.INITIAL_LIFETIME_OFFSET); AddStep("Set lifetime", () => dho.LifetimeEnd = 3000); AddAssert("Entry lifetime is updated", () => entry.LifetimeEnd == 3000); }