This commit is contained in:
Daniel Lemire 2023-04-26 16:53:44 -04:00
parent acce5b4158
commit 545c184596

View File

@ -702,32 +702,33 @@ constexpr void check_basic_test_result(stringtype str,
#undef FASTFLOAT_CHECK_EQ
}
// We give plenty of memory: 2048 characters.
const size_t global_string_capacity = 2048;
std::u16string u16(global_string_capacity, '\0');
std::u32string u32(global_string_capacity, '\0');
template<Diag diag, class T>
constexpr void basic_test(std::string_view str, T expected, std::errc expected_ec = std::errc()) {
T actual;
auto result = fast_float::from_chars(str.data(), str.data() + str.size(), actual);
check_basic_test_result<diag>(str, result, actual, expected, expected_ec);
constexpr size_t global_string_capacity = 2048;
if(str.size() > global_string_capacity) {
return;
}
// We give plenty of memory: 2048 characters.
char16_t u16[global_string_capacity]{};
for (size_t i = 0; i < str.size(); i++) {
u16[i] = char16_t(str[i]);
}
auto result16 = fast_float::from_chars(u16.data(), u16.data() + str.size(), actual);
check_basic_test_result<diag>(std::u16string_view(u16.data(), str.size()), result16, actual, expected, expected_ec);
auto result16 = fast_float::from_chars(u16, u16 + str.size(), actual);
check_basic_test_result<diag>(std::u16string_view(u16, str.size()), result16, actual, expected, expected_ec);
char32_t u32[global_string_capacity]{};
for (size_t i = 0; i < str.size(); i++) {
u32[i] = char32_t(str[i]);
}
auto result32 = fast_float::from_chars(u32.data(), u32.data() + str.size(), actual);
check_basic_test_result<diag>(std::u32string_view(u32.data(), str.size()), result32, actual, expected, expected_ec);
auto result32 = fast_float::from_chars(u32, u32 + str.size(), actual);
check_basic_test_result<diag>(std::u32string_view(u32, str.size()), result32, actual, expected, expected_ec);
}
template<Diag diag, class T>