From c376acbe72e6eaf9b59ab94a580c1dcc184ee443 Mon Sep 17 00:00:00 2001 From: Randolf Beerwerth <r.beerwerth@fz-juelich.de> Date: Tue, 22 Sep 2020 10:27:01 +0200 Subject: [PATCH] create macros for comparison of complex and vector values --- Tests/GTestWrapper/google_test.h | 8 +++++ .../Core/Fresnel/SpecularMagneticTest.cpp | 34 +++++++------------ 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/Tests/GTestWrapper/google_test.h b/Tests/GTestWrapper/google_test.h index 739a04cb321..f9424007a85 100644 --- a/Tests/GTestWrapper/google_test.h +++ b/Tests/GTestWrapper/google_test.h @@ -16,4 +16,12 @@ #include <memory> +#define EXPECT_NEAR_COMPLEX(z1, z2, eps) \ + EXPECT_NEAR(z1.real(), z2.real(), eps); \ + EXPECT_NEAR(z1.imag(), z2.imag(), eps); + +#define EXPECT_NEAR_VECTOR2CD(v1, v2, eps) \ + EXPECT_NEAR_COMPLEX(v1(0), v2(0), eps); \ + EXPECT_NEAR_COMPLEX(v1(1), v2(1), eps); + #endif // BORNAGAIN_TESTS_GTESTWRAPPER_GOOGLE_TEST_H diff --git a/Tests/UnitTests/Core/Fresnel/SpecularMagneticTest.cpp b/Tests/UnitTests/Core/Fresnel/SpecularMagneticTest.cpp index b7ab82ee307..dea22b0e944 100644 --- a/Tests/UnitTests/Core/Fresnel/SpecularMagneticTest.cpp +++ b/Tests/UnitTests/Core/Fresnel/SpecularMagneticTest.cpp @@ -27,16 +27,8 @@ protected: template<typename Strategy> void test_degenerate(); - - void ifEqual(const Eigen::Vector2cd& lhs, const Eigen::Vector2cd& rhs); }; -void SpecularMagneticTest::ifEqual(const Eigen::Vector2cd& lhs, const Eigen::Vector2cd& rhs) -{ - EXPECT_NEAR(0.0, std::abs(lhs(0) - rhs(0)), eps); - EXPECT_NEAR(0.0, std::abs(lhs(1) - rhs(1)), eps); -} - template<typename Strategy> void SpecularMagneticTest::test_degenerate() { @@ -50,14 +42,14 @@ void SpecularMagneticTest::test_degenerate() auto sample = sample_degenerate(); auto result = std::make_unique<Strategy>()->Execute(sample->slices(), v); for (auto& coeff : result) { - ifEqual(coeff->T1plus(), Tp_ref); - ifEqual(coeff->T2plus(), Tp_ref); - ifEqual(coeff->T1min(), Tm_ref); - ifEqual(coeff->T2min(), Tm_ref); - ifEqual(coeff->R1plus(), Rp_ref); - ifEqual(coeff->R2plus(), Rp_ref); - ifEqual(coeff->R1min(), Rm_ref); - ifEqual(coeff->R2min(), Rm_ref); + EXPECT_NEAR_VECTOR2CD(coeff->T1plus(), Tp_ref, eps); + EXPECT_NEAR_VECTOR2CD(coeff->T2plus(), Tp_ref, eps); + EXPECT_NEAR_VECTOR2CD(coeff->T1min(), Tm_ref, eps); + EXPECT_NEAR_VECTOR2CD(coeff->T2min(), Tm_ref, eps); + EXPECT_NEAR_VECTOR2CD(coeff->R1plus(), Rp_ref, eps); + EXPECT_NEAR_VECTOR2CD(coeff->R2plus(), Rp_ref, eps); + EXPECT_NEAR_VECTOR2CD(coeff->R1min(), Rm_ref, eps); + EXPECT_NEAR_VECTOR2CD(coeff->R2min(), Rm_ref, eps); } } @@ -88,12 +80,12 @@ void SpecularMagneticTest::testZeroField(const kvector_t& k, Eigen::Vector2cd TMM = RTMatrix.T1min() + RTMatrix.T2min(); Eigen::Vector2cd RMM = RTMatrix.R1min() + RTMatrix.R2min(); - ifEqual(TPS, TPM); - ifEqual(RPS, RPM); - ifEqual(TMS, TMM); - ifEqual(RMS, RMM); + EXPECT_NEAR_VECTOR2CD(TPS, TPM, eps); + EXPECT_NEAR_VECTOR2CD(RPS, RPM, eps); + EXPECT_NEAR_VECTOR2CD(TMS, TMM, eps); + EXPECT_NEAR_VECTOR2CD(RMS, RMM, eps); - ifEqual(RTScalar.getKz(), RTMatrix.getKz()); + EXPECT_NEAR_VECTOR2CD(RTScalar.getKz(), RTMatrix.getKz(), eps); } } -- GitLab