3 #include "ntp_stdlib.h"
4 #include "ntp_calendar.h"
9 /* This file tests both atolfp and mstolfp */
12 void test_PositiveInteger(void);
13 void test_NegativeInteger(void);
14 void test_PositiveFraction(void);
15 void test_NegativeFraction(void);
16 void test_PositiveMsFraction(void);
17 void test_NegativeMsFraction(void);
18 void test_InvalidChars(void);
30 void test_PositiveInteger(void) {
31 const char *str = "500";
32 const char *str_ms = "500000";
34 l_fp expected = {{500},0};
35 l_fp actual, actual_ms;
37 TEST_ASSERT_TRUE(atolfp(str, &actual));
38 TEST_ASSERT_TRUE(mstolfp(str_ms, &actual_ms));
40 TEST_ASSERT_TRUE(IsEqual(expected, actual));
41 TEST_ASSERT_TRUE(IsEqual(expected, actual_ms));
44 void test_NegativeInteger(void) {
45 const char *str = "-300";
46 const char *str_ms = "-300000";
52 l_fp actual, actual_ms;
54 TEST_ASSERT_TRUE(atolfp(str, &actual));
55 TEST_ASSERT_TRUE(mstolfp(str_ms, &actual_ms));
57 TEST_ASSERT_TRUE(IsEqual(expected, actual));
58 TEST_ASSERT_TRUE(IsEqual(expected, actual_ms));
61 void test_PositiveFraction(void) {
62 const char *str = "+500.5";
63 const char *str_ms = "500500.0";
65 l_fp expected = {{500}, HALF};
66 l_fp actual, actual_ms;
68 TEST_ASSERT_TRUE(atolfp(str, &actual));
69 TEST_ASSERT_TRUE(mstolfp(str_ms, &actual_ms));
71 TEST_ASSERT_TRUE(IsEqual(expected, actual));
72 TEST_ASSERT_TRUE(IsEqual(expected, actual_ms));
75 void test_NegativeFraction(void) {
76 const char *str = "-300.75";
77 const char *str_ms = "-300750";
81 expected.l_uf = QUARTER;
83 l_fp actual, actual_ms;
85 TEST_ASSERT_TRUE(atolfp(str, &actual));
86 TEST_ASSERT_TRUE(mstolfp(str_ms, &actual_ms));
88 TEST_ASSERT_TRUE(IsEqual(expected, actual));
89 TEST_ASSERT_TRUE(IsEqual(expected, actual_ms));
92 void test_PositiveMsFraction(void) {
93 const char *str = "300.00025";
94 const char *str_ms = "300000.25";
96 l_fp expected = {{300}, QUARTER_PROMILLE_APPRX};
97 l_fp actual, actual_ms;
100 TEST_ASSERT_TRUE(atolfp(str, &actual));
101 TEST_ASSERT_TRUE(mstolfp(str_ms, &actual_ms));
103 TEST_ASSERT_TRUE(IsEqual(expected, actual));
104 TEST_ASSERT_TRUE(IsEqual(expected, actual_ms));
108 void test_NegativeMsFraction(void) {
109 const char *str = "-199.99975";
110 const char *str_ms = "-199999.75";
114 expected.l_uf = QUARTER_PROMILLE_APPRX;
116 l_fp actual, actual_ms;
118 TEST_ASSERT_TRUE(atolfp(str, &actual));
119 TEST_ASSERT_TRUE(mstolfp(str_ms, &actual_ms));
121 TEST_ASSERT_TRUE(IsEqual(expected, actual));
122 TEST_ASSERT_TRUE(IsEqual(expected, actual_ms));
126 void test_InvalidChars(void) {
127 const char *str = "500.4a2";
128 l_fp actual, actual_ms;
130 TEST_ASSERT_FALSE(atolfp(str, &actual));
131 TEST_ASSERT_FALSE(mstolfp(str, &actual_ms));