aboutsummaryrefslogtreecommitdiffstats
path: root/tests/write_tests.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/write_tests.c')
-rw-r--r--tests/write_tests.c76
1 files changed, 64 insertions, 12 deletions
diff --git a/tests/write_tests.c b/tests/write_tests.c
index 8f34a46..4d5d8fc 100644
--- a/tests/write_tests.c
+++ b/tests/write_tests.c
@@ -2,7 +2,14 @@
#include <check.h>
#include <stdint.h>
-START_TEST (test_encode_can_signal)
+START_TEST (test_eightbyte_encode_float_precision)
+{
+ uint64_t value = eightbyte_encode_float(50, 2, 19, 0.001, 0);
+ ck_assert_int_eq(value, 0x061a800000000000LLU);
+}
+END_TEST
+
+START_TEST (test_eightbyte_encode_float)
{
uint64_t value = eightbyte_encode_float(0, 1, 3, 1, 0);
ck_assert_int_eq(value, 0);
@@ -12,14 +19,7 @@ START_TEST (test_encode_can_signal)
}
END_TEST
-START_TEST (test_encode_can_signal_rounding_precision)
-{
- uint64_t value = eightbyte_encode_float(50, 2, 19, 0.001, 0);
- ck_assert_int_eq(value, 0x061a800000000000LLU);
-}
-END_TEST
-
-START_TEST (test_encode_bool)
+START_TEST (test_eightbyte_encode_bool)
{
uint64_t value = eightbyte_encode_bool(true, 1, 3);
ck_assert_int_eq(value, 0x1000000000000000LLU);
@@ -28,13 +28,65 @@ START_TEST (test_encode_bool)
}
END_TEST
+START_TEST (test_bitfield_encode_float)
+{
+ uint8_t data[8] = {0};
+ bitfield_encode_float(0, 1, 3, 1, 0, data, sizeof(data));
+ ck_assert_int_eq(data[0], 0);
+ ck_assert_int_eq(data[1], 0);
+ ck_assert_int_eq(data[2], 0);
+ ck_assert_int_eq(data[3], 0);
+ ck_assert_int_eq(data[4], 0);
+ ck_assert_int_eq(data[5], 0);
+ ck_assert_int_eq(data[6], 0);
+ ck_assert_int_eq(data[7], 0);
+
+ bitfield_encode_float(1, 1, 3, 1, 0, data, sizeof(data));
+ ck_assert_int_eq(data[0], 0x10);
+ ck_assert_int_eq(data[1], 0);
+ ck_assert_int_eq(data[2], 0);
+ ck_assert_int_eq(data[3], 0);
+ ck_assert_int_eq(data[4], 0);
+ ck_assert_int_eq(data[5], 0);
+ ck_assert_int_eq(data[6], 0);
+ ck_assert_int_eq(data[7], 0);
+}
+END_TEST
+
+START_TEST (test_bitfield_encode_bool)
+{
+ uint8_t data[8] = {0};
+ bitfield_encode_bool(true, 1, 3, data, sizeof(data));
+ ck_assert_int_eq(data[0], 0x10);
+ ck_assert_int_eq(data[1], 0);
+ ck_assert_int_eq(data[2], 0);
+ ck_assert_int_eq(data[3], 0);
+ ck_assert_int_eq(data[4], 0);
+ ck_assert_int_eq(data[5], 0);
+ ck_assert_int_eq(data[6], 0);
+ ck_assert_int_eq(data[7], 0);
+
+ bitfield_encode_bool(false, 1, 3, data, sizeof(data));
+ ck_assert_int_eq(data[0], 0);
+ ck_assert_int_eq(data[1], 0);
+ ck_assert_int_eq(data[2], 0);
+ ck_assert_int_eq(data[3], 0);
+ ck_assert_int_eq(data[4], 0);
+ ck_assert_int_eq(data[5], 0);
+ ck_assert_int_eq(data[6], 0);
+ ck_assert_int_eq(data[7], 0);
+}
+END_TEST
+
Suite* canwriteSuite(void) {
Suite* s = suite_create("write");
TCase *tc_core = tcase_create("core");
tcase_add_checked_fixture(tc_core, NULL, NULL);
- tcase_add_test(tc_core, test_encode_can_signal);
- tcase_add_test(tc_core, test_encode_bool);
- tcase_add_test(tc_core, test_encode_can_signal_rounding_precision);
+ tcase_add_test(tc_core, test_eightbyte_encode_float);
+ tcase_add_test(tc_core, test_eightbyte_encode_bool);
+ tcase_add_test(tc_core, test_eightbyte_encode_float_precision);
+ tcase_add_test(tc_core, test_bitfield_encode_float);
+ tcase_add_test(tc_core, test_bitfield_encode_bool);
suite_add_tcase(s, tc_core);
return s;