3 #include "ntp_stdlib.h"
4 #include "ntp_calendar.h"
9 /* This file tests both atolfp and mstolfp */
11 void test_PositiveInteger(void) {
12 const char *str = "500";
13 const char *str_ms = "500000";
15 l_fp expected = {500,0};
16 l_fp actual, actual_ms;
18 TEST_ASSERT_TRUE(atolfp(str, &actual));
19 TEST_ASSERT_TRUE(mstolfp(str_ms, &actual_ms));
21 TEST_ASSERT_TRUE(IsEqual(expected, actual));
22 TEST_ASSERT_TRUE(IsEqual(expected, actual_ms));
25 void test_NegativeInteger(void) {
26 const char *str = "-300";
27 const char *str_ms = "-300000";
33 l_fp actual, actual_ms;
35 TEST_ASSERT_TRUE(atolfp(str, &actual));
36 TEST_ASSERT_TRUE(mstolfp(str_ms, &actual_ms));
38 TEST_ASSERT_TRUE(IsEqual(expected, actual));
39 TEST_ASSERT_TRUE(IsEqual(expected, actual_ms));
42 void test_PositiveFraction(void) {
43 const char *str = "+500.5";
44 const char *str_ms = "500500.0";
46 l_fp expected = {500, HALF};
47 l_fp actual, actual_ms;
49 TEST_ASSERT_TRUE(atolfp(str, &actual));
50 TEST_ASSERT_TRUE(mstolfp(str_ms, &actual_ms));
52 TEST_ASSERT_TRUE(IsEqual(expected, actual));
53 TEST_ASSERT_TRUE(IsEqual(expected, actual_ms));
56 void test_NegativeFraction(void) {
57 const char *str = "-300.75";
58 const char *str_ms = "-300750";
62 expected.l_uf = QUARTER;
64 l_fp actual, actual_ms;
66 TEST_ASSERT_TRUE(atolfp(str, &actual));
67 TEST_ASSERT_TRUE(mstolfp(str_ms, &actual_ms));
69 TEST_ASSERT_TRUE(IsEqual(expected, actual));
70 TEST_ASSERT_TRUE(IsEqual(expected, actual_ms));
73 void test_PositiveMsFraction(void) {
74 const char *str = "300.00025";
75 const char *str_ms = "300000.25";
77 l_fp expected = {300, QUARTER_PROMILLE_APPRX};
78 l_fp actual, actual_ms;
81 TEST_ASSERT_TRUE(atolfp(str, &actual));
82 TEST_ASSERT_TRUE(mstolfp(str_ms, &actual_ms));
84 TEST_ASSERT_TRUE(IsEqual(expected, actual));
85 TEST_ASSERT_TRUE(IsEqual(expected, actual_ms));
89 void test_NegativeMsFraction(void) {
90 const char *str = "-199.99975";
91 const char *str_ms = "-199999.75";
95 expected.l_uf = QUARTER_PROMILLE_APPRX;
97 l_fp actual, actual_ms;
99 TEST_ASSERT_TRUE(atolfp(str, &actual));
100 TEST_ASSERT_TRUE(mstolfp(str_ms, &actual_ms));
102 TEST_ASSERT_TRUE(IsEqual(expected, actual));
103 TEST_ASSERT_TRUE(IsEqual(expected, actual_ms));
107 void test_InvalidChars(void) {
108 const char *str = "500.4a2";
109 l_fp actual, actual_ms;
111 TEST_ASSERT_FALSE(atolfp(str, &actual));
112 TEST_ASSERT_FALSE(mstolfp(str, &actual_ms));