predictive_shuffle 0.1.0

A vector shuffling library that allows for in-place shuffling, or predictive sub-item shuffling.
Documentation
#[cfg(test)]

mod tests {
    use predictive_shuffle::Shuffle;
    use std::collections::HashSet;

    #[test]
    fn predictive_test() {
        let mut vec: Vec<usize> = (0..100).collect();
        let seed = b"seed phrase".to_vec();
        let positions: Vec<usize> = (0..100).collect();
        let shuffled_items = vec.predictive_shuffle_from_seed(positions, seed);

        let mut shuffled = HashSet::new();
        for (_, value) in shuffled_items {
            assert!(!shuffled.contains(&value));
            shuffled.insert(value);
        }
    }

    #[test]
    fn crypto_predictive_test() {
        let mut vec: Vec<usize> = (0..100).collect();
        let seed = b"seed phrase".to_vec();
        let positions: Vec<usize> = vec![1, 5];
        let shuffled_items = vec.crypto_predictive_shuffle_from_seed(positions, seed);
        println!("{:?}", shuffled_items);
    }

    #[test]
    fn batch_predictive_test() {
        let mut vec: Vec<usize> = (0..100).collect();
        let seed = b"seed phrase".to_vec();
        let positions: Vec<usize> = vec![1, 5];
        let batch = 4;
        let shuffled_items = vec.batch_predictive_shuffle_from_seed(batch, positions, seed);
        println!("{:?}", shuffled_items);
    }

    #[test]
    fn crypto_batch_predictive_test() {
        let mut vec: Vec<usize> = (0..100).collect();
        let seed = b"seed phrase".to_vec();
        let positions: Vec<usize> = vec![1, 5];
        let batch = 4;
        let shuffled_items = vec.crypto_batch_predictive_shuffle_from_seed(batch, positions, seed);
        println!("{:?}", shuffled_items);
    }
}