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)
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)
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())