public void SetUp() { var(_, loadedStories) = InputsLoader.Load(new[] { "Samples/NoteAt0.s2ry", "Samples/HoldNoteFrom0To1000.s2ry", }); OutputStory = new S2VXStory(); Result = NotesMerger.Merge(loadedStories, OutputStory); }
private void Merge(IEnumerable <Note> inputNotes, IEnumerable <Note> expectedNotes, TempoMap tempoMap, VelocityMergingPolicy velocityMergingPolicy = VelocityMergingPolicy.First, VelocityMergingPolicy offVelocityMergingPolicy = VelocityMergingPolicy.Last, ITimeSpan tolerance = null) { var settings = new NotesMergingSettings { VelocityMergingPolicy = velocityMergingPolicy, OffVelocityMergingPolicy = offVelocityMergingPolicy, Tolerance = tolerance ?? new MidiTimeSpan() }; var actualNotes = new NotesMerger().Merge(inputNotes, tempoMap, settings); MidiAsserts.AreEqual( expectedNotes.OrderBy(n => n.Time), actualNotes.OrderBy(n => n.Time), "Merging detached notes failed."); // var trackChunk = inputNotes.ToTrackChunk(); trackChunk.MergeNotes(tempoMap, settings); MidiAsserts.AreEqual( expectedNotes.OrderBy(n => n.Time), trackChunk.GetNotes(), "Merging notes inside a track chunk failed."); // var midiFile = inputNotes.ToFile(); midiFile.MergeNotes(settings); MidiAsserts.AreEqual( expectedNotes.OrderBy(n => n.Time), midiFile.GetNotes(), "Merging notes inside a file failed."); }