sorter 0.4.0

Simple rust implementation of all existing sorts
Documentation
extern crate sorter;
extern crate rand;
use sorter::*;
use rand::{Rng, thread_rng};

fn check_order<T: Ord>(array: &mut [T]) -> bool {
    for i in 1..array.len() { if array[i-1] > array[i] { return false; } }
    true
}

fn make_test_vec() -> Vec<Vec<i32>> {
    let mut make_test_vec = vec![10, 5, 1, 2, 4];
    let mut main_vec = vec![make_test_vec];

    make_test_vec = vec![1, 2, 3, 4, 5, 6, 7];
    main_vec.push(make_test_vec);
    make_test_vec = vec![1, 2, 3, 4, 5, 6];
    main_vec.push(make_test_vec);
    make_test_vec = vec![7, 6, 5, 4, 3, 2, 1];
    main_vec.push(make_test_vec);
    make_test_vec = vec![5, 10, 1, 3, 5, 2, 3];
    main_vec.push(make_test_vec);
    make_test_vec = thread_rng().gen_iter::<i32>().take(1000).collect::<Vec<i32>>();
    main_vec.push(make_test_vec);
    make_test_vec = thread_rng().gen_iter::<i32>().take(555).collect::<Vec<i32>>();
    main_vec.push(make_test_vec);

    main_vec
}

#[test]
fn verify_insertion_sort() {
    let mut main_vec = make_test_vec();

    println!("Usual:");
    for array in main_vec.iter_mut() {
        insertion_sort(array);
        if !check_order(array) {
            println!("Incorrectly ordered array: {:?}", array);
            assert!(false);
        }
    }

    main_vec = make_test_vec();
    println!("Binary:");
    for array in main_vec.iter_mut() {
        println!("{:?}", array);
        binary_insertion_sort(array);
        if !check_order(array) {
            println!("Incorrectly ordered array: {:?}", array);
            assert!(false);
        }
    }
}

#[test]
fn verify_quick_sort() {
    let mut main_vec = make_test_vec();

    for array in main_vec.iter_mut() {
        quick_sort(array);
        if !check_order(array) {
            println!("Incorrectly ordered array: {:?}", array);
            assert!(false);
        }
    }
}

#[test]
fn verify_heap_sort() {
    let mut main_vec = make_test_vec();

    for array in main_vec.iter_mut() {
        heap_sort(array);
        if !check_order(array) {
            println!("Incorrectly ordered array: {:?}", array);
            assert!(false);
        }
    }
}

#[test]
fn verify_shaker_sort() {
    let mut main_vec = make_test_vec();

    for array in main_vec.iter_mut() {
        shaker_sort(array);
        if !check_order(array) {
            println!("Incorrectly ordered array: {:?}", array);
            assert!(false);
        }
    }
}

#[test]
fn verify_shell_sort() {
    let mut main_vec = make_test_vec();

    for array in main_vec.iter_mut() {
        shell_sort(array);
        if !check_order(array) {
            println!("Incorrectly ordered array: {:?}", array);
            assert!(false);
        }
    }
}

#[test]
fn verify_bubble_sort() {
    let mut main_vec = make_test_vec();

    for array in main_vec.iter_mut() {
        bubble_sort(array);
        if !check_order(array) {
            println!("Incorrectly ordered array: {:?}", array);
            assert!(false);
        }
    }
}