private void GetNotes_DetectionSettings_EventsCollection( ContainerType containerType, NoteDetectionSettings settings, ICollection <MidiEvent> midiEvents, ICollection <Note> expectedNotes) { switch (containerType) { case ContainerType.EventsCollection: { var eventsCollection = new EventsCollection(); eventsCollection.AddRange(midiEvents); var notes = eventsCollection.GetNotes(settings); MidiAsserts.AreEqual(expectedNotes, notes, "Notes are invalid."); var timedObjects = eventsCollection.GetObjects(ObjectType.Note, new ObjectDetectionSettings { NoteDetectionSettings = settings }); MidiAsserts.AreEqual(expectedNotes, timedObjects, "Notes are invalid from GetObjects."); } break; case ContainerType.TrackChunk: { var trackChunk = new TrackChunk(midiEvents); var notes = trackChunk.GetNotes(settings); MidiAsserts.AreEqual(expectedNotes, notes, "Notes are invalid."); var timedObjects = trackChunk.GetObjects(ObjectType.Note, new ObjectDetectionSettings { NoteDetectionSettings = settings }); MidiAsserts.AreEqual(expectedNotes, timedObjects, "Notes are invalid from GetObjects."); } break; case ContainerType.TrackChunks: case ContainerType.File: { GetNotes_DetectionSettings_TrackChunks( containerType == ContainerType.File, settings, new[] { midiEvents }, expectedNotes); } break; } }
private void GetChords_EventsCollection( ContainerType containerType, ICollection <MidiEvent> midiEvents, ICollection <Chord> expectedChords) { switch (containerType) { case ContainerType.EventsCollection: { var eventsCollection = new EventsCollection(); eventsCollection.AddRange(midiEvents); var chords = eventsCollection.GetChords(); MidiAsserts.AreEqual(expectedChords, chords, "Chords are invalid."); var timedObjects = eventsCollection.GetObjects(ObjectType.Chord); MidiAsserts.AreEqual(expectedChords, timedObjects, "Chords are invalid from GetObjects."); } break; case ContainerType.TrackChunk: { var trackChunk = new TrackChunk(midiEvents); var chords = trackChunk.GetChords(); MidiAsserts.AreEqual(expectedChords, chords, "Chords are invalid."); var timedObjects = trackChunk.GetObjects(ObjectType.Chord); MidiAsserts.AreEqual(expectedChords, timedObjects, "Chords are invalid from GetObjects."); } break; case ContainerType.TrackChunks: case ContainerType.File: { GetChords_TrackChunks( containerType == ContainerType.File, new[] { midiEvents }, expectedChords); } break; } }