fn test_deterministic_durstenfeld()

in src/shuffle.rs [77:97]


    fn test_deterministic_durstenfeld() {
        use rand::SeedableRng;
        use rand_chacha::ChaCha12Rng;

        let seed = [2u8; 32];
        let mut durstenfeld = Durstenfeld::default();

        // Test for full length.
        let mut input = vec![1, 2, 3, 4, 5];
        let mut rng = ChaCha12Rng::from_seed(seed);
        let length = input.len();
        durstenfeld.shuffle(&mut input, length, &mut rng).unwrap();
        assert_eq!(&input, &[5, 3, 4, 1, 2]);

        // Test for 2 elements only.
        let mut input = vec![1, 2, 3, 4, 5];
        let mut rng = ChaCha12Rng::from_seed(seed);
        let length = 2;
        durstenfeld.shuffle(&mut input, length, &mut rng).unwrap();
        assert_eq!(&input, &[5, 3, 2, 4, 1]);
    }