Skip to content

Commit dace7fc

Browse files
authored
Add some tests for BlockRng, BlockRng64 and Xoshiro RNGs (#1639)
1 parent d08281e commit dace7fc

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

src/block.rs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -531,4 +531,33 @@ mod test {
531531
c[12..].copy_from_slice(&rng3.next_u32().to_le_bytes());
532532
assert_eq!(b, c);
533533
}
534+
535+
#[test]
536+
fn blockrng64_generate_and_set() {
537+
let mut rng = BlockRng64::<DummyRng64>::from_seed([1, 2, 3, 4, 5, 6, 7, 8]);
538+
assert_eq!(rng.index(), rng.results.as_ref().len());
539+
540+
rng.generate_and_set(5);
541+
assert_eq!(rng.index(), 5);
542+
}
543+
544+
#[test]
545+
#[should_panic(expected = "index < self.results.as_ref().len()")]
546+
fn blockrng64_generate_and_set_panic() {
547+
let mut rng = BlockRng64::<DummyRng64>::from_seed([1, 2, 3, 4, 5, 6, 7, 8]);
548+
rng.generate_and_set(rng.results.as_ref().len());
549+
}
550+
551+
#[test]
552+
fn blockrng_next_u64() {
553+
let mut rng = BlockRng::<DummyRng>::from_seed([1, 2, 3, 4]);
554+
let result_size = rng.results.as_ref().len();
555+
for _i in 0..result_size / 2 - 1 {
556+
rng.next_u64();
557+
}
558+
rng.next_u32();
559+
560+
let result = rng.next_u64();
561+
assert_eq!(rng.index(), 1);
562+
}
534563
}

0 commit comments

Comments
 (0)