Skip to content

Commit 7e5164c

Browse files
committed
Test of deth for RcArray
1 parent c357c3d commit 7e5164c

File tree

2 files changed

+23
-12
lines changed

2 files changed

+23
-12
lines changed

tests/det.rs

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
11
include!("header.rs");
22

3-
fn random_hermite(n: usize) -> Array<f64, Ix2> {
4-
let r_dist = RealNormal::new(0., 1.);
5-
let a = Array::<f64, _>::random((n, n), r_dist);
6-
a.dot(&a.t())
3+
macro_rules! impl_test_det {
4+
($modname:ident, $clone:ident) => {
5+
mod $modname {
6+
use super::random_hermite;
7+
use ndarray_linalg::prelude::*;
8+
use ndarray_numtest::prelude::*;
9+
#[test]
10+
fn deth() {
11+
let a = random_hermite(3);
12+
let (e, _) = a.$clone().eigh().unwrap();
13+
let deth = a.$clone().deth().unwrap();
14+
let det_eig = e.iter().fold(1.0, |x, y| x * y);
15+
deth.assert_close(det_eig, 1.0e-7);
16+
}
717
}
18+
}} // impl_test_det
819

9-
#[test]
10-
fn deth() {
11-
let a = random_hermite(3);
12-
let (e, _) = a.clone().eigh().unwrap();
13-
let deth = a.clone().deth().unwrap();
14-
let det_eig = e.iter().fold(1.0, |x, y| x * y);
15-
deth.assert_close(det_eig, 1.0e-7);
16-
}
20+
impl_test_det!(owned, clone);
21+
impl_test_det!(shared, to_shared);

tests/header.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,9 @@ use ndarray_numtest::prelude::*;
1717
use ndarray_rand::RandomExt;
1818
#[allow(unused_imports)]
1919
use num_traits::Float;
20+
21+
pub fn random_hermite(n: usize) -> Array<f64, Ix2> {
22+
let r_dist = RealNormal::new(0., 1.);
23+
let a = Array::<f64, _>::random((n, n), r_dist);
24+
a.dot(&a.t())
25+
}

0 commit comments

Comments
 (0)