diff --git a/crates/ekore/src/anomalous_dimensions/unpolarized/spacelike.rs b/crates/ekore/src/anomalous_dimensions/unpolarized/spacelike.rs index ced5d40a4..499c66e00 100644 --- a/crates/ekore/src/anomalous_dimensions/unpolarized/spacelike.rs +++ b/crates/ekore/src/anomalous_dimensions/unpolarized/spacelike.rs @@ -200,7 +200,7 @@ pub fn gamma_valence_qed( #[cfg(test)] mod tests { use super::*; - use crate::{assert_approx_eq_cmplx, cmplx}; + use crate::{assert_approx_eq_cmplx, assert_approx_eq_cmplx_2d, cmplx}; use num::complex::Complex; #[test] @@ -292,28 +292,14 @@ mod tests { const N: Complex = cmplx!(2., 0.); let mut c = Cache::new(N); - assert_approx_eq_cmplx!( - f64, - gamma_valence_qed(3, 2, &mut c, NF)[3][0][0][0], - cmplx!(459.646893789751, 0.), - epsilon = 1e-5 - ); - assert_approx_eq_cmplx!( - f64, - gamma_valence_qed(3, 2, &mut c, NF)[3][0][1][1], - cmplx!(437.60340375, 0.), - epsilon = 1e-5 - ); - assert_approx_eq_cmplx!( + assert_approx_eq_cmplx_2d!( f64, - gamma_valence_qed(3, 2, &mut c, NF)[3][0][1][0], - cmplx!(0., 0.), - epsilon = 1e-5 - ); - assert_approx_eq_cmplx!( - f64, - gamma_valence_qed(3, 2, &mut c, NF)[3][0][0][1], - cmplx!(0., 0.), + gamma_valence_qed(3, 2, &mut c, NF)[3][0], + [ + [cmplx!(459.646893789751, 0.), cmplx!(0., 0.)], + [cmplx!(0., 0.), cmplx!(437.60340375, 0.)] + ], + 2, epsilon = 1e-5 ); } diff --git a/crates/ekore/src/util.rs b/crates/ekore/src/util.rs index b5c812165..c564bcdcc 100644 --- a/crates/ekore/src/util.rs +++ b/crates/ekore/src/util.rs @@ -22,3 +22,16 @@ macro_rules! assert_approx_eq_cmplx { float_cmp::assert_approx_eq!($size, $ref.im, $target.im $(, $set = $val)*); }; } + +/// Shorthand complex matrix comparators. +#[cfg(test)] +#[macro_export] +macro_rules! assert_approx_eq_cmplx_2d { + ($size:ty, $ref:expr, $target:expr, $d:expr $(, $set:ident = $val:expr)*) => { + for j in 0..$d { + for k in 0..$d { + assert_approx_eq_cmplx!($size, $ref[j][k], $target[j][k] $(, $set = $val)*); + } + } + } +}