コード例 #1
0
    def test_uniform_double(self):
        rs = RandomGenerator(self.brng(*self.data1['seed']))
        assert_array_equal(uniform_from_dsfmt(self.data1['data']),
                           rs.random_sample(1000))

        rs = RandomGenerator(self.brng(*self.data2['seed']))
        assert_equal(uniform_from_dsfmt(self.data2['data']),
                     rs.random_sample(1000))
コード例 #2
0
 def test_reset_state_float(self):
     rg = RandomGenerator(self.brng(*self.seed))
     rg.random_sample(dtype='float32')
     state = rg.brng.state
     n1 = rg.random_sample(size=10, dtype='float32')
     rg2 = RandomGenerator(self.brng())
     rg2.brng.state = state
     n2 = rg2.random_sample(size=10, dtype='float32')
     assert_((n1 == n2).all())
コード例 #3
0
 def test_seed(self):
     rg = RandomGenerator(self.brng(*self.seed))
     rg2 = RandomGenerator(self.brng(*self.seed))
     rg.random_sample()
     rg2.random_sample()
     if not comp_state(rg.state, rg2.state):
         for key in rg.state:
             print(key)
             print(rg.state[key])
             print(rg2.state[key])
     assert_(comp_state(rg.state, rg2.state))
コード例 #4
0
 def test_uniform_float(self):
     rg = RandomGenerator(self.brng(12345))
     warmup(rg)
     state = rg.state
     r1 = rg.random_sample(11, dtype=np.float32)
     rg2 = RandomGenerator(self.brng())
     warmup(rg2)
     rg2.state = state
     r2 = rg2.random_sample(11, dtype=np.float32)
     assert_array_equal(r1, r2)
     assert_equal(r1.dtype, np.float32)
     assert_(comp_state(rg.state, rg2.state))
コード例 #5
0
    def test_uniform_float(self):
        rs = RandomGenerator(self.brng(*self.data1['seed']))
        vals = uniform32_from_uint(self.data1['data'], self.bits)
        uniforms = rs.random_sample(len(vals), dtype=np.float32)
        assert_allclose(uniforms, vals)
        assert_equal(uniforms.dtype, np.float32)

        rs = RandomGenerator(self.brng(*self.data2['seed']))
        vals = uniform32_from_uint(self.data2['data'], self.bits)
        uniforms = rs.random_sample(len(vals), dtype=np.float32)
        assert_allclose(uniforms, vals)
        assert_equal(uniforms.dtype, np.float32)
コード例 #6
0
class MyPCG64:
    def __init__(self, seed=0):
        self.rng = RandomGenerator(PCG64(seed))
        #self.rng.seed(seed)

    def GenerateRandomU01(self, N=1000):
        res = []
        for i in range(N):
            res.append(self.rng.random_sample())
        return res

    def Generate01Sequence(self, N=1000):
        res = self.GenerateRandomU01(N=N)
        return [0 if e < 0.5 else 1 for e in res]
コード例 #7
0
def generate_image(size, prng):
    allowed_prngs = [
        "java",
        "python",
        "numpy",
        "Xoroshiro128",
        "MT19937",
        "Philox",
        "SFC64",
        "Xorshift1024",
        "ThreeFry",
    ]
    if prng not in allowed_prngs:
        raise ValueError(f"prng={prng} is not in {allowed_prngs}")
    arr = np.zeros((size, size))
    for i in range(size):
        if prng == "python":
            random.seed(i)
        elif prng == "numpy":
            np.random.seed(i)
        elif prng == "java":
            rnd = javarandom.Random(i)
        elif prng == "Xoroshiro128":
            rnd = RandomGenerator(Xoroshiro128())
        elif prng == "Xorshift1024":
            rnd = RandomGenerator(Xorshift1024())
        elif prng == "ThreeFry":
            rnd = RandomGenerator(ThreeFry())
        elif prng == "MT19937":
            rnd = Generator(MT19937())
        elif prng == "Philox":
            rnd = Generator(Philox())
        elif prng == "SFC64":
            rnd = Generator(SFC64())

        for j in range(size):
            if prng == "python":
                random_number = random.random()
            elif prng == "numpy":
                random_number = np.random.random()
            elif prng == "java":
                random_number = rnd.nextDouble()
            elif prng in ["Xoroshiro128", "Xorshift1024", "ThreeFry"]:
                random_number = rnd.random_sample()
            elif prng in ["MT19937", "Philox", "SFC64"]:
                random_number = rnd.random()
            arr[j, i] = random_number
        print("{}\t{}\t{}".format(i, arr[0, i], arr[1, i]))
    imageio.imwrite(f"1000-random-numbers-{prng}.png", arr)
コード例 #8
0
 def test_seed(self):
     rg = RandomGenerator(self.brng(*self.seed))
     rg2 = RandomGenerator(self.brng(*self.seed))
     rg.random_sample()
     rg2.random_sample()
     assert_(comp_state(rg.brng.state, rg2.brng.state))
コード例 #9
0
ファイル: test_direct.py プロジェクト: jyzhang-bjtu/randomgen
 def test_buffer_reset(self):
     rs = RandomGenerator(self.brng(*self.data1['seed']))
     rs.random_sample(1)
     assert rs.brng.state['buffer_loc'] != 382
     rs.brng.seed(*self.data1['seed'])
     assert rs.brng.state['buffer_loc'] == 382