core: replace IS_FP_SAME macro by inline function

No reason to keep this as a macro - a function is easier to
read, type safe and easier to debug. Moreover, give it the
more appropriate name "nearly_equal()". After all, it precisely
does NOT check floating points for equality.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2022-08-30 17:55:43 +02:00 committed by Robert C. Helling
parent 5db4a95a26
commit 61701509b0
9 changed files with 28 additions and 25 deletions

View file

@ -5,23 +5,23 @@
void TestUnitConversion::testUnitConversions()
{
QCOMPARE(IS_FP_SAME(grams_to_lbs(1000), 2.204586), true);
QCOMPARE(nearly_equal(grams_to_lbs(1000), 2.204586), true);
QCOMPARE(lbs_to_grams(1), 454);
QCOMPARE(IS_FP_SAME(ml_to_cuft(1000), 0.0353147), true);
QCOMPARE(IS_FP_SAME(cuft_to_l(1), 28.316847), true);
QCOMPARE(IS_FP_SAME(mm_to_feet(1000), 3.280840), true);
QCOMPARE(nearly_equal(ml_to_cuft(1000), 0.0353147), true);
QCOMPARE(nearly_equal(cuft_to_l(1), 28.316847), true);
QCOMPARE(nearly_equal(mm_to_feet(1000), 3.280840), true);
QCOMPARE(feet_to_mm(1), 305L);
QCOMPARE(to_feet((depth_t){1000}), 3);
QCOMPARE(IS_FP_SAME(mkelvin_to_C(647000), 373.85), true);
QCOMPARE(IS_FP_SAME(mkelvin_to_F(647000), 704.93), true);
QCOMPARE(nearly_equal(mkelvin_to_C(647000), 373.85), true);
QCOMPARE(nearly_equal(mkelvin_to_F(647000), 704.93), true);
QCOMPARE(F_to_mkelvin(704.93), 647000UL);
QCOMPARE(C_to_mkelvin(373.85), 647000UL);
QCOMPARE(IS_FP_SAME(psi_to_bar(14.6959488), 1.01325), true);
QCOMPARE(nearly_equal(psi_to_bar(14.6959488), 1.01325), true);
QCOMPARE(psi_to_mbar(14.6959488), 1013L);
QCOMPARE(IS_FP_SAME(to_PSI((pressure_t){1013}), 14.6923228594), true);
QCOMPARE(IS_FP_SAME(bar_to_atm(1.013), 1.0), true);
QCOMPARE(IS_FP_SAME(mbar_to_atm(1013), 1.0), true);
QCOMPARE(IS_FP_SAME(mbar_to_PSI(1013), 14.6923228594), true);
QCOMPARE(nearly_equal(to_PSI((pressure_t){1013}), 14.6923228594), true);
QCOMPARE(nearly_equal(bar_to_atm(1.013), 1.0), true);
QCOMPARE(nearly_equal(mbar_to_atm(1013), 1.0), true);
QCOMPARE(nearly_equal(mbar_to_PSI(1013), 14.6923228594), true);
}
QTEST_GUILESS_MAIN(TestUnitConversion)