summaryrefslogtreecommitdiff
path: root/numpy/random/tests
diff options
context:
space:
mode:
authorKevin Sheppard <kevin.k.sheppard@gmail.com>2019-06-06 14:46:55 +0100
committerKevin Sheppard <kevin.k.sheppard@gmail.com>2019-06-06 16:59:32 +0100
commit5ccf87dd2da092c2e6936ed2fe6d680fcf88aa85 (patch)
tree591b6598b2c982a51937fed1dc538e8acd172f24 /numpy/random/tests
parent2d4975e75c210202293b894bf98faf12f4697a31 (diff)
downloadnumpy-5ccf87dd2da092c2e6936ed2fe6d680fcf88aa85.tar.gz
MAINT: Update PCG jump sizes
Update pcg jump sizes Wrap advance when too large
Diffstat (limited to 'numpy/random/tests')
-rw-r--r--numpy/random/tests/test_direct.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/numpy/random/tests/test_direct.py b/numpy/random/tests/test_direct.py
index 4ab521d1b..722d5e680 100644
--- a/numpy/random/tests/test_direct.py
+++ b/numpy/random/tests/test_direct.py
@@ -420,6 +420,20 @@ class TestPCG64(Base):
[2 ** (2 * self.bits + 1)])
assert_raises(self.seed_error_type, rs.bit_generator.seed, [-1])
+ def test_advance_symmetry(self):
+ rs = Generator(self.bit_generator(*self.data1['seed']))
+ state = rs.bit_generator.state
+ step = -0x9e3779b97f4a7c150000000000000000
+ rs.bit_generator.advance(step)
+ val_neg = rs.integers(10)
+ rs.bit_generator.state = state
+ rs.bit_generator.advance(2**128 + step)
+ val_pos = rs.integers(10)
+ rs.bit_generator.state = state
+ rs.bit_generator.advance(10 * 2**128 + step)
+ val_big = rs.integers(10)
+ assert val_neg == val_pos
+ assert val_big == val_pos
class TestPCG32(TestPCG64):
@classmethod