Пример #1
0
        public void CryptoRng()
        {
            var rngFactory = new StepRng.Factory(increment: 0);
            var rngSeeder  = RngSeeder.Create(rngFactory);
            var rng        = rngSeeder.Create();

            Assert.NotNull(rng);
            rngSeeder.Dispose();
        }
Пример #2
0
        public void NonNullable()
        {
            var seedSource = new StepRng(0);
            var rngFactory = new StepRng.Factory(increment: 0);

            Assert.Throws <ArgumentNullException>(() => RngSeeder.Create <StepRng, StepRng, UInt64>(rngFactory, null !));
            Assert.Throws <ArgumentNullException>(() => RngSeeder.Create <StepRng, StepRng, UInt64>(null !, seedSource));
            Assert.Throws <ArgumentNullException>(() => RngSeeder.Create <StepRng, StepRng, UInt64>(null !, null !));
            Assert.Throws <ArgumentNullException>(() => RngSeeder.Create <StepRng, StepRng>(null !));
        }
Пример #3
0
        public void SequentialSeedStaticRng()
        {
            var seedSource = new StepRng(0);
            var rngFactory = new StepRng.Factory(increment: 0);

            using var rngSeeder = RngSeeder.Create(rngFactory, seedSource);

            for (UInt64 i = 0; i < 10; i++)
            {
                var rng = rngSeeder.Create();
                Assert.Equal(i, rng.NextUInt64());
                Assert.Equal(i, rng.NextUInt64());
                Assert.Equal(i, rng.NextUInt64());
                Assert.Equal(i, rng.NextUInt64());
            }
        }