Skip to content

Commit 08ac750

Browse files
committed
Clean up ISAAC tests
1 parent a6528a3 commit 08ac750

File tree

2 files changed

+71
-56
lines changed

2 files changed

+71
-56
lines changed

src/prng/isaac.rs

Lines changed: 33 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -335,55 +335,62 @@ impl fmt::Debug for IsaacRng {
335335
#[cfg(test)]
336336
mod test {
337337
use {Rng, SeedableRng, iter};
338-
use distributions::ascii_word_char;
339338
use super::IsaacRng;
340339

341340
#[test]
342-
fn test_rng_32_rand_seeded() {
343-
let s = iter(&mut ::test::rng()).map(|rng| rng.next_u32()).take(256).collect::<Vec<u32>>();
344-
let mut ra: IsaacRng = SeedableRng::from_seed(&s[..]);
345-
let mut rb: IsaacRng = SeedableRng::from_seed(&s[..]);
346-
assert!(::test::iter_eq(iter(&mut ra).map(|rng| ascii_word_char(rng)).take(100),
347-
iter(&mut rb).map(|rng| ascii_word_char(rng)).take(100)));
341+
fn test_isaac_from_seed() {
342+
let seed = iter(&mut ::test::rng())
343+
.map(|rng| rng.next_u32())
344+
.take(256)
345+
.collect::<Vec<u32>>();
346+
let mut rng1 = IsaacRng::from_seed(&seed[..]);
347+
let mut rng2 = IsaacRng::from_seed(&seed[..]);
348+
for _ in 0..100 {
349+
assert_eq!(rng1.next_u32(), rng2.next_u32());
350+
}
348351
}
349352

350353
#[test]
351-
fn test_rng_32_seeded() {
354+
fn test_isaac_from_seed_fixed() {
352355
let seed: &[_] = &[1, 23, 456, 7890, 12345];
353-
let mut ra: IsaacRng = SeedableRng::from_seed(seed);
354-
let mut rb: IsaacRng = SeedableRng::from_seed(seed);
355-
assert!(::test::iter_eq(iter(&mut ra).map(|rng| ascii_word_char(rng)).take(100),
356-
iter(&mut rb).map(|rng| ascii_word_char(rng)).take(100)));
356+
let mut rng1 = IsaacRng::from_seed(&seed[..]);
357+
let mut rng2 = IsaacRng::from_seed(&seed[..]);
358+
for _ in 0..100 {
359+
assert_eq!(rng1.next_u32(), rng2.next_u32());
360+
}
357361
}
358362

359363
#[test]
360-
fn test_rng_32_true_values() {
364+
fn test_isaac_true_values() {
361365
let seed: &[_] = &[1, 23, 456, 7890, 12345];
362-
let mut ra: IsaacRng = SeedableRng::from_seed(seed);
366+
let mut rng1 = IsaacRng::from_seed(seed);
363367
// Regression test that isaac is actually using the above vector
364-
let v = (0..10).map(|_| ra.next_u32()).collect::<Vec<_>>();
368+
let v = (0..10).map(|_| rng1.next_u32()).collect::<Vec<_>>();
365369
assert_eq!(v,
366-
vec!(2558573138, 873787463, 263499565, 2103644246, 3595684709,
367-
4203127393, 264982119, 2765226902, 2737944514, 3900253796));
370+
vec!(2558573138, 873787463, 263499565, 2103644246,
371+
3595684709, 4203127393, 264982119, 2765226902,
372+
2737944514, 3900253796));
368373

369374
let seed: &[_] = &[12345, 67890, 54321, 9876];
370-
let mut rb: IsaacRng = SeedableRng::from_seed(seed);
375+
let mut rng2 = IsaacRng::from_seed(seed);
371376
// skip forward to the 10000th number
372-
for _ in 0..10000 { rb.next_u32(); }
377+
for _ in 0..10000 { rng2.next_u32(); }
373378

374-
let v = (0..10).map(|_| rb.next_u32()).collect::<Vec<_>>();
379+
let v = (0..10).map(|_| rng2.next_u32()).collect::<Vec<_>>();
375380
assert_eq!(v,
376-
vec!(3676831399, 3183332890, 2834741178, 3854698763, 2717568474,
377-
1576568959, 3507990155, 179069555, 141456972, 2478885421));
381+
vec!(3676831399, 3183332890, 2834741178, 3854698763,
382+
2717568474, 1576568959, 3507990155, 179069555,
383+
141456972, 2478885421));
384+
}
378385
}
379386

380387
#[test]
381-
fn test_rng_clone() {
388+
fn test_isaac_clone() {
382389
let seed: &[_] = &[1, 23, 456, 7890, 12345];
383-
let mut rng: IsaacRng = SeedableRng::from_seed(seed);
384-
let mut clone = rng.clone();
390+
let mut rng1 = IsaacRng::from_seed(seed);
391+
let mut rng2 = rng1.clone();
385392
for _ in 0..16 {
386-
assert_eq!(rng.next_u32(), clone.next_u32());
393+
assert_eq!(rng1.next_u32(), rng2.next_u32());
387394
}
388395
}
389396
}

src/prng/isaac64.rs

Lines changed: 38 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -321,59 +321,67 @@ impl fmt::Debug for Isaac64Rng {
321321
#[cfg(test)]
322322
mod test {
323323
use {Rng, SeedableRng, iter};
324-
use distributions::ascii_word_char;
325324
use super::Isaac64Rng;
326325

327326
#[test]
328-
fn test_rng_64_rand_seeded() {
329-
let s = iter(&mut ::test::rng()).map(|rng| rng.next_u64()).take(256).collect::<Vec<u64>>();
330-
let mut ra: Isaac64Rng = SeedableRng::from_seed(&s[..]);
331-
let mut rb: Isaac64Rng = SeedableRng::from_seed(&s[..]);
332-
assert!(::test::iter_eq(iter(&mut ra).map(|rng| ascii_word_char(rng)).take(100),
333-
iter(&mut rb).map(|rng| ascii_word_char(rng)).take(100)));
327+
fn test_isaac64_from_seed() {
328+
let seed = iter(&mut ::test::rng())
329+
.map(|rng| rng.next_u64())
330+
.take(256)
331+
.collect::<Vec<u64>>();
332+
let mut rng1 = Isaac64Rng::from_seed(&seed[..]);
333+
let mut rng2 = Isaac64Rng::from_seed(&seed[..]);
334+
for _ in 0..100 {
335+
assert_eq!(rng1.next_u64(), rng2.next_u64());
336+
}
334337
}
335338

336339
#[test]
337-
fn test_rng_64_seeded() {
340+
fn test_isaac64_from_seed_fixed() {
338341
let seed: &[_] = &[1, 23, 456, 7890, 12345];
339-
let mut ra: Isaac64Rng = SeedableRng::from_seed(seed);
340-
let mut rb: Isaac64Rng = SeedableRng::from_seed(seed);
341-
assert!(::test::iter_eq(iter(&mut ra).map(|rng| ascii_word_char(rng)).take(100),
342-
iter(&mut rb).map(|rng| ascii_word_char(rng)).take(100)));
342+
let mut rng1 = Isaac64Rng::from_seed(&seed[..]);
343+
let mut rng2 = Isaac64Rng::from_seed(&seed[..]);
344+
for _ in 0..100 {
345+
assert_eq!(rng1.next_u64(), rng2.next_u64());
346+
}
347+
}
343348
}
344349

345350
#[test]
346-
fn test_rng_64_true_values() {
351+
fn test_isaac64_true_values() {
347352
let seed: &[_] = &[1, 23, 456, 7890, 12345];
348-
let mut ra: Isaac64Rng = SeedableRng::from_seed(seed);
353+
let mut rng1 = Isaac64Rng::from_seed(seed);
349354
// Regression test that isaac is actually using the above vector
350-
let v = (0..10).map(|_| ra.next_u64()).collect::<Vec<_>>();
355+
let v = (0..10).map(|_| rng1.next_u64()).collect::<Vec<_>>();
351356
assert_eq!(v,
352-
vec!(547121783600835980, 14377643087320773276, 17351601304698403469,
353-
1238879483818134882, 11952566807690396487, 13970131091560099343,
354-
4469761996653280935, 15552757044682284409, 6860251611068737823,
355-
13722198873481261842));
357+
vec!(547121783600835980, 14377643087320773276,
358+
17351601304698403469, 1238879483818134882,
359+
11952566807690396487, 13970131091560099343,
360+
4469761996653280935, 15552757044682284409,
361+
6860251611068737823, 13722198873481261842));
356362

357363
let seed: &[_] = &[12345, 67890, 54321, 9876];
358-
let mut rb: Isaac64Rng = SeedableRng::from_seed(seed);
364+
let mut rng2 = Isaac64Rng::from_seed(seed);
359365
// skip forward to the 10000th number
360-
for _ in 0..10000 { rb.next_u64(); }
366+
for _ in 0..10000 { rng2.next_u64(); }
361367

362-
let v = (0..10).map(|_| rb.next_u64()).collect::<Vec<_>>();
368+
let v = (0..10).map(|_| rng2.next_u64()).collect::<Vec<_>>();
363369
assert_eq!(v,
364-
vec!(18143823860592706164, 8491801882678285927, 2699425367717515619,
365-
17196852593171130876, 2606123525235546165, 15790932315217671084,
366-
596345674630742204, 9947027391921273664, 11788097613744130851,
367-
10391409374914919106));
370+
vec!(18143823860592706164, 8491801882678285927,
371+
2699425367717515619, 17196852593171130876,
372+
2606123525235546165, 15790932315217671084,
373+
596345674630742204, 9947027391921273664,
374+
11788097613744130851, 10391409374914919106));
375+
}
368376
}
369377

370378
#[test]
371-
fn test_rng_clone() {
379+
fn test_isaac64_clone() {
372380
let seed: &[_] = &[1, 23, 456, 7890, 12345];
373-
let mut rng: Isaac64Rng = SeedableRng::from_seed(seed);
374-
let mut clone = rng.clone();
381+
let mut rng1 = Isaac64Rng::from_seed(seed);
382+
let mut rng2 = rng1.clone();
375383
for _ in 0..16 {
376-
assert_eq!(rng.next_u64(), clone.next_u64());
384+
assert_eq!(rng1.next_u64(), rng2.next_u64());
377385
}
378386
}
379387
}

0 commit comments

Comments
 (0)