rvm  1.11
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
test-types.cc
Go to the documentation of this file.
1 #include "config.h"
2 
3 #include <cassert>
4 #include <string>
5 
6 #include "asserts.h"
7 #include "types.h"
8 
9 void test_u8(void)
10 {
11  uint8 u8 = 0;
12  uint8 u8_old = 0;
13  unsigned int c = 0;
14 
15  u8 = 1;
16  for (c = 0; u8 != u8_old; c++) {
17  u8_old = u8;
18  u8 <<= 1;
19  u8 |= 1;
20  }
21 
22  assert(c == 8);
23 }
24 
25 void test_u16(void)
26 {
27  uint16 u16 = 0;
28  uint16 u16_old = 0;
29  unsigned int c = 0;
30 
31  u16 = 1;
32  for (c = 0; u16 != u16_old; c++) {
33  u16_old = u16;
34  u16 <<= 1;
35  u16 |= 1;
36  }
37 
38  assert(c == 16);
39 }
40 
41 void test_u32(void)
42 {
43  uint32 u32 = 0;
44  uint32 u32_old = 0;
45  unsigned int c = 0;
46 
47  u32 = 1;
48  for (c = 0; u32 != u32_old; c++) {
49  u32_old = u32;
50  u32 <<= 1;
51  u32 |= 1;
52  }
53 
54  assert(c == 32);
55 }
56 
57 void test_u64(void)
58 {
59  uint64 u64 = 0;
60  uint64 u64_old = 0;
61  unsigned int c = 0;
62 
63  u64 = 1;
64  for (c = 0; u64 != u64_old; c++) {
65  u64_old = u64;
66  u64 <<= 1;
67  u64 |= 1;
68  }
69 
70  assert(c == 64);
71 }
72 
73 void test_type(void)
74 {
75  char sc;
76  unsigned char uc;
77  short ss;
78  unsigned short us;
79  int si;
80  unsigned int ui;
81  long sl;
82  unsigned long ul;
83  long long sll;
84  unsigned long long ull;
85  float f;
86  double d;
87  bool b;
88 
89  assert( is_signed_char(sc));
90  assert(!is_signed_char(uc));
91  assert(!is_signed_char(ss));
92  assert(!is_signed_char(us));
93  assert(!is_signed_char(si));
94  assert(!is_signed_char(ui));
95  assert(!is_signed_char(sl));
96  assert(!is_signed_char(ul));
97  assert(!is_signed_char(sll));
98  assert(!is_signed_char(ull));
99  assert(!is_signed_char(f));
100  assert(!is_signed_char(d));
101  assert(!is_signed_char(b));
102 
103  assert(!is_unsigned_char(sc));
104  assert( is_unsigned_char(uc));
105  assert(!is_unsigned_char(ss));
106  assert(!is_unsigned_char(us));
107  assert(!is_unsigned_char(si));
108  assert(!is_unsigned_char(ui));
109  assert(!is_unsigned_char(sl));
110  assert(!is_unsigned_char(ul));
111  assert(!is_unsigned_char(sll));
112  assert(!is_unsigned_char(ull));
113  assert(!is_unsigned_char(f));
114  assert(!is_unsigned_char(d));
115  assert(!is_unsigned_char(b));
116 
117  assert(!is_signed_short(sc));
118  assert(!is_signed_short(uc));
119  assert( is_signed_short(ss));
120  assert(!is_signed_short(us));
121  assert(!is_signed_short(si));
122  assert(!is_signed_short(ui));
123  assert(!is_signed_short(sl));
124  assert(!is_signed_short(ul));
125  assert(!is_signed_short(sll));
126  assert(!is_signed_short(ull));
127  assert(!is_signed_short(f));
128  assert(!is_signed_short(d));
129  assert(!is_signed_short(b));
130 
131  assert(!is_unsigned_short(sc));
132  assert(!is_unsigned_short(uc));
133  assert(!is_unsigned_short(ss));
134  assert( is_unsigned_short(us));
135  assert(!is_unsigned_short(si));
136  assert(!is_unsigned_short(ui));
137  assert(!is_unsigned_short(sl));
138  assert(!is_unsigned_short(ul));
139  assert(!is_unsigned_short(sll));
140  assert(!is_unsigned_short(ull));
141  assert(!is_unsigned_short(f));
142  assert(!is_unsigned_short(d));
143  assert(!is_unsigned_short(b));
144 
145  assert(!is_signed_int(sc));
146  assert(!is_signed_int(uc));
147  assert(!is_signed_int(ss));
148  assert(!is_signed_int(us));
149  assert( is_signed_int(si));
150  assert(!is_signed_int(ui));
151  assert(!is_signed_int(sl));
152  assert(!is_signed_int(ul));
153  assert(!is_signed_int(sll));
154  assert(!is_signed_int(ull));
155  assert(!is_signed_int(f));
156  assert(!is_signed_int(d));
157  assert(!is_signed_int(b));
158 
159  assert(!is_unsigned_int(sc));
160  assert(!is_unsigned_int(uc));
161  assert(!is_unsigned_int(ss));
162  assert(!is_unsigned_int(us));
163  assert(!is_unsigned_int(si));
164  assert( is_unsigned_int(ui));
165  assert(!is_unsigned_int(sl));
166  assert(!is_unsigned_int(ul));
167  assert(!is_unsigned_int(sll));
168  assert(!is_unsigned_int(ull));
169  assert(!is_unsigned_int(f));
170  assert(!is_unsigned_int(d));
171  assert(!is_unsigned_int(b));
172 
173  assert(!is_signed_long(sc));
174  assert(!is_signed_long(uc));
175  assert(!is_signed_long(ss));
176  assert(!is_signed_long(us));
177  assert(!is_signed_long(si));
178  assert(!is_signed_long(ui));
179  assert( is_signed_long(sl));
180  assert(!is_signed_long(ul));
181  assert(!is_signed_long(sll));
182  assert(!is_signed_long(ull));
183  assert(!is_signed_long(f));
184  assert(!is_signed_long(d));
185  assert(!is_signed_long(b));
186 
187  assert(!is_unsigned_long(sc));
188  assert(!is_unsigned_long(uc));
189  assert(!is_unsigned_long(ss));
190  assert(!is_unsigned_long(us));
191  assert(!is_unsigned_long(si));
192  assert(!is_unsigned_long(ui));
193  assert(!is_unsigned_long(sl));
194  assert( is_unsigned_long(ul));
195  assert(!is_unsigned_long(sll));
196  assert(!is_unsigned_long(ull));
197  assert(!is_unsigned_long(f));
198  assert(!is_unsigned_long(d));
199  assert(!is_unsigned_long(b));
200 
201  assert(!is_signed_long_long(sc));
202  assert(!is_signed_long_long(uc));
203  assert(!is_signed_long_long(ss));
204  assert(!is_signed_long_long(us));
205  assert(!is_signed_long_long(si));
206  assert(!is_signed_long_long(ui));
207  assert(!is_signed_long_long(sl));
208  assert(!is_signed_long_long(ul));
209  assert( is_signed_long_long(sll));
210  assert(!is_signed_long_long(ull));
211  assert(!is_signed_long_long(f));
212  assert(!is_signed_long_long(d));
213  assert(!is_signed_long_long(b));
214 
215  assert(!is_unsigned_long_long(sc));
216  assert(!is_unsigned_long_long(uc));
217  assert(!is_unsigned_long_long(ss));
218  assert(!is_unsigned_long_long(us));
219  assert(!is_unsigned_long_long(si));
220  assert(!is_unsigned_long_long(ui));
221  assert(!is_unsigned_long_long(sl));
222  assert(!is_unsigned_long_long(ul));
223  assert(!is_unsigned_long_long(sll));
224  assert( is_unsigned_long_long(ull));
225  assert(!is_unsigned_long_long(f));
226  assert(!is_unsigned_long_long(d));
227  assert(!is_unsigned_long_long(b));
228 
229  assert(!is_float(sc));
230  assert(!is_float(uc));
231  assert(!is_float(ss));
232  assert(!is_float(us));
233  assert(!is_float(si));
234  assert(!is_float(ui));
235  assert(!is_float(sl));
236  assert(!is_float(ul));
237  assert(!is_float(sll));
238  assert(!is_float(ull));
239  assert( is_float(f));
240  assert(!is_float(d));
241  assert(!is_float(b));
242 
243  assert(!is_double(sc));
244  assert(!is_double(uc));
245  assert(!is_double(ss));
246  assert(!is_double(us));
247  assert(!is_double(si));
248  assert(!is_double(ui));
249  assert(!is_double(sl));
250  assert(!is_double(ul));
251  assert(!is_double(sll));
252  assert(!is_double(ull));
253  assert(!is_double(f));
254  assert( is_double(d));
255  assert(!is_double(b));
256 
257  assert(!is_bool(sc));
258  assert(!is_bool(uc));
259  assert(!is_bool(ss));
260  assert(!is_bool(us));
261  assert(!is_bool(si));
262  assert(!is_bool(ui));
263  assert(!is_bool(sl));
264  assert(!is_bool(ul));
265  assert(!is_bool(sll));
266  assert(!is_bool(ull));
267  assert(!is_bool(f));
268  assert(!is_bool(d));
269  assert( is_bool(b));
270 
271  assert(static_cast<std::string>(type_name(sc)) == "char");
272  assert(static_cast<std::string>(type_name(uc)) == "unsigned char");
273  assert(static_cast<std::string>(type_name(ss)) == "short");
274  assert(static_cast<std::string>(type_name(us)) == "unsigned short");
275  assert(static_cast<std::string>(type_name(si)) == "int");
276  assert(static_cast<std::string>(type_name(ui)) == "unsigned int");
277  assert(static_cast<std::string>(type_name(sl)) == "long");
278  assert(static_cast<std::string>(type_name(ul)) == "unsigned long");
279  assert(static_cast<std::string>(type_name(sll)) == "long long");
280  assert(static_cast<std::string>(type_name(ull)) == "unsigned long long");
281  assert(static_cast<std::string>(type_name(f)) == "float");
282  assert(static_cast<std::string>(type_name(d)) == "double");
283  assert(static_cast<std::string>(type_name(b)) == "bool");
284 }
285 
286 int main(int argc, char const * argv[])
287 {
288  test_u8();
289  test_u16();
290  test_u32();
291  test_u64();
292  test_type();
293  return(0);
294 }
void test_u16(void)
Definition: test-types.cc:25
Basic types definitions and templates.
int main(int argc, char const *argv[])
Definition: test-types.cc:286
bool is_signed_short(const short &a_arg)
Return true for any variable that is either a signed or unsigned char.
Definition: types.cc:43
bool is_float(const float &a_arg)
Return true for any variable that is either a signed or unsigned long long.
Definition: types.cc:151
const char * type_name(const unsigned char &a_arg)
Return true for any variable that is a signed type.
Definition: types.cc:215
bool is_unsigned_long_long(const unsigned long long &a_arg)
Return false for any variable that is not an unsigned long long.
Definition: types.cc:134
void test_u64(void)
Definition: test-types.cc:57
bool is_bool(const bool &a_arg)
Return false for any variable that is not a bool.
Definition: types.cc:175
bool is_unsigned_int(const unsigned int &a_arg)
Return false for any variable that is not an unsigned int.
Definition: types.cc:80
bool is_signed_char(const char &a_arg)
Return false for any variable that is not a char.
Definition: types.cc:16
bool is_signed_long(const long &a_arg)
Return true for any variable that is either a signed or unsigned int.
Definition: types.cc:97
void test_u8(void)
Definition: test-types.cc:9
void test_u32(void)
Definition: test-types.cc:41
bool is_unsigned_short(const unsigned short &a_arg)
Return false for any variable that is not an unsigned short.
Definition: types.cc:53
void test_type(void)
Definition: test-types.cc:73
bool is_signed_int(const int &a_arg)
Return true for any variable that is either a signed or unsigned short.
Definition: types.cc:70
bool is_signed_long_long(const long long &a_arg)
Return true for any variable that is either a signed or unsigned long.
Definition: types.cc:124
bool is_double(const double &a_arg)
Return false for any variable that is not a double.
Definition: types.cc:163
bool is_unsigned_char(const unsigned char &a_arg)
Return false for any variable that is not an unsigned char.
Definition: types.cc:26
bool is_unsigned_long(const unsigned long &a_arg)
Return false for any variable that is not an unsigned long.
Definition: types.cc:107