From dcdb558b4ff937177c58b92f9e500f84d1925283 Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Mon, 14 Mar 2022 11:38:39 -0400 Subject: [PATCH] [Test] Eliminate some exact floating point equality checks --- test/kinetics/kineticsFromScratch.cpp | 23 ++++++++++++++--------- test/kinetics/kineticsFromScratch3.cpp | 17 ++++++++++------- 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/test/kinetics/kineticsFromScratch.cpp b/test/kinetics/kineticsFromScratch.cpp index 3867e9d59f4..a707f970037 100644 --- a/test/kinetics/kineticsFromScratch.cpp +++ b/test/kinetics/kineticsFromScratch.cpp @@ -40,11 +40,11 @@ class KineticsFromScratch : public testing::Test kin.getFwdRateConstants(&k[0]); kin_ref->getFwdRateConstants(&k_ref[0]); - EXPECT_DOUBLE_EQ(k_ref[iRef], k[0]); + EXPECT_NEAR(k_ref[iRef], k[0], 1e-14 * k_ref[iRef]); kin.getRevRateConstants(&k[0]); kin_ref->getRevRateConstants(&k_ref[0]); - EXPECT_DOUBLE_EQ(k_ref[iRef], k[0]); + EXPECT_NEAR(k_ref[iRef], k[0], 1e-14 * k_ref[kRef]); } }; @@ -344,11 +344,11 @@ class InterfaceKineticsFromScratch : public testing::Test kin.getFwdRateConstants(&k[0]); kin_ref->getFwdRateConstants(&k_ref[0]); - EXPECT_DOUBLE_EQ(k_ref[iRef], k[0]); + EXPECT_NEAR(k_ref[iRef], k[0] 1e-14 * k_ref[iRef]); kin.getRevRateConstants(&k[0]); kin_ref->getRevRateConstants(&k_ref[0]); - EXPECT_DOUBLE_EQ(k_ref[iRef], k[0]); + EXPECT_NEAR(k_ref[iRef], k[0] 1e-14 * k_ref[iRef]); } }; @@ -433,32 +433,37 @@ class KineticsAddSpecies : public testing::Test kin.getFwdRateConstants(k.data()); kin_ref->getFwdRateConstants(k_ref.data()); for (size_t i = 0; i < kin.nReactions(); i++) { - EXPECT_DOUBLE_EQ(k_ref[i], k[i]) << "i = " << i << "; N = " << N; + EXPECT_NEAR(k_ref[i], k[i], 1e-14 * k_ref[i]) + << "i = " << i << "; N = " << N; } kin.getFwdRatesOfProgress(k.data()); kin_ref->getFwdRatesOfProgress(k_ref.data()); for (size_t i = 0; i < kin.nReactions(); i++) { - EXPECT_DOUBLE_EQ(k_ref[i], k[i]) << "i = " << i << "; N = " << N; + EXPECT_NEAR(k_ref[i], k[i], 1e-14 * k_ref[i]) + << "i = " << i << "; N = " << N; } kin.getRevRateConstants(k.data()); kin_ref->getRevRateConstants(k_ref.data()); for (size_t i = 0; i < kin.nReactions(); i++) { - EXPECT_DOUBLE_EQ(k_ref[i], k[i]) << "i = " << i << "; N = " << N; + EXPECT_NEAR(k_ref[i], k[i], 1e-14 * k_ref[i]) + << "i = " << i << "; N = " << N; } kin.getRevRatesOfProgress(k.data()); kin_ref->getRevRatesOfProgress(k_ref.data()); for (size_t i = 0; i < kin.nReactions(); i++) { - EXPECT_DOUBLE_EQ(k_ref[i], k[i]) << "i = " << i << "; N = " << N; + EXPECT_NEAR(k_ref[i], k[i], 1e-14 * k_ref[i]) + << "i = " << i << "; N = " << N; } kin.getCreationRates(w.data()); kin_ref->getCreationRates(w_ref.data()); for (size_t i = 0; i < kin.nTotalSpecies(); i++) { size_t iref = p_ref.speciesIndex(p.speciesName(i)); - EXPECT_DOUBLE_EQ(w_ref[iref], w[i]) << "sp = " << p.speciesName(i) << "; N = " << N; + EXPECT_NEAR(w_ref[iref], w[i] 1e-14 * w_ref[iref]) + << "sp = " << p.speciesName(i) << "; N = " << N; } } }; diff --git a/test/kinetics/kineticsFromScratch3.cpp b/test/kinetics/kineticsFromScratch3.cpp index 7c912d564f1..d326948dcdf 100644 --- a/test/kinetics/kineticsFromScratch3.cpp +++ b/test/kinetics/kineticsFromScratch3.cpp @@ -42,11 +42,11 @@ class KineticsFromScratch3 : public testing::Test kin.getFwdRateConstants(&k[0]); kin_ref->getFwdRateConstants(&k_ref[0]); - EXPECT_DOUBLE_EQ(k_ref[iRef], k[0]); + EXPECT_NEAR(k_ref[iRef], k[0] 1e-14 * k_ref[iRef]); kin.getRevRateConstants(&k[0]); kin_ref->getRevRateConstants(&k_ref[0]); - EXPECT_DOUBLE_EQ(k_ref[iRef], k[0]); + EXPECT_NEAR(k_ref[iRef], k[0] 1e-14 * k_ref[iRef]); } }; @@ -354,11 +354,11 @@ class InterfaceKineticsFromScratch3 : public testing::Test kin.getFwdRateConstants(&k[0]); kin_ref->getFwdRateConstants(&k_ref[0]); - EXPECT_DOUBLE_EQ(k_ref[iRef], k[0]); + EXPECT_NEAR(k_ref[iRef], k[0], 1e-14 * k_ref[iRef]); kin.getRevRateConstants(&k[0]); kin_ref->getRevRateConstants(&k_ref[0]); - EXPECT_DOUBLE_EQ(k_ref[iRef], k[0]); + EXPECT_NEAR(k_ref[iRef], k[0], 1e-14 * k_ref[iRef]); } }; @@ -447,13 +447,15 @@ class KineticsAddSpecies3 : public testing::Test kin.getFwdRateConstants(k.data()); kin_ref->getFwdRateConstants(k_ref.data()); for (size_t i = 0; i < kin.nReactions(); i++) { - EXPECT_DOUBLE_EQ(k_ref[i], k[i]) << "i = " << i << "; N = " << N; + EXPECT_NEAR(k_ref[i], k[i], 1e-14 * k_ref[i]) + << "i = " << i << "; N = " << N; } kin.getFwdRatesOfProgress(k.data()); kin_ref->getFwdRatesOfProgress(k_ref.data()); for (size_t i = 0; i < kin.nReactions(); i++) { - EXPECT_DOUBLE_EQ(k_ref[i], k[i]) << "i = " << i << "; N = " << N; + EXPECT_NEAR(k_ref[i], k[i], 1e-14 * k_ref[i]) + << "i = " << i << "; N = " << N; } kin.getRevRateConstants(k.data()); @@ -472,7 +474,8 @@ class KineticsAddSpecies3 : public testing::Test kin_ref->getCreationRates(w_ref.data()); for (size_t i = 0; i < kin.nTotalSpecies(); i++) { size_t iref = p_ref.speciesIndex(p.speciesName(i)); - EXPECT_NEAR(w_ref[iref], w[i], w_ref[iref]*1e-12) << "sp = " << p.speciesName(i) << "; N = " << N; + EXPECT_NEAR(w_ref[iref], w[i], w_ref[iref]*1e-12) + << "sp = " << p.speciesName(i) << "; N = " << N; } } };