public async Task TestStoppingProducers01()
        {
            var rng2 = new MultiThreadedRng();

            rng2.Dispose();

            var masterToken = new CancellationTokenSource(TimeSpan.FromSeconds(16)).Token;
            var wasCanceled = false;

            while (true)
            {
                var tokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(3));
                await rng2.GetUniform(tokenSource.Token);

                if (tokenSource.IsCancellationRequested)
                {
                    wasCanceled = true;
                    break;
                }

                if (masterToken.IsCancellationRequested)
                {
                    break;
                }
            }

            Assert.That(masterToken.IsCancellationRequested, Is.False, "Master token was used to stop test");
            Assert.That(wasCanceled, Is.True, "The consumer was not canceled");

            var tokenSource2 = new CancellationTokenSource(TimeSpan.FromSeconds(3));

            await new NormalS02M05(rng2).NextNumber(tokenSource2.Token);
            Assert.That(tokenSource2.IsCancellationRequested, Is.True);

            tokenSource2 = new CancellationTokenSource(TimeSpan.FromSeconds(3));
            await new NormalS02M05(rng2).NextNumber(-1f, 1f, tokenSource2.Token);
            Assert.That(tokenSource2.IsCancellationRequested, Is.True);

            tokenSource2 = new CancellationTokenSource(TimeSpan.FromSeconds(3));
            await new NormalS02M05(rng2).NextNumber(0u, 6u, tokenSource2.Token);
            Assert.That(tokenSource2.IsCancellationRequested, Is.True);

            tokenSource2 = new CancellationTokenSource(TimeSpan.FromSeconds(3));
            await new NormalS02M05(rng2).NextNumber(0ul, 6ul, tokenSource2.Token);
            Assert.That(tokenSource2.IsCancellationRequested, Is.True);
        }