Skip to content

Commit d62a1e7

Browse files
pitdickerdhardy
authored andcommitted
Add test for alternating between next_u64 and next_u32
[Cherry-picked from 5f4bedf]
1 parent 1184ef9 commit d62a1e7

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

src/prng/isaac64.rs

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -403,21 +403,39 @@ mod test {
403403
596345674630742204, 9947027391921273664, 11788097613744130851,
404404
10391409374914919106));
405405
}
406-
406+
407407
#[test]
408408
fn test_isaac64_true_values_32() {
409409
let seed: &[_] = &[1, 23, 456, 7890, 12345];
410410
let mut rng1 = Isaac64Rng::from_seed(seed);
411-
let v = (0..10).map(|_| rng1.next_u32()).collect::<Vec<_>>();
411+
let v = (0..12).map(|_| rng1.next_u32()).collect::<Vec<_>>();
412412
// Subset of above values, as an LE u32 sequence
413413
assert_eq!(v,
414414
[141028748, 127386717,
415415
1058730652, 3347555894,
416416
851491469, 4039984500,
417417
2692730210, 288449107,
418-
646103879, 2782923823]);
418+
646103879, 2782923823,
419+
4195642895, 3252674613]);
419420
}
420-
421+
422+
#[test]
423+
fn test_isaac64_true_values_mixed() {
424+
let seed: &[_] = &[1, 23, 456, 7890, 12345];
425+
let mut rng = Isaac64Rng::from_seed(seed);
426+
// Test alternating between `next_u64` and `next_u32` works as expected.
427+
// Values are the same as `test_isaac64_true_values` and
428+
// `test_isaac64_true_values_32`.
429+
assert_eq!(rng.next_u64(), 547121783600835980);
430+
assert_eq!(rng.next_u32(), 1058730652);
431+
assert_eq!(rng.next_u32(), 3347555894);
432+
assert_eq!(rng.next_u64(), 17351601304698403469);
433+
assert_eq!(rng.next_u32(), 2692730210);
434+
// Skip one u32
435+
assert_eq!(rng.next_u64(), 11952566807690396487);
436+
assert_eq!(rng.next_u32(), 4195642895);
437+
}
438+
421439
#[test]
422440
fn test_isaac64_true_bytes() {
423441
let seed: &[_] = &[1, 23, 456, 7890, 12345];
@@ -431,7 +449,7 @@ mod test {
431449
141, 186, 192, 50, 116, 69, 205, 240,
432450
98, 205, 127, 160, 83, 98, 49, 17]);
433451
}
434-
452+
435453
#[test]
436454
fn test_isaac_new_uninitialized() {
437455
// Compare the results from initializing `IsaacRng` with

0 commit comments

Comments
 (0)