public void TestConstructInvalid() { Assert.Throws <ArgumentException>( () => _ = GetSampler(12, 7)); Assert.Throws <ArgumentNullException>( () => _ = new UniformIntSampler(null, 1, 2)); }
public void IntegrateCdf(int min, int max) { const int trials = 1000000; const double error = 0.0005; var sampler = new UniformIntSampler(new ReducedThreeFry4X64(1), min, max); for (var x = min; x <= max; ++x) { var expected = (double)(x - min + 1) / (max - min + 1); var success = 0; for (var i = 0; i < trials; ++i) { if (sampler.GetNext() <= x) { ++success; } } var actual = (double)success / trials; Assert.AreEqual(expected, actual, error); } }