// Copyright (c) Microsoft Corporation. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception #ifndef TEST_HPP #define TEST_HPP #include #include #include #include using namespace std; inline constexpr float float_inf = numeric_limits::infinity(); inline constexpr float float_nan = numeric_limits::quiet_NaN(); inline constexpr float float_nan_payload = __builtin_nanf("1729"); inline constexpr double double_inf = numeric_limits::infinity(); inline constexpr double double_nan = numeric_limits::quiet_NaN(); inline constexpr double double_nan_payload = __builtin_nan("1729"); struct FloatFromCharsTestCase { const char* input; chars_format fmt; std::size_t correct_idx; errc correct_ec; float correct_value; }; struct FloatToCharsTestCase { float value; chars_format fmt; const char* correct; }; struct FloatPrecisionToCharsTestCase { float value; chars_format fmt; int precision; const char* correct; }; struct DoubleFromCharsTestCase { const char* input; chars_format fmt; std::size_t correct_idx; errc correct_ec; double correct_value; }; struct DoubleToCharsTestCase { double value; chars_format fmt; const char* correct; }; struct DoublePrecisionToCharsTestCase { double value; chars_format fmt; int precision; const char* correct; }; #endif // TEST_HPP