Skip to content

Commit 91b2be2

Browse files
committed
Include EigVals::eigvals in tests
1 parent a561e5a commit 91b2be2

File tree

1 file changed

+37
-18
lines changed

1 file changed

+37
-18
lines changed

ndarray-linalg/tests/eig.rs

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@ use ndarray::*;
22
use ndarray_linalg::*;
33

44
// Test Av_i = e_i v_i for i = 0..n
5-
fn test_eig<T: Scalar>(a: Array2<T>, eigs: Array1<T::Complex>, vecs: Array2<T::Complex>)
6-
where
5+
fn test_eig<T: Scalar>(
6+
a: ArrayView2<'_, T>,
7+
eigs: ArrayView1<'_, T::Complex>,
8+
vecs: ArrayView2<'_, T::Complex>,
9+
) where
710
T::Complex: Lapack,
811
{
912
println!("a\n{:+.4}", &a);
@@ -205,29 +208,37 @@ macro_rules! impl_test_real {
205208
#[test]
206209
fn [<$real _eigvals >]() {
207210
let a = test_matrix_real::<$real>();
208-
let (e, _vecs) = a.eig().unwrap();
209-
assert_close_l2!(&e, &answer_eig_real::<$real>(), 1.0e-3);
211+
let (e1, _vecs) = a.eig().unwrap();
212+
let e2 = a.eigvals().unwrap();
213+
assert_close_l2!(&e1, &answer_eig_real::<$real>(), 1.0e-3);
214+
assert_close_l2!(&e2, &answer_eig_real::<$real>(), 1.0e-3);
210215
}
211216

212217
#[test]
213218
fn [<$real _eigvals_t>]() {
214219
let a = test_matrix_real_t::<$real>();
215-
let (e, _vecs) = a.eig().unwrap();
216-
assert_close_l2!(&e, &answer_eig_real::<$real>(), 1.0e-3);
220+
let (e1, _vecs) = a.eig().unwrap();
221+
let e2 = a.eigvals().unwrap();
222+
assert_close_l2!(&e1, &answer_eig_real::<$real>(), 1.0e-3);
223+
assert_close_l2!(&e2, &answer_eig_real::<$real>(), 1.0e-3);
217224
}
218225

219226
#[test]
220227
fn [<$real _eig>]() {
221228
let a = test_matrix_real::<$real>();
222-
let (e, vecs) = a.eig().unwrap();
223-
test_eig(a, e, vecs);
229+
let (e1, vecs) = a.eig().unwrap();
230+
let e2 = a.eigvals().unwrap();
231+
test_eig(a.view(), e1.view(), vecs.view());
232+
test_eig(a.view(), e2.view(), vecs.view());
224233
}
225234

226235
#[test]
227236
fn [<$real _eig_t>]() {
228237
let a = test_matrix_real_t::<$real>();
229-
let (e, vecs) = a.eig().unwrap();
230-
test_eig(a, e, vecs);
238+
let (e1, vecs) = a.eig().unwrap();
239+
let e2 = a.eigvals().unwrap();
240+
test_eig(a.view(), e1.view(), vecs.view());
241+
test_eig(a.view(), e2.view(), vecs.view());
231242
}
232243

233244
} // paste::item!
@@ -243,15 +254,19 @@ macro_rules! impl_test_complex {
243254
#[test]
244255
fn [<$complex _eigvals >]() {
245256
let a = test_matrix_complex::<$complex>();
246-
let (e, _vecs) = a.eig().unwrap();
247-
assert_close_l2!(&e, &answer_eig_complex::<$complex>(), 1.0e-3);
257+
let (e1, _vecs) = a.eig().unwrap();
258+
let e2 = a.eigvals().unwrap();
259+
assert_close_l2!(&e1, &answer_eig_complex::<$complex>(), 1.0e-3);
260+
assert_close_l2!(&e2, &answer_eig_complex::<$complex>(), 1.0e-3);
248261
}
249262

250263
#[test]
251264
fn [<$complex _eigvals_t>]() {
252265
let a = test_matrix_complex_t::<$complex>();
253-
let (e, _vecs) = a.eig().unwrap();
254-
assert_close_l2!(&e, &answer_eig_complex::<$complex>(), 1.0e-3);
266+
let (e1, _vecs) = a.eig().unwrap();
267+
let e2 = a.eigvals().unwrap();
268+
assert_close_l2!(&e1, &answer_eig_complex::<$complex>(), 1.0e-3);
269+
assert_close_l2!(&e2, &answer_eig_complex::<$complex>(), 1.0e-3);
255270
}
256271

257272
#[test]
@@ -271,15 +286,19 @@ macro_rules! impl_test_complex {
271286
#[test]
272287
fn [<$complex _eig>]() {
273288
let a = test_matrix_complex::<$complex>();
274-
let (e, vecs) = a.eig().unwrap();
275-
test_eig(a, e, vecs);
289+
let (e1, vecs) = a.eig().unwrap();
290+
let e2 = a.eigvals().unwrap();
291+
test_eig(a.view(), e1.view(), vecs.view());
292+
test_eig(a.view(), e2.view(), vecs.view());
276293
}
277294

278295
#[test]
279296
fn [<$complex _eig_t>]() {
280297
let a = test_matrix_complex_t::<$complex>();
281-
let (e, vecs) = a.eig().unwrap();
282-
test_eig(a, e, vecs);
298+
let (e1, vecs) = a.eig().unwrap();
299+
let e2 = a.eigvals().unwrap();
300+
test_eig(a.view(), e1.view(), vecs.view());
301+
test_eig(a.view(), e2.view(), vecs.view());
283302
}
284303
} // paste::item!
285304
};

0 commit comments

Comments
 (0)