public void CanPassTwoProviders()
        {
            // arrange
            var expectedLength = 100;
            var input1         = new TestSampleProvider(44100, 2, 50);
            var input2         = new TestSampleProvider(44100, 2, 50);
            var concatenator   = new ConcatenatingSampleProvider(new[] { input1, input2 });
            var buffer         = new float[2000];

            var read = concatenator.Read(buffer, 0, buffer.Length);

            Assert.AreEqual(expectedLength, read, "read == expectedLength");
            Assert.AreEqual(49, buffer[49]);
            Assert.AreEqual(0, buffer[50]);
            Assert.AreEqual(49, buffer[99]);
        }
        public void CanPassASingleProvider()
        {
            // arrange
            const int expectedLength = 5000;
            var       input          = new TestSampleProvider(44100, 2, expectedLength);
            var       concatenator   = new ConcatenatingSampleProvider(new[] { input });
            var       buffer         = new float[2000];
            var       totalRead      = 0;

            // act
            while (true)
            {
                var read = concatenator.Read(buffer, 0, buffer.Length);
                if (read == 0)
                {
                    break;
                }
                totalRead += read;
                Assert.That(totalRead <= expectedLength);
            }
            Assert.That(totalRead == expectedLength);
        }