182{
183
191 ok_eq_long(cast_double_to_long(2147483647.99999), 2147483647l);
192 ok_eq_long(cast_double_to_long(-2147483647.99999), -2147483647l);
197
198
202 ok_eq_ulong(cast_double_to_ulong(0.999999999), 0ul);
203 ok_eq_ulong(cast_double_to_ulong(2147483648.0), 2147483648ul);
204 ok_eq_ulong(cast_double_to_ulong(4294967295.0), 4294967295ul);
206
207
211#ifdef OLD_BEHAVIOR
215#else
216 ok_eq_ulong(cast_double_to_ulong(-10.0), (
unsigned long)-10);
217 ok_eq_ulong(cast_double_to_ulong(-1147483648.0), (
unsigned long)-1147483648ll);
218 ok_eq_ulong(cast_double_to_ulong(-2147483648.0), (
unsigned long)-2147483648ll);
219#endif
220
221
229 ok_eq_longlong(cast_double_to_longlong(9223372036854775295.9), 9223372036854774784ll);
231 ok_eq_longlong(cast_double_to_longlong(-9223372036854775295.9), -9223372036854774784ll);
235
236
241 ok_eq_ulonglong(cast_double_to_ulonglong(9223372036854774784.0), 9223372036854774784ull);
242 ok_eq_ulonglong(cast_double_to_ulonglong(9223372036854775808.0), 9223372036854775808ull);
243 ok_eq_ulonglong(cast_double_to_ulonglong(18446744073709550591.9), 18446744073709549568ull);
244#ifndef __GNUC__
248#endif
249
250
253 ok_eq_ulonglong(cast_double_to_ulonglong(-1.0), 18446744073709551615ull);
254#ifdef OLD_BEHAVIOR
261#else
262 ok_eq_ulonglong(cast_double_to_ulonglong(-10.0), (
unsigned long long)-10);
263 ok_eq_ulonglong(cast_double_to_ulonglong(-1147483648.0), (
unsigned long long)-1147483648ll);
264 ok_eq_ulonglong(cast_double_to_ulonglong(-2147483648.0), (
unsigned long long)-2147483648ll);
265 ok_eq_ulonglong(cast_double_to_ulonglong(-9223372036854775000.0), (
unsigned long long)-9223372036854774784ll);
266 ok_eq_ulonglong(cast_double_to_ulonglong(-9223372036854775808.0), (
unsigned long long)(-9223372036854775807ll - 1));
267#endif
269}
#define ok_eq_ulong(value, expected)
#define ok_eq_longlong(value, expected)
#define ok_eq_long(value, expected)
#define ok_eq_ulonglong(value, expected)
#define ULONGLONG_OVERFLOW