aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--host/include/uhd/utils/fp_compare_delta.ipp2
-rw-r--r--host/tests/fp_compare_delta_test.cpp8
2 files changed, 9 insertions, 1 deletions
diff --git a/host/include/uhd/utils/fp_compare_delta.ipp b/host/include/uhd/utils/fp_compare_delta.ipp
index 49cbc281b..292ef4bf6 100644
--- a/host/include/uhd/utils/fp_compare_delta.ipp
+++ b/host/include/uhd/utils/fp_compare_delta.ipp
@@ -27,7 +27,7 @@ namespace uhd { namespace math { namespace fp_compare {
template<typename float_t> UHD_INLINE
float_t fp_compare_select_delta(float_t lhs_delta, float_t rhs_delta) {
- return ((lhs_delta < rhs_delta) ? lhs_delta : rhs_delta);
+ return ((lhs_delta > rhs_delta) ? lhs_delta : rhs_delta);
}
template<> UHD_INLINE
diff --git a/host/tests/fp_compare_delta_test.cpp b/host/tests/fp_compare_delta_test.cpp
index 36ff14756..d6d8a5209 100644
--- a/host/tests/fp_compare_delta_test.cpp
+++ b/host/tests/fp_compare_delta_test.cpp
@@ -237,6 +237,14 @@ BOOST_AUTO_TEST_CASE(double_greaterthanequals_operators) {
BOOST_CHECK(double(alpha._value + 3.0008) >= alpha);
}
+BOOST_AUTO_TEST_CASE(fp_compare_large_delta) {
+ BOOST_CHECK(fp_compare_delta<double>(61440000.047870710492, 0.1) == 61440000.000000000000);
+ BOOST_CHECK(fp_compare_delta<double>(61440000.047870710492, 0.1) <= 61440000.000000000000);
+ BOOST_CHECK(fp_compare_delta<double>(61440000.047870710492, 0.1) >= 61440000.000000000000);
+
+ BOOST_CHECK(fp_compare_delta<double>(1.0, 10.0) == 2.0);
+}
+
BOOST_AUTO_TEST_CASE(frequency_compare_function) {
BOOST_CHECK(uhd::math::frequencies_are_equal(6817333232.0, 6817333232.0));