|
1 | 1 | include!("header.rs");
|
2 | 2 |
|
3 |
| -macro_rules! test_permutate { |
4 |
| - ($testname:ident, $permutate:expr, $input:expr, $answer:expr) => { |
5 |
| -#[test] |
6 |
| -fn $testname() { |
7 |
| - let a = arr2($input); |
8 |
| - println!("a= \n{:?}", &a); |
9 |
| - let p = $permutate; // replace 1-2 |
10 |
| - let pa = a.permutated(&p); |
11 |
| - println!("permutated = \n{:?}", &pa); |
12 |
| - all_close_l2(&pa, &arr2($answer), 1e-7).unwrap(); |
13 |
| -} |
14 |
| -}} // end test_permutate |
15 |
| - |
16 |
| -macro_rules! test_permutate_t { |
17 |
| - ($testname:ident, $permutate:expr, $input:expr, $answer:expr) => { |
18 |
| -#[test] |
19 |
| -fn $testname() { |
20 |
| - let a = arr2($input).reversed_axes(); |
21 |
| - println!("a= \n{:?}", &a); |
22 |
| - let p = $permutate; // replace 1-2 |
23 |
| - let pa = a.permutated(&p); |
24 |
| - println!("permutated = \n{:?}", &pa); |
25 |
| - all_close_l2(&pa, &arr2($answer), 1e-7).unwrap(); |
26 |
| -} |
27 |
| -}} // end test_permutate_t |
28 |
| - |
29 |
| -test_permutate!(permutate, |
30 |
| - vec![2, 2, 3], |
31 |
| - &[[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]], |
32 |
| - &[[4., 5., 6.], [1., 2., 3.], [7., 8., 9.]]); |
33 |
| -test_permutate_t!(permutate_t, |
34 |
| - vec![2, 2, 3], |
35 |
| - &[[1., 4., 7.], [2., 5., 8.], [3., 6., 9.]], |
36 |
| - &[[4., 5., 6.], [1., 2., 3.], [7., 8., 9.]]); |
37 |
| -test_permutate!(permutate_3x4, |
38 |
| - vec![1, 3, 3], |
39 |
| - &[[1., 4., 7., 10.], [2., 5., 8., 11.], [3., 6., 9., 12.]], |
40 |
| - &[[1., 4., 7., 10.], [3., 6., 9., 12.], [2., 5., 8., 11.]]); |
41 |
| -test_permutate_t!(permutate_3x4_t, |
42 |
| - vec![1, 3, 3], |
43 |
| - &[[1., 5., 9.], [2., 6., 10.], [3., 7., 11.], [4., 8., 12.]], |
44 |
| - &[[1., 2., 3., 4.], [9., 10., 11., 12.], [5., 6., 7., 8.]]); |
45 |
| -test_permutate!(permutate_4x3, |
46 |
| - vec![4, 2, 3, 4], |
47 |
| - &[[1., 5., 9.], [2., 6., 10.], [3., 7., 11.], [4., 8., 12.]], |
48 |
| - &[[4., 8., 12.], [2., 6., 10.], [3., 7., 11.], [1., 5., 9.]]); |
49 |
| -test_permutate_t!(permutate_4x3_t, |
50 |
| - vec![4, 2, 3, 4], |
51 |
| - &[[1., 4., 7., 10.], [2., 5., 8., 11.], [3., 6., 9., 12.]], |
52 |
| - &[[10., 11., 12.], [4., 5., 6.], [7., 8., 9.], [1., 2., 3.]]); |
53 |
| - |
54 | 3 | fn test_lu(a: Array<f64, Ix2>) {
|
55 | 4 | println!("a = \n{:?}", &a);
|
56 | 5 | let (p, l, u) = a.clone().lu().unwrap();
|
|
0 commit comments