コード例 #1
0
    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)
コード例 #2
0
    def testSingleRandom(self):
        shape = (9, 10, 11)
        rng = DcmtRandomState(gen_seed=900)
        rng.seed(400)

        r = rng.rand()
        self.assert_(type(r) == float)
コード例 #3
0
    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)
コード例 #4
0
    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)
コード例 #5
0
    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)