diff options
Diffstat (limited to 'libtests/qintc.cc')
-rw-r--r-- | libtests/qintc.cc | 73 |
1 files changed, 34 insertions, 39 deletions
diff --git a/libtests/qintc.cc b/libtests/qintc.cc index 85806d1a..d3e19f5b 100644 --- a/libtests/qintc.cc +++ b/libtests/qintc.cc @@ -8,22 +8,22 @@ #include <cassert> #define try_convert(exp_pass, fn, i) \ - try_convert_real(#fn "(" #i ")", exp_pass, fn, i) + try_convert_real(#fn "(" #i ")", exp_pass, fn, i) template <typename From, typename To> -static void try_convert_real( - char const* description, bool exp_pass, - To (*fn)(From const&), From const& i) +static void +try_convert_real( + char const* description, + bool exp_pass, + To (*fn)(From const&), + From const& i) { bool passed = false; - try - { + try { To result = fn(i); passed = true; std::cout << description << ": " << i << " " << result; - } - catch (std::range_error& e) - { + } catch (std::range_error& e) { std::cout << description << ": " << e.what(); passed = false; } @@ -31,22 +31,19 @@ static void try_convert_real( } #define try_range_check(exp_pass, a, b) \ - try_range_check_real(#a " + " #b, exp_pass, a, b) + try_range_check_real(#a " + " #b, exp_pass, a, b) template <typename T> -static void try_range_check_real( - char const* description, bool exp_pass, - T const& a, T const& b) +static void +try_range_check_real( + char const* description, bool exp_pass, T const& a, T const& b) { bool passed = false; - try - { + try { QIntC::range_check(a, b); std::cout << description << ": okay"; passed = true; - } - catch (std::range_error& e) - { + } catch (std::range_error& e) { std::cout << description << ": " << e.what(); passed = false; } @@ -54,29 +51,27 @@ static void try_range_check_real( } #define try_range_check_subtract(exp_pass, a, b) \ - try_range_check_subtract_real(#a " - " #b, exp_pass, a, b) + try_range_check_subtract_real(#a " - " #b, exp_pass, a, b) template <typename T> -static void try_range_check_subtract_real( - char const* description, bool exp_pass, - T const& a, T const& b) +static void +try_range_check_subtract_real( + char const* description, bool exp_pass, T const& a, T const& b) { bool passed = false; - try - { + try { QIntC::range_check_substract(a, b); std::cout << description << ": okay"; passed = true; - } - catch (std::range_error& e) - { + } catch (std::range_error& e) { std::cout << description << ": " << e.what(); passed = false; } std::cout << ((passed == exp_pass) ? " PASSED" : " FAILED") << std::endl; } -int main() +int +main() { uint32_t u1 = 3141592653U; // Too big for signed type int32_t i1 = -1153374643; // Same bit pattern as u1 @@ -84,28 +79,28 @@ int main() uint64_t ul2 = 12345; // Fits into 32-bit int32_t i2 = 81; // Fits in char and uchar signed char c1 = static_cast<signed char>('\xf7'); // Signed value when char - char c2 = 'W'; // char; may be signed or unsigned + char c2 = 'W'; // char; may be signed or unsigned // Verify i1 and u1 have same bit pattern assert(static_cast<uint32_t>(i1) == u1); // Verify that we can unsafely convert between signed and unsigned char assert(c1 == static_cast<signed char>(static_cast<unsigned char>(c1))); - try_convert(true, QIntC::to_int<int32_t>, i1); - try_convert(true, QIntC::to_uint<uint32_t>, u1); + try_convert(true, QIntC::to_int<int32_t>, i1); + try_convert(true, QIntC::to_uint<uint32_t>, u1); try_convert(false, QIntC::to_int<uint32_t>, u1); try_convert(false, QIntC::to_uint<int32_t>, i1); try_convert(false, QIntC::to_int<uint64_t>, ul1); - try_convert(true, QIntC::to_int<uint64_t>, ul2); - try_convert(true, QIntC::to_uint<uint64_t>, ul2); - try_convert(true, QIntC::to_offset<uint32_t>, u1); - try_convert(true, QIntC::to_offset<int32_t>, i1); + try_convert(true, QIntC::to_int<uint64_t>, ul2); + try_convert(true, QIntC::to_uint<uint64_t>, ul2); + try_convert(true, QIntC::to_offset<uint32_t>, u1); + try_convert(true, QIntC::to_offset<int32_t>, i1); try_convert(false, QIntC::to_ulonglong<int32_t>, i1); - try_convert(true, QIntC::to_char<int32_t>, i2); - try_convert(true, QIntC::to_uchar<int32_t>, i2); + try_convert(true, QIntC::to_char<int32_t>, i2); + try_convert(true, QIntC::to_uchar<int32_t>, i2); try_convert(false, QIntC::to_uchar<signed char>, c1); - try_convert(true, QIntC::to_uchar<char>, c2); - try_convert(true, QIntC::to_char<char>, c2); + try_convert(true, QIntC::to_uchar<char>, c2); + try_convert(true, QIntC::to_char<char>, c2); auto constexpr max_ll = std::numeric_limits<long long>::max(); auto constexpr max_ull = std::numeric_limits<unsigned long long>::max(); |