def testId(self): # valid calls DcmtRandom(id=20, gen_seed=1) DcmtRandom.range(1, 4, gen_seed=1) DcmtRandomState(id=3000, gen_seed=1) DcmtRandomState.range(100, 103, gen_seed=1) mt_range(4, gen_seed=1) # check that range functions behave like Python range() for func in (DcmtRandom.range, DcmtRandomState.range, mt_range): for args in ((), (1, 2, 3)): self.assertRaises(TypeError, func, *args) self.assertEqual(func(3, 1), []) # error: id < 0 self.assertRaises(DcmtParameterError, DcmtRandom, id=-1, gen_seed=1) self.assertRaises(DcmtParameterError, DcmtRandom.range, -1, 3, gen_seed=1) self.assertRaises(DcmtParameterError, DcmtRandomState, id=-1, gen_seed=1) self.assertRaises(DcmtParameterError, DcmtRandomState.range, -1, 2, gen_seed=1) self.assertRaises(DcmtParameterError, mt_range, -1, 3, gen_seed=1) # error: id > 65535 self.assertRaises(DcmtParameterError, DcmtRandom, id=65536, gen_seed=1) self.assertRaises(DcmtParameterError, DcmtRandom.range, 65535, 65537, gen_seed=1) self.assertRaises(DcmtParameterError, DcmtRandomState, id=65536, gen_seed=1) self.assertRaises(DcmtParameterError, DcmtRandomState.range, 65535, 65537, gen_seed=1) self.assertRaises(DcmtParameterError, mt_range, 65534, 65539, gen_seed=1) self.assertRaises(DcmtParameterError, mt_range, 65536, 65539, gen_seed=1)
def testSingleRandom(self): shape = (9, 10, 11) rng = DcmtRandomState(gen_seed=900) rng.seed(400) r = rng.rand() self.assert_(type(r) == float)
def testRand(self): shape = (9, 10, 11) rng = DcmtRandomState(gen_seed=900) rng.seed(400) randoms = rng.rand(*shape) self.assert_(randoms.shape == shape) diff_mean, diff_var = testLimits(randoms, 0, 1) self.assert_(diff_mean < 0.05) self.assert_(diff_var < 0.05)
def testRandrawFill(self): shape = (9, 10, 11) rng = DcmtRandomState(gen_seed=900) rng.seed(400) wrong_val = "aaa" wrong_arr = numpy.empty(shape, numpy.int64) self.assertRaises(TypeError, rng.rand_fill, wrong_val) self.assertRaises(TypeError, rng.rand_fill, wrong_arr) for dtype in (numpy.int32, numpy.uint32, numpy.float32): randoms = numpy.empty(shape, dtype) rng.randraw_fill(randoms)
def testRandFill(self): shape = (9, 10, 11) rng = DcmtRandomState(gen_seed=900) rng.seed(400) wrong_val = "aaa" wrong_arr = numpy.empty(shape, numpy.float32) self.assertRaises(TypeError, rng.rand_fill, wrong_val) self.assertRaises(TypeError, rng.rand_fill, wrong_arr) randoms = numpy.empty(shape, numpy.float64) rng.rand_fill(randoms) diff_mean, diff_var = testLimits(randoms, 0, 1) self.assert_(diff_mean < 0.05) self.assert_(diff_var < 0.05)
def testMtRange(self): start = 0 stop = 3 seed = 100 init_seeds = [4, 5, 6] N = 10 mt_common, mt_unique = mt_range(start, stop, gen_seed=seed) rngs0 = DcmtRandomState.from_mt_range(mt_common, mt_unique) rngs1 = DcmtRandomState.range(start, stop, gen_seed=seed) for rng0, rng1, seed in zip(rngs0, rngs1, init_seeds): rng0.seed(seed) rng1.seed(seed) for rng0, rng1 in zip(rngs0, rngs1): randoms0 = getRandomArray(rng0, N) randoms1 = getRandomArray(rng1, N) self.assert_((randoms0 == randoms1).all())
def testDefaultSeed(self): """Check that RNG is useable even if seed was not set explicitly""" ids = (1, ) tests = ((DcmtRandom, (), lambda x: x), (DcmtRandom.range, ids, lambda x: x[0]), (DcmtRandomState, (), lambda x: x), (DcmtRandomState.range, ids, lambda x: x[0]), (mt_range, ids, lambda x: DcmtRandomState.from_mt_range(*x)[0])) for func, args, get_rng in tests: rng = get_rng(func(*args, gen_seed=1)) getRandomArray(rng, 10)
def testDefaultSeed(self): """Check that RNG is useable even if seed was not set explicitly""" ids = (1,) tests = ( (DcmtRandom, (), lambda x: x), (DcmtRandom.range, ids, lambda x: x[0]), (DcmtRandomState, (), lambda x: x), (DcmtRandomState.range, ids, lambda x: x[0]), (mt_range, ids, lambda x: DcmtRandomState.from_mt_range(*x)[0]) ) for func, args, get_rng in tests: rng = get_rng(func(*args, gen_seed=1)) getRandomArray(rng, 10)