21 #define BOOST_TEST_MODULE libjmmcg_tests
22 #include <boost/test/included/unit_test.hpp>
24 #include <boost/mpl/list.hpp>
26 #include "core/ttypes.hpp"
28 using namespace libjmmcg;
35 BOOST_AUTO_TEST_SUITE(conversions_tests)
37 BOOST_AUTO_TEST_SUITE(tostrings)
39 BOOST_AUTO_TEST_SUITE(as_ptr)
41 BOOST_AUTO_TEST_CASE_TEMPLATE(zero, buffer_t, buffer_types) {
43 const auto len=tostring(0, buffer,
sizeof(buffer));
44 BOOST_CHECK_EQUAL(tostring(0), buffer);
45 BOOST_CHECK_EQUAL(1, len);
48 BOOST_AUTO_TEST_CASE_TEMPLATE(one, buffer_t, buffer_types) {
50 const auto len=tostring(1, buffer,
sizeof(buffer));
51 BOOST_CHECK_EQUAL(tostring(1), buffer);
52 BOOST_CHECK_EQUAL(1, len);
55 BOOST_AUTO_TEST_CASE_TEMPLATE(two, buffer_t, buffer_types) {
57 const auto len=tostring(2, buffer,
sizeof(buffer));
58 BOOST_CHECK_EQUAL(tostring(2), buffer);
59 BOOST_CHECK_EQUAL(1, len);
62 BOOST_AUTO_TEST_CASE_TEMPLATE(ten, buffer_t, buffer_types) {
64 const auto len=tostring(10, buffer,
sizeof(buffer));
65 BOOST_CHECK_EQUAL(tostring(10), buffer);
66 BOOST_CHECK_EQUAL(2, len);
69 BOOST_AUTO_TEST_CASE_TEMPLATE(fourty_two, buffer_t, buffer_types) {
71 const auto len=tostring(42, buffer,
sizeof(buffer));
72 BOOST_CHECK_EQUAL(tostring(42), buffer);
73 BOOST_CHECK_EQUAL(2, len);
76 BOOST_AUTO_TEST_SUITE_END()
78 BOOST_AUTO_TEST_SUITE(as_array)
80 BOOST_AUTO_TEST_CASE_TEMPLATE(zero, buffer_t, buffer_types) {
82 const auto len=tostring(0UL, buffer);
83 BOOST_CHECK_EQUAL(tostring(0), buffer);
84 BOOST_CHECK_EQUAL(1, len);
87 BOOST_AUTO_TEST_CASE_TEMPLATE(one, buffer_t, buffer_types) {
89 const auto len=tostring(1UL, buffer);
90 BOOST_CHECK_EQUAL(tostring(1), buffer);
91 BOOST_CHECK_EQUAL(1, len);
94 BOOST_AUTO_TEST_CASE_TEMPLATE(two, buffer_t, buffer_types) {
96 const auto len=tostring(2UL, buffer);
97 BOOST_CHECK_EQUAL(tostring(2), buffer);
98 BOOST_CHECK_EQUAL(1, len);
101 BOOST_AUTO_TEST_CASE_TEMPLATE(ten, buffer_t, buffer_types) {
103 const auto len=tostring(10UL, buffer);
104 BOOST_CHECK_EQUAL(tostring(10), buffer);
105 BOOST_CHECK_EQUAL(2, len);
108 BOOST_AUTO_TEST_CASE_TEMPLATE(fourty_two, buffer_t, buffer_types) {
110 const auto len=tostring(42UL, buffer);
111 BOOST_CHECK_EQUAL(tostring(42), buffer);
112 BOOST_CHECK_EQUAL(2, len);
115 BOOST_AUTO_TEST_SUITE_END()
117 BOOST_AUTO_TEST_SUITE_END()
119 BOOST_AUTO_TEST_SUITE(fromstrings)
121 BOOST_AUTO_TEST_CASE(zero) {
122 const char buff[]=
"0";
123 const long res0=fromstring<
int>(buff,
sizeof(buff)-1);
124 BOOST_CHECK_EQUAL(0, res0);
125 const long res0u=fromstring<
unsigned int>(buff,
sizeof(buff)-1);
126 BOOST_CHECK_EQUAL(0, res0u);
127 const long res1=fromstring<
long>(buff,
sizeof(buff)-1);
128 BOOST_CHECK_EQUAL(0, res1);
129 const long res1u=fromstring<
unsigned long>(buff,
sizeof(buff)-1);
130 BOOST_CHECK_EQUAL(0, res1u);
131 const long res2s=fromstring<
std::size_t>(buff,
sizeof(buff)-1);
132 BOOST_CHECK_EQUAL(0, res2s);
133 const double res2=fromstring<
double>(buff,
sizeof(buff)-1);
134 BOOST_CHECK_EQUAL(0, res2);
137 BOOST_AUTO_TEST_CASE(one) {
138 const char buff[]=
"1";
139 const long res0=fromstring<
int>(buff,
sizeof(buff)-1);
140 BOOST_CHECK_EQUAL(1, res0);
141 const long res0u=fromstring<
unsigned int>(buff,
sizeof(buff)-1);
142 BOOST_CHECK_EQUAL(1, res0u);
143 const long res1=fromstring<
long>(buff,
sizeof(buff)-1);
144 BOOST_CHECK_EQUAL(1, res1);
145 const long res1u=fromstring<
unsigned long>(buff,
sizeof(buff)-1);
146 BOOST_CHECK_EQUAL(1, res1u);
147 const long res2s=fromstring<
std::size_t>(buff,
sizeof(buff)-1);
148 BOOST_CHECK_EQUAL(1, res2s);
149 const double res2=fromstring<
double>(buff,
sizeof(buff)-1);
150 BOOST_CHECK_EQUAL(1, res2);
153 BOOST_AUTO_TEST_CASE(two) {
154 const char buff[]=
"2";
155 const long res0=fromstring<
int>(buff,
sizeof(buff)-1);
156 BOOST_CHECK_EQUAL(2, res0);
157 const long res0u=fromstring<
unsigned int>(buff,
sizeof(buff)-1);
158 BOOST_CHECK_EQUAL(2, res0u);
159 const long res1=fromstring<
long>(buff,
sizeof(buff)-1);
160 BOOST_CHECK_EQUAL(2, res1);
161 const long res1u=fromstring<
unsigned long>(buff,
sizeof(buff)-1);
162 BOOST_CHECK_EQUAL(2, res1u);
163 const long res2s=fromstring<
std::size_t>(buff,
sizeof(buff)-1);
164 BOOST_CHECK_EQUAL(2, res2s);
165 const double res2=fromstring<
double>(buff,
sizeof(buff)-1);
166 BOOST_CHECK_EQUAL(2, res2);
169 BOOST_AUTO_TEST_CASE(e) {
170 const char buff[]=
"2.71828182846";
171 const double res=fromstring<
double>(buff,
sizeof(buff)-1);
172 BOOST_CHECK_EQUAL(2.71828182846, res);
175 BOOST_AUTO_TEST_CASE(pi) {
176 const char buff[]=
"3.14159265359";
177 const double res=fromstring<
double>(buff,
sizeof(buff)-1);
178 BOOST_CHECK_EQUAL(3.14159265359, res);
181 BOOST_AUTO_TEST_CASE(ten) {
182 const char buff[]=
"10";
183 const long res1=fromstring<
long>(buff,
sizeof(buff)-1);
184 BOOST_CHECK_EQUAL(10, res1);
185 const double res2=fromstring<
double>(buff,
sizeof(buff)-1);
186 BOOST_CHECK_EQUAL(10, res2);
189 BOOST_AUTO_TEST_CASE(fourtytwo) {
190 const char buff[]=
"42";
191 const long res0=fromstring<
int>(buff,
sizeof(buff)-1);
192 BOOST_CHECK_EQUAL(42, res0);
193 const long res0u=fromstring<
unsigned int>(buff,
sizeof(buff)-1);
194 BOOST_CHECK_EQUAL(42, res0u);
195 const long res1=fromstring<
long>(buff,
sizeof(buff)-1);
196 BOOST_CHECK_EQUAL(42, res1);
197 const long res1u=fromstring<
unsigned long>(buff,
sizeof(buff)-1);
198 BOOST_CHECK_EQUAL(42, res1u);
199 const long res2s=fromstring<
std::size_t>(buff,
sizeof(buff)-1);
200 BOOST_CHECK_EQUAL(42, res2s);
201 const double res2=fromstring<
double>(buff,
sizeof(buff)-1);
202 BOOST_CHECK_EQUAL(42, res2);
205 BOOST_AUTO_TEST_SUITE_END()
207 BOOST_AUTO_TEST_SUITE_END()