mirror of https://github.com/ppy/osu
Add failing test coverage for mania
This commit is contained in:
parent
441a7b3c2f
commit
d07ea8f5b1
|
@ -2,6 +2,7 @@
|
||||||
// See the LICENCE file in the repository root for full licence text.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
using osu.Game.Rulesets.Judgements;
|
||||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||||
using osu.Game.Rulesets.Mania.Objects;
|
using osu.Game.Rulesets.Mania.Objects;
|
||||||
using osu.Game.Rulesets.Mania.Scoring;
|
using osu.Game.Rulesets.Mania.Scoring;
|
||||||
|
@ -27,5 +28,49 @@ public void TestNoDrain()
|
||||||
// No matter what, mania doesn't have passive HP drain.
|
// No matter what, mania doesn't have passive HP drain.
|
||||||
Assert.That(processor.DrainRate, Is.Zero);
|
Assert.That(processor.DrainRate, Is.Zero);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static readonly object[][] test_cases =
|
||||||
|
[
|
||||||
|
// hitobject, starting HP, fail expected after miss
|
||||||
|
[new Note(), 0.01, true],
|
||||||
|
[new HeadNote(), 0.01, true],
|
||||||
|
[new TailNote(), 0.01, true],
|
||||||
|
[new HoldNoteBody(), 0, true], // hold note break
|
||||||
|
[new HoldNote(), 0, true],
|
||||||
|
];
|
||||||
|
|
||||||
|
[TestCaseSource(nameof(test_cases))]
|
||||||
|
public void TestFailAfterMinResult(ManiaHitObject hitObject, double startingHealth, bool failExpected)
|
||||||
|
{
|
||||||
|
var healthProcessor = new ManiaHealthProcessor(0);
|
||||||
|
healthProcessor.ApplyBeatmap(new ManiaBeatmap(new StageDefinition(4))
|
||||||
|
{
|
||||||
|
HitObjects = { hitObject }
|
||||||
|
});
|
||||||
|
healthProcessor.Health.Value = startingHealth;
|
||||||
|
|
||||||
|
var result = new JudgementResult(hitObject, hitObject.CreateJudgement());
|
||||||
|
result.Type = result.Judgement.MinResult;
|
||||||
|
healthProcessor.ApplyResult(result);
|
||||||
|
|
||||||
|
Assert.That(healthProcessor.HasFailed, Is.EqualTo(failExpected));
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestCaseSource(nameof(test_cases))]
|
||||||
|
public void TestNoFailAfterMaxResult(ManiaHitObject hitObject, double startingHealth, bool _)
|
||||||
|
{
|
||||||
|
var healthProcessor = new ManiaHealthProcessor(0);
|
||||||
|
healthProcessor.ApplyBeatmap(new ManiaBeatmap(new StageDefinition(4))
|
||||||
|
{
|
||||||
|
HitObjects = { hitObject }
|
||||||
|
});
|
||||||
|
healthProcessor.Health.Value = startingHealth;
|
||||||
|
|
||||||
|
var result = new JudgementResult(hitObject, hitObject.CreateJudgement());
|
||||||
|
result.Type = result.Judgement.MaxResult;
|
||||||
|
healthProcessor.ApplyResult(result);
|
||||||
|
|
||||||
|
Assert.That(healthProcessor.HasFailed, Is.False);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue