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)