| // Checks if the long long and unsigned long long types work. |
| module long_long_runme; |
| |
| import std.conv; |
| import std.exception; |
| import long_long.long_long; |
| |
| void main() { |
| check_ll(0L); |
| check_ll(0x7FFFFFFFFFFFFFFFL); |
| check_ll(-10L); |
| |
| check_ull(0u); |
| check_ull(127u); |
| check_ull(128u); |
| check_ull(9223372036854775807u); //0x7FFFFFFFFFFFFFFFL |
| check_ull(18446744073709551615u); //0xFFFFFFFFFFFFFFFFL |
| } |
| |
| void check_ll(long value) { |
| ll = value; |
| long value_check = ll; |
| enforce(value == value_check, "Runtime test using long long failed: expected: " ~ |
| to!string(value) ~ ", got: " ~ to!string(value_check)); |
| } |
| |
| void check_ull(ulong value) { |
| ull = value; |
| ulong value_check = ull; |
| enforce(value == value_check, "Runtime test using unsigned long long failed: expected: " ~ |
| to!string(value) ~ ", ll_check=" ~ to!string(value_check)); |
| } |