def test_dsarand(me):
seed = T.span(16)
n = C.MP.loadb(seed)
- rng = C.DSARand(seed)
+ rng = C.DSARand(seed, passes = 2)
me.check_rand(rng)
- if T.MAXFIXNUM == (1 << 31) - 1: steps = 153 + 3
- elif T.MAXFIXNUM == (1 << 63) - 1: steps = 153
+ if T.MAXFIXNUM == (1 << 31) - 1: steps = 2*153, 3*153 + 1
+ elif T.MAXFIXNUM == (1 << 63) - 1: steps = 2*153 + 8, 3*153 + 8
else: steps = None
- if steps is not None: me.assertEqual(rng.seed, (n + steps).storeb(16))
+ if steps is not None: me.assertEqual(rng.seed, (n + steps[0]).storeb(16))
+ me.assertEqual(rng.passes, 2);
+ rng.passes = 1
+ me.check_rand(rng)
+ if steps is not None: me.assertEqual(rng.seed, (n + steps[1]).storeb(16))
def test_bbs(me):
ev = T.EventRecorder()