Skip to content

Commit 73fde92

Browse files
committed
add unit test for seedable functions
1 parent 18cf332 commit 73fde92

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

src/lib.rs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -492,6 +492,8 @@ where
492492

493493
#[cfg(test)]
494494
mod test {
495+
use rand::SeedableRng;
496+
495497
use super::Chain;
496498

497499
#[test]
@@ -522,6 +524,27 @@ mod test {
522524
assert!([vec![3, 5, 10], vec![3, 5, 12], vec![5, 10], vec![5, 12]].contains(&v));
523525
}
524526

527+
#[test]
528+
fn generate_with_seed() {
529+
let mut chain = Chain::new();
530+
chain.feed(vec![3u8, 5, 10]).feed(vec![5, 12]);
531+
let v = chain.generate_with_seed(3);
532+
assert!(v == vec![3, 5, 10]);
533+
let v = chain.generate_with_seed(1);
534+
assert!(v == vec![5, 10]);
535+
}
536+
537+
#[test]
538+
fn generate_with_rng() {
539+
let mut rng = rand::rngs::StdRng::seed_from_u64(3);
540+
let mut chain = Chain::new();
541+
chain.feed(vec![3u8, 5, 10]).feed(vec![5, 12]);
542+
let v = chain.generate_with_rng(&mut rng);
543+
assert!(v == vec![3, 5, 10]);
544+
let v = chain.generate_with_rng(&mut rng);
545+
assert!(v == vec![3, 5, 12]);
546+
}
547+
525548
#[test]
526549
fn generate_for_higher_order() {
527550
let mut chain = Chain::of_order(2);
@@ -544,6 +567,27 @@ mod test {
544567
assert!([vec![5, 10], vec![5, 12]].contains(&v));
545568
}
546569

570+
#[test]
571+
fn generate_from_token_with_seed() {
572+
let mut chain = Chain::new();
573+
chain.feed(vec![3u8, 5, 10, 13]).feed(vec![5, 12, 10]);
574+
let v = chain.generate_from_token_with_seed(5, 3);
575+
assert!(v == vec![5, 10, 13]);
576+
let v = chain.generate_from_token_with_seed(5, 1);
577+
assert!(v == vec![5, 12, 10, 13]);
578+
}
579+
580+
#[test]
581+
fn generate_from_token_with_rng() {
582+
let mut rng = rand::rngs::StdRng::seed_from_u64(3);
583+
let mut chain = Chain::new();
584+
chain.feed(vec![3u8, 5, 10, 13]).feed(vec![5, 12, 10]);
585+
let v = chain.generate_from_token_with_rng(5, &mut rng);
586+
assert!(v == vec![5, 10, 13]);
587+
let v = chain.generate_from_token_with_rng(5, &mut rng);
588+
assert!(v == vec![5, 10]);
589+
}
590+
547591
#[test]
548592
fn generate_from_unfound_token() {
549593
let mut chain = Chain::new();

0 commit comments

Comments
 (0)