예제 #1
0
def test_smoke(python_pcg):
    bg = UserBitGenerator(python_pcg, 64)
    gen = Generator(bg)
    assert isinstance(gen.random(), float)
    assert isinstance(gen.standard_normal(dtype=np.float32), float)
    assert isinstance(gen.integers(0, 2**32, dtype=np.uint32), np.integer)
    assert isinstance(gen.integers(0, 2**64, dtype=np.uint64), np.integer)
예제 #2
0
def test_32():
    def next_raw(vp):
        return np.iinfo(np.uint32).max

    bg = UserBitGenerator(next_raw, 32)
    assert bg.random_raw() == np.iinfo(np.uint32).max
    gen = Generator(bg)
    assert gen.integers(0, 2**64, dtype=np.uint64) == np.iinfo(np.uint64).max
    np.testing.assert_allclose(gen.random(), (2**53 - 1) / (2**53), rtol=1e-14)
    assert "UserBitGenerator(Python)" in repr(bg)
예제 #3
0
def pcg_python(request):
    bit_gen = _PCG64(PCG64_INITIAL_STATE["state"]["state"],
                     PCG64_INITIAL_STATE["state"]["inc"])
    return UserBitGenerator(bit_gen.next_64(), 64, next_32=bit_gen.next_32())