public void TestNanParameter() { var engine = MersenneTwister32Bit19937.InitGenRand(1); TestInvalidThrows <ArgumentException>(engine, double.NaN, 1d); TestInvalidThrows <ArgumentException>(engine, 1d, double.NaN); }
private static uint[] GetRandomValues(MersenneTwister32Bit19937 generator, int size) { var actual = new uint[size]; for (var i = 0; i < actual.Length; ++i) { actual[i] = generator.NextUInt(); } return(actual); }
public void InitGenRandTest(uint seed) { // the number of random numbers to test // This is chosen so that the state is cycled twice. const int size = 1400; var generator = MersenneTwister32Bit19937.InitGenRand(seed); Assert.AreEqual( OriginalInitGenRand(seed, size), GetRandomValues(generator, size)); }
public void InitByArrayTest(int seedSize) { // the number of random numbers to test // This is chosen so that the state is cycled twice. const int size = 1400; var seeds = OriginalInitGenRand(1, seedSize); var generator = MersenneTwister32Bit19937.InitByArray(seeds); var actual = GetRandomValues(generator, size); var expected = OriginalInitByArray(seeds, size); Assert.AreEqual(expected, actual); }
public void TestConstructValid() { var covarianceMatrix = new[, ] { { 1.0, 0.5 }, { 0.5, 1.0 }, }; var mean = new[] { 0.0, 0.0 }; var engine = MersenneTwister32Bit19937.InitGenRand(1); Assert.DoesNotThrow(() => _ = new MultivariateNormalSampler.Builder(mean, covarianceMatrix).Build(engine)); }
public void TestLength() { var mean = new[] { 0d, 0d }; var sigma = new[, ] { { 1d, 0.5 }, { 0.5, 1d }, }; var engine = MersenneTwister32Bit19937.InitGenRand(1); var sampler = new MultivariateNormalSampler.Builder(mean, sigma).Build(engine); Assert.AreEqual(2, sampler.Length); }
public void InitByArrayNull() { Assert.Throws <ArgumentNullException>( () => MersenneTwister32Bit19937.InitByArray(null)); }