Skip to content

Commit 035e05a

Browse files
authored
Advance rng state in permutation (dask#12031)
1 parent 9f2d904 commit 035e05a

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

dask/array/random.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -791,9 +791,6 @@ def _rng_from_bitgen(bitgen):
791791

792792

793793
def _shuffle(bit_generator, x, axis=0):
794-
state_data = bit_generator.state
795-
bit_generator = type(bit_generator)()
796-
bit_generator.state = state_data
797794
state = _rng_from_bitgen(bit_generator)
798795
return state.shuffle(x, axis=axis)
799796

dask/array/tests/test_random.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,14 @@ def test_permutation(generator_class):
403403
r2 = b.permutation(x)
404404
assert_eq(r1, r2)
405405

406+
# Ensure subsequent `permutation` calls return a different result
407+
# See https://github.com/dask/dask/issues/12029
408+
r3 = a.permutation(x)
409+
r4 = b.permutation(x)
410+
assert_eq(r3, r4)
411+
with pytest.raises(AssertionError):
412+
assert_eq(r1, r3)
413+
406414
x = generator_class().permutation(100)
407415
assert x.shape == (100,)
408416

0 commit comments

Comments
 (0)