summaryrefslogtreecommitdiff
path: root/test/math_util.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/math_util.c')
-rw-r--r--test/math_util.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/test/math_util.c b/test/math_util.c
index b45de1a29d..6482888e55 100644
--- a/test/math_util.c
+++ b/test/math_util.c
@@ -78,12 +78,58 @@ static int test_rotate(void)
return EC_SUCCESS;
}
+test_static int test_round_divide(void)
+{
+ /* Check function version */
+ TEST_EQ(round_divide(10, 1), 10, "%d");
+ TEST_EQ(round_divide(10, 2), 5, "%d");
+ TEST_EQ(round_divide(10, 3), 3, "%d");
+ TEST_EQ(round_divide(10, 4), 3, "%d");
+ TEST_EQ(round_divide(10, 5), 2, "%d");
+ TEST_EQ(round_divide(10, 6), 2, "%d");
+ TEST_EQ(round_divide(10, 7), 1, "%d");
+ TEST_EQ(round_divide(10, 9), 1, "%d");
+ TEST_EQ(round_divide(10, 10), 1, "%d");
+ TEST_EQ(round_divide(10, 11), 1, "%d");
+ TEST_EQ(round_divide(10, 20), 1, "%d");
+ TEST_EQ(round_divide(10, 21), 0, "%d");
+
+ /* Check negative conditions */
+ TEST_EQ(round_divide(-10, 6), -2, "%d");
+ TEST_EQ(round_divide(10, -6), -2, "%d");
+ TEST_EQ(round_divide(-10, -6), 2, "%d");
+
+ return EC_SUCCESS;
+}
+
+test_static int test_temp_conversion(void)
+{
+ TEST_EQ(C_TO_K(100), 373, "%d");
+ TEST_EQ(K_TO_C(100), -173, "%d");
+
+ TEST_EQ((int)CELSIUS_TO_DECI_KELVIN(100), 3732, "%d");
+ TEST_EQ(DECI_KELVIN_TO_CELSIUS(100), -263, "%d");
+
+ TEST_EQ(MILLI_KELVIN_TO_MILLI_CELSIUS(100), -273050, "%d");
+ TEST_EQ(MILLI_CELSIUS_TO_MILLI_KELVIN(100), 273250, "%d");
+
+ TEST_EQ(MILLI_KELVIN_TO_KELVIN(5000), 5, "%d");
+ TEST_EQ(KELVIN_TO_MILLI_KELVIN(100), 100000, "%d");
+
+ TEST_EQ(CELSIUS_TO_MILLI_KELVIN(100), 373150, "%d");
+ TEST_EQ(MILLI_KELVIN_TO_CELSIUS(100), -273, "%d");
+
+ return EC_SUCCESS;
+}
+
void run_test(int argc, char **argv)
{
test_reset();
RUN_TEST(test_acos);
RUN_TEST(test_rotate);
+ RUN_TEST(test_round_divide);
+ RUN_TEST(test_temp_conversion);
test_print_result();
}