3 #include "ntp_stdlib.h"
4 #include "ntp_calendar.h"
9 /* This file tests both atolfp and mstolfp */
11 void test_PositiveInteger(void);
12 void test_NegativeInteger(void);
13 void test_PositiveFraction(void);
14 void test_NegativeFraction(void);
15 void test_PositiveMsFraction(void);
16 void test_NegativeMsFraction(void);
17 void test_InvalidChars(void);
20 void test_PositiveInteger(void) {
21 const char *str = "500";
22 const char *str_ms = "500000";
24 l_fp expected = {{500},0};
25 l_fp actual, actual_ms;
27 TEST_ASSERT_TRUE(atolfp(str, &actual));
28 TEST_ASSERT_TRUE(mstolfp(str_ms, &actual_ms));
30 TEST_ASSERT_TRUE(IsEqual(expected, actual));
31 TEST_ASSERT_TRUE(IsEqual(expected, actual_ms));
34 void test_NegativeInteger(void) {
35 const char *str = "-300";
36 const char *str_ms = "-300000";
42 l_fp actual, actual_ms;
44 TEST_ASSERT_TRUE(atolfp(str, &actual));
45 TEST_ASSERT_TRUE(mstolfp(str_ms, &actual_ms));
47 TEST_ASSERT_TRUE(IsEqual(expected, actual));
48 TEST_ASSERT_TRUE(IsEqual(expected, actual_ms));
51 void test_PositiveFraction(void) {
52 const char *str = "+500.5";
53 const char *str_ms = "500500.0";
55 l_fp expected = {{500}, HALF};
56 l_fp actual, actual_ms;
58 TEST_ASSERT_TRUE(atolfp(str, &actual));
59 TEST_ASSERT_TRUE(mstolfp(str_ms, &actual_ms));
61 TEST_ASSERT_TRUE(IsEqual(expected, actual));
62 TEST_ASSERT_TRUE(IsEqual(expected, actual_ms));
65 void test_NegativeFraction(void) {
66 const char *str = "-300.75";
67 const char *str_ms = "-300750";
71 expected.l_uf = QUARTER;
73 l_fp actual, actual_ms;
75 TEST_ASSERT_TRUE(atolfp(str, &actual));
76 TEST_ASSERT_TRUE(mstolfp(str_ms, &actual_ms));
78 TEST_ASSERT_TRUE(IsEqual(expected, actual));
79 TEST_ASSERT_TRUE(IsEqual(expected, actual_ms));
82 void test_PositiveMsFraction(void) {
83 const char *str = "300.00025";
84 const char *str_ms = "300000.25";
86 l_fp expected = {{300}, QUARTER_PROMILLE_APPRX};
87 l_fp actual, actual_ms;
90 TEST_ASSERT_TRUE(atolfp(str, &actual));
91 TEST_ASSERT_TRUE(mstolfp(str_ms, &actual_ms));
93 TEST_ASSERT_TRUE(IsEqual(expected, actual));
94 TEST_ASSERT_TRUE(IsEqual(expected, actual_ms));
98 void test_NegativeMsFraction(void) {
99 const char *str = "-199.99975";
100 const char *str_ms = "-199999.75";
104 expected.l_uf = QUARTER_PROMILLE_APPRX;
106 l_fp actual, actual_ms;
108 TEST_ASSERT_TRUE(atolfp(str, &actual));
109 TEST_ASSERT_TRUE(mstolfp(str_ms, &actual_ms));
111 TEST_ASSERT_TRUE(IsEqual(expected, actual));
112 TEST_ASSERT_TRUE(IsEqual(expected, actual_ms));
116 void test_InvalidChars(void) {
117 const char *str = "500.4a2";
118 l_fp actual, actual_ms;
120 TEST_ASSERT_FALSE(atolfp(str, &actual));
121 TEST_ASSERT_FALSE(mstolfp(str, &actual_ms));