예제 #1
0
        public void SeedShouldBeUniqueEvenIfGeneratedAtTheSameTimeByMultipleThreads()
        {
            const int threadCount   = 32;
            var       randomNumbers = new uint[threadCount][];

            Parallel.ForEach(Enumerable.Range(0, threadCount), i =>
            {
                var generator    = GetGenerator();
                randomNumbers[i] = generator.UnsignedIntegers().Take(128).ToArray();
            });

            // No sequence should be equal to other sequences.
            Assert.That(randomNumbers.All(rno => randomNumbers.Where(rni => rni != rno).All(rni => !rni.SequenceEqual(rno))), Is.True);
        }