diff --git a/rand_pcg/tests/lcg128xsl64.rs b/rand_pcg/tests/lcg128xsl64.rs index ac238b51..8038d426 100644 --- a/rand_pcg/tests/lcg128xsl64.rs +++ b/rand_pcg/tests/lcg128xsl64.rs @@ -1,6 +1,18 @@ use rand_core::{RngCore, SeedableRng}; use rand_pcg::{Lcg128Xsl64, Pcg64}; +#[test] +fn test_lcg128xsl64_advancing() { + let seed = Default::default(); + let mut rng1 = Lcg128Xsl64::from_seed(seed); + let mut rng2 = Lcg128Xsl64::from_seed(seed); + for _ in 0..20 { + rng1.next_u64(); + } + rng2.advance(20); + assert_eq!(rng1.next_u64(), rng2.next_u64()); +} + #[test] fn test_lcg128xsl64_construction() { // Test that various construction techniques produce a working RNG. diff --git a/rand_pcg/tests/lcg64xsh32.rs b/rand_pcg/tests/lcg64xsh32.rs index 24a06d32..17d87858 100644 --- a/rand_pcg/tests/lcg64xsh32.rs +++ b/rand_pcg/tests/lcg64xsh32.rs @@ -1,6 +1,18 @@ use rand_core::{RngCore, SeedableRng}; use rand_pcg::{Lcg64Xsh32, Pcg32}; +#[test] +fn test_lcg64xsh32_advancing() { + let seed = Default::default(); + let mut rng1 = Lcg64Xsh32::from_seed(seed); + let mut rng2 = Lcg64Xsh32::from_seed(seed); + for _ in 0..20 { + rng1.next_u64(); + } + rng2.advance(20); + assert_eq!(rng1.next_u64(), rng2.next_u64()); +} + #[test] fn test_lcg64xsh32_construction() { // Test that various construction techniques produce a working RNG. diff --git a/rand_pcg/tests/mcg128xsl64.rs b/rand_pcg/tests/mcg128xsl64.rs index 32f363f3..cf145503 100644 --- a/rand_pcg/tests/mcg128xsl64.rs +++ b/rand_pcg/tests/mcg128xsl64.rs @@ -1,6 +1,18 @@ use rand_core::{RngCore, SeedableRng}; use rand_pcg::{Mcg128Xsl64, Pcg64Mcg}; +#[test] +fn test_mcg128xsl64_advancing() { + let seed = Default::default(); + let mut rng1 = Mcg128Xsl64::from_seed(seed); + let mut rng2 = Mcg128Xsl64::from_seed(seed); + for _ in 0..20 { + rng1.next_u64(); + } + rng2.advance(20); + assert_eq!(rng1.next_u64(), rng2.next_u64()); +} + #[test] fn test_mcg128xsl64_construction() { // Test that various construction techniques produce a working RNG.