public void OverflowTest() { ChannelAllocator allocator = new ChannelAllocator(); List <SingleBeat> test = new List <SingleBeat>( Enumerable.Range(0, 20).Select(i => new SingleBeat(InstrumentType.AccousticGrandPiano + i, 64, 64, i * 0.1, (i * 0.1) + 3))); Assert.Throws <OutOfChannelsException>(() => allocator.Add(test)); }
public void ChannelRotation() { ChannelAllocator allocator = new ChannelAllocator(); List <SingleBeat> test = new List <SingleBeat>( Enumerable.Range(0, 20).Select(i => new SingleBeat(InstrumentType.AccousticGrandPiano + i, 64, 64, i * 2, (i * 2) + 1))); Assert.DoesNotThrow(() => allocator.Add(test)); }
public void ChannelRotationReuse() { ChannelAllocator allocator = new ChannelAllocator(); List <SingleBeat> test = new List <SingleBeat>( Enumerable.Range(0, 20).Select(i => new SingleBeat(InstrumentType.AccousticGrandPiano + i, 64, 64, i * 2, (i * 2) + 1))); List <SingleBeat> test2 = new List <SingleBeat>( Enumerable.Range(0, 20).Select(i => new SingleBeat(InstrumentType.AccousticGrandPiano + i, 64, 64, (i * 2) + 45, (i * 2) + 46))); Assert.DoesNotThrow(() => allocator.Add(test)); Assert.DoesNotThrow(() => allocator.Add(test2)); List <SimpleMidiMessage> list = new List <SimpleMidiMessage>(new AsEnumerable(allocator)); CollectionAssert.IsOrdered(list, new Comp()); }
public void SauritateTest() { ChannelAllocator allocator = new ChannelAllocator(); List <SingleBeat> test = new List <SingleBeat>( Enumerable.Range(0, 99).Select(i => new SingleBeat(InstrumentType.AccousticGrandPiano + (i % 15), 64, 64, i * 0.1, (i * 0.1) + 1.5))); Assert.DoesNotThrow(() => allocator.Add(test)); List <SimpleMidiMessage> list = new List <SimpleMidiMessage>(new AsEnumerable(allocator)); CollectionAssert.IsOrdered(list, new Comp()); }