include!("header.rs");
macro_rules! impl_test{
($modname:ident, $clone:ident) => {
mod $modname {
use super::random_hermite;
use ndarray_linalg::prelude::*;
#[test]
fn ssqrt() {
let a = random_hermite(3);
let ar = a.$clone().ssqrt().unwrap();
all_close_l2(&ar.clone().t(), &ar, 1e-7).expect("not symmetric");
all_close_l2(&ar.dot(&ar), &a, 1e-7).expect("not sqrt");
}
#[test]
fn ssqrt_t() {
let a = random_hermite(3).reversed_axes();
let ar = a.$clone().ssqrt().unwrap();
all_close_l2(&ar.clone().t(), &ar, 1e-7).expect("not symmetric");
all_close_l2(&ar.dot(&ar), &a, 1e-7).expect("not sqrt");
}
}
}}
impl_test!(owned, clone);
impl_test!(shared, to_shared);