toodee/
tests_sort.rs

1#[cfg(test)]
2mod toodee_tests_sort {
3    
4    use crate::*;
5    use rand::Rng;
6    use rand::distributions::Uniform;
7    
8    #[test]
9    fn sort_by_row() {
10        let rng = rand::thread_rng();
11        let samples = rng.sample_iter(Uniform::new(0,100));
12        let mut toodee = TooDee::from_vec(10, 10, samples.take(100).collect());
13        println!("{:?}",&toodee[3]);
14        toodee.sort_by_row(3, |a, b| a.cmp(b));
15        let r = &toodee[3];
16        println!("{:?}",r);
17        for i in 0..9 {
18            assert!(r[i] <= r[i+1]);
19        }
20    }
21        
22    #[test]
23    fn sort_by_col() {
24        let rng = rand::thread_rng();
25        let samples = rng.sample_iter(Uniform::new(0,100));
26        let mut toodee = TooDee::from_vec(10, 10, samples.take(100).collect());
27        println!("{:?}", toodee.col(3).copied().collect::<Vec<u32>>());
28        toodee.sort_by_col(3, |a, b| a.cmp(b));
29        let c : Vec<u32> = toodee.col(3).copied().collect();
30        println!("{:?}",c);
31        for i in 0..9 {
32            assert!(c[i] <= c[i+1]);
33        }
34    }
35    
36    #[test]
37    fn sort_by_row_view() {
38        let rng = rand::thread_rng();
39        let samples = rng.sample_iter(Uniform::new(0,100));
40        let mut toodee = TooDee::from_vec(10, 10, samples.take(100).collect());
41        println!("{:?}",&toodee[3]);
42        toodee.view_mut((0, 0), (10, 10)).sort_by_row(3, |a, b| a.cmp(b));
43        let r = &toodee[3];
44        println!("{:?}",r);
45        for i in 0..9 {
46            assert!(r[i] <= r[i+1]);
47        }
48    }
49
50    #[test]
51    fn sort_by_col_view() {
52        let rng = rand::thread_rng();
53        let samples = rng.sample_iter(Uniform::new(0,100));
54        let mut toodee = TooDee::from_vec(10, 10, samples.take(100).collect());
55        println!("{:?}", toodee.col(3).copied().collect::<Vec<u32>>());
56        toodee.view_mut((0, 0), (10, 10)).sort_by_col(3, |a, b| a.cmp(b));
57        let c : Vec<u32> = toodee.col(3).copied().collect();
58        println!("{:?}",c);
59        for i in 0..9 {
60            assert!(c[i] <= c[i+1]);
61        }
62    }
63
64    
65}