summaryrefslogtreecommitdiff
path: root/tests/libntp/lfptest.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/libntp/lfptest.h')
-rw-r--r--tests/libntp/lfptest.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/libntp/lfptest.h b/tests/libntp/lfptest.h
new file mode 100644
index 0000000..034eb41
--- /dev/null
+++ b/tests/libntp/lfptest.h
@@ -0,0 +1,31 @@
+#ifndef NTP_TESTS_LFPTEST_H
+#define NTP_TESTS_LFPTEST_H
+
+#include "libntptest.h"
+
+extern "C" {
+#include "ntp_fp.h"
+};
+
+class lfptest : public libntptest {
+protected:
+ ::testing::AssertionResult IsEqual(const l_fp &expected, const l_fp &actual) {
+ if (L_ISEQU(&expected, &actual)) {
+ return ::testing::AssertionSuccess();
+ } else {
+ return ::testing::AssertionFailure()
+ << " expected: " << lfptoa(&expected, FRACTION_PREC)
+ << " (" << expected.l_ui << "." << expected.l_uf << ")"
+ << " but was: " << lfptoa(&actual, FRACTION_PREC)
+ << " (" << actual.l_ui << "." << actual.l_uf << ")";
+ }
+ }
+
+ static const int32 HALF = -2147483647L - 1L;
+ static const int32 HALF_PROMILLE_UP = 2147484; // slightly more than 0.0005
+ static const int32 HALF_PROMILLE_DOWN = 2147483; // slightly less than 0.0005
+ static const int32 QUARTER = 1073741824L;
+ static const int32 QUARTER_PROMILLE_APPRX = 1073742L;
+};
+
+#endif /* NTP_TESTS_LFPTEST_H */