コード例 #1
0
        public void TestCorrectObjectCount()
        {
            // Ensure that the mod produces the expected number of objects when applied.

            var rawBeatmap  = createRawBeatmap();
            var testBeatmap = createModdedBeatmap();

            // Calculate expected number of objects
            int expectedObjectCount = 0;

            foreach (ManiaHitObject h in rawBeatmap.HitObjects)
            {
                // Both notes and hold notes account for at least one object
                expectedObjectCount++;

                if (h.GetType() == typeof(HoldNote))
                {
                    double noteValue = ManiaModHoldOff.GetNoteDurationInBeatLength((HoldNote)h, rawBeatmap);

                    if (noteValue >= ManiaModHoldOff.END_NOTE_ALLOW_THRESHOLD)
                    {
                        // Should generate an end note if it's longer than the minimum note value
                        expectedObjectCount++;
                    }
                }
            }

            Assert.That(testBeatmap.HitObjects.Count == expectedObjectCount);
        }
コード例 #2
0
        private static ManiaBeatmap createModdedBeatmap()
        {
            var beatmap    = createRawBeatmap();
            var holdOffMod = new ManiaModHoldOff();

            foreach (var hitObject in beatmap.HitObjects)
            {
                hitObject.ApplyDefaults(beatmap.ControlPointInfo, new BeatmapDifficulty());
            }

            holdOffMod.ApplyToBeatmap(beatmap);

            return(beatmap);
        }
コード例 #3
0
        public void TestCorrectNoteValues()
        {
            var testBeatmap = createRawBeatmap();
            var noteValues  = new List <double>(testBeatmap.HitObjects.OfType <HoldNote>().Count());

            foreach (HoldNote h in testBeatmap.HitObjects.OfType <HoldNote>())
            {
                noteValues.Add(ManiaModHoldOff.GetNoteDurationInBeatLength(h, testBeatmap));
            }

            noteValues.Sort();
            Assert.AreEqual(noteValues, new List <double> {
                0.125, 0.250, 0.500, 1.000, 2.000
            });
        }