Minor fixes

This commit is contained in:
Daniel Lemire 2021-09-14 21:31:34 -04:00
parent 1b9150913e
commit b334317dd2
3 changed files with 8 additions and 2 deletions

View File

@ -124,7 +124,7 @@ struct span {
span(const T* _ptr, size_t _length) : ptr(_ptr), length(_length) {} span(const T* _ptr, size_t _length) : ptr(_ptr), length(_length) {}
span() : ptr(nullptr), length(0) {} span() : ptr(nullptr), length(0) {}
constexpr size_t len() noexcept { constexpr size_t len() const noexcept {
return length; return length;
} }

View File

@ -30,7 +30,12 @@ void all_32bit_values() {
std::cerr << "parsing error ? " << buffer << std::endl; std::cerr << "parsing error ? " << buffer << std::endl;
abort(); abort();
} }
if(copysign(1,result_value) != copysign(1,v)) { if (std::isnan(v)) {
if (!std::isnan(result_value)) {
std::cerr << "not nan" << buffer << std::endl;
abort();
}
} else if(copysign(1,result_value) != copysign(1,v)) {
std::cerr << "I got " << std::hexfloat << result_value << " but I was expecting " << v std::cerr << "I got " << std::hexfloat << result_value << " but I was expecting " << v
<< std::endl; << std::endl;
abort(); abort();

View File

@ -59,6 +59,7 @@ bool test() {
const char * end = input.data() + input.size(); const char * end = input.data() + input.size();
for(size_t i = 0; i < answers.size(); i++) { for(size_t i = 0; i < answers.size(); i++) {
T result_value; T result_value;
while((begin < end) && (std::isspace(*begin))) { begin++; }
auto result = fast_float::from_chars(begin, end, auto result = fast_float::from_chars(begin, end,
result_value); result_value);
if (result.ec != std::errc()) { if (result.ec != std::errc()) {