Skip to content

Commit 64ca50f

Browse files
committed
Split test for permutate
1 parent b979050 commit 64ca50f

File tree

2 files changed

+49
-51
lines changed

2 files changed

+49
-51
lines changed

tests/lu.rs

Lines changed: 0 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,5 @@
11
include!("header.rs");
22

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-
543
fn test_lu(a: Array<f64, Ix2>) {
554
println!("a = \n{:?}", &a);
565
let (p, l, u) = a.clone().lu().unwrap();

tests/permutate.rs

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
include!("header.rs");
2+
3+
macro_rules! impl_test {
4+
($testname:ident, $permutate:expr, $input:expr, $answer:expr) => {
5+
#[test]
6+
fn $testname() {
7+
use ndarray_linalg::prelude::*;
8+
let a = $input;
9+
println!("a= \n{:?}", &a);
10+
let p = $permutate; // replace 1-2
11+
let pa = a.permutated(&p);
12+
println!("permutated = \n{:?}", &pa);
13+
all_close_l2(&pa, &$answer, 1e-7).unwrap();
14+
}
15+
}} // impl_test
16+
17+
macro_rules! impl_test_permuate {
18+
($modname:ident, $array:path) => {
19+
mod $modname {
20+
use ndarray;
21+
impl_test!(permutate,
22+
vec![2, 2, 3],
23+
$array(&[[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]),
24+
$array(&[[4., 5., 6.], [1., 2., 3.], [7., 8., 9.]]));
25+
impl_test!(permutate_t,
26+
vec![2, 2, 3],
27+
$array(&[[1., 4., 7.], [2., 5., 8.], [3., 6., 9.]]).reversed_axes(),
28+
$array(&[[4., 5., 6.], [1., 2., 3.], [7., 8., 9.]]));
29+
impl_test!(permutate_3x4,
30+
vec![1, 3, 3],
31+
$array(&[[1., 4., 7., 10.], [2., 5., 8., 11.], [3., 6., 9., 12.]]),
32+
$array(&[[1., 4., 7., 10.], [3., 6., 9., 12.], [2., 5., 8., 11.]]));
33+
impl_test!(permutate_3x4_t,
34+
vec![1, 3, 3],
35+
$array(&[[1., 5., 9.], [2., 6., 10.], [3., 7., 11.], [4., 8., 12.]]).reversed_axes(),
36+
$array(&[[1., 2., 3., 4.], [9., 10., 11., 12.], [5., 6., 7., 8.]]));
37+
impl_test!(permutate_4x3,
38+
vec![4, 2, 3, 4],
39+
$array(&[[1., 5., 9.], [2., 6., 10.], [3., 7., 11.], [4., 8., 12.]]),
40+
$array(&[[4., 8., 12.], [2., 6., 10.], [3., 7., 11.], [1., 5., 9.]]));
41+
impl_test!(permutate_4x3_t,
42+
vec![4, 2, 3, 4],
43+
$array(&[[1., 4., 7., 10.], [2., 5., 8., 11.], [3., 6., 9., 12.]]).reversed_axes(),
44+
$array(&[[10., 11., 12.], [4., 5., 6.], [7., 8., 9.], [1., 2., 3.]]));
45+
}
46+
}} // impl_test_permuate
47+
48+
impl_test_permuate!(owned, ndarray::arr2);
49+
impl_test_permuate!(shared, ndarray::rcarr2);

0 commit comments

Comments
 (0)