Skip to content

Commit

Permalink
[Test] Eliminate some exact floating point equality checks
Browse files Browse the repository at this point in the history
  • Loading branch information
speth committed Mar 14, 2022
1 parent acebd5c commit dcdb558
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 16 deletions.
23 changes: 14 additions & 9 deletions test/kinetics/kineticsFromScratch.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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]);
}
};

Expand Down Expand Up @@ -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]);
}
};

Expand Down Expand Up @@ -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;
}
}
};
Expand Down
17 changes: 10 additions & 7 deletions test/kinetics/kineticsFromScratch3.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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]);
}
};

Expand Down Expand Up @@ -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]);
}
};

Expand Down Expand Up @@ -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());
Expand All @@ -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;
}
}
};
Expand Down

0 comments on commit dcdb558

Please sign in to comment.