1 #include "config.h" 2 3 #include <cassert> 4 #include <string> 5 6 #include "asserts.h" 7 #include "types.h" 8 test_u8(void)9void 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 test_u16(void)25void 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 test_u32(void)41void 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 test_u64(void)57void 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 test_type(void)73void 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 main(int argc,char const * argv[])286int 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 } 295