diff options
-rw-r--r-- | src/test-performance.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/test-performance.cpp b/src/test-performance.cpp index 90397b7..26ae5d2 100644 --- a/src/test-performance.cpp +++ b/src/test-performance.cpp @@ -50,7 +50,9 @@ uint8_t generate_byte() template<typename T> T generate_value(T max = std::numeric_limits<T>::max()) { - uint64_t max_modulo{ static_cast<uint64_t>(0x100000000ULL) - (0x100000000ULL % (max + 1))}; + BOOST_REQUIRE_LE(max, 0xFFFFFFFFFFFFFFFF); + + uint64_t max_modulo{ static_cast<uint64_t>(0x100000000ULL) - (0x100000000ULL % (static_cast<uint64_t>(max) + 1))}; uint32_t value{}; do { @@ -59,7 +61,7 @@ T generate_value(T max = std::numeric_limits<T>::max()) } } while (static_cast<uint64_t>(value) >= max_modulo); - return static_cast<T>(value % (max + 1)); + return static_cast<T>(value % (static_cast<uint64_t>(max) + 1)); } // generates valid and invalid strings of different type @@ -91,7 +93,6 @@ std::u32string generate_string(char32_t max, size_t length) template<typename From, typename ToTypesCollectionType, size_t i = 0> void test_string_invalid(size_t length) { - //std::cerr << "LENGTH: " << length << std::endl; typedef typename std::tuple_element<i,ToTypesCollectionType>::type To; From r {static_cast<From>(generate_string_invalid<From>(length))}; @@ -196,6 +197,7 @@ void test_string_valid(char32_t max, size_t length, const std::string& descripti return unicode::convert<unicode::UTF_32, typename unicode::Encoding_t<typename From::value_type>>(s); }); + // Sanity check before performance tests for (size_t i = 0; i < list.size(); i++) { BOOST_CHECK(list[i].size() >= u32list[i].size()); To result{unicode::convert<typename unicode::Encoding_t<typename From::value_type>,typename unicode::Encoding_t<typename To::value_type>>(list[i])}; |