/****************************************************************************** The MIT License(MIT) Embedded Template Library. https://github.com/ETLCPP/etl https://www.etlcpp.com Copyright(c) 2018 John Wellbelove Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files(the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions : The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ******************************************************************************/ #include "unit_test_framework.h" #include "etl/limits.h" #include namespace { SUITE(test_limits) { //************************************************************************* TEST(test_bool) { typedef etl::numeric_limits ETL_NL; typedef std::numeric_limits STD_NL; CHECK(STD_NL::denorm_min() == ETL_NL::denorm_min()); CHECK(STD_NL::digits == ETL_NL::digits); CHECK(STD_NL::digits10 == ETL_NL::digits10); CHECK(STD_NL::epsilon() == ETL_NL::epsilon()); CHECK(int(STD_NL::has_denorm) == int(ETL_NL::has_denorm)); CHECK(STD_NL::has_denorm_loss == ETL_NL::has_denorm_loss); CHECK(STD_NL::has_infinity == ETL_NL::has_infinity); CHECK(STD_NL::has_quiet_NaN == ETL_NL::has_quiet_NaN); CHECK(STD_NL::has_signaling_NaN == ETL_NL::has_signaling_NaN); CHECK(STD_NL::infinity() == ETL_NL::infinity()); CHECK(STD_NL::is_bounded == ETL_NL::is_bounded); CHECK(STD_NL::is_exact == ETL_NL::is_exact); CHECK(STD_NL::is_iec559 == ETL_NL::is_iec559); CHECK(STD_NL::is_integer == ETL_NL::is_integer); CHECK(STD_NL::is_modulo == ETL_NL::is_modulo); CHECK(STD_NL::is_signed == ETL_NL::is_signed); CHECK(STD_NL::is_specialized == ETL_NL::is_specialized); CHECK(STD_NL::lowest() == ETL_NL::lowest()); CHECK(STD_NL::max() == ETL_NL::max()); CHECK(STD_NL::max_digits10 == ETL_NL::max_digits10); CHECK(STD_NL::max_exponent == ETL_NL::max_exponent); CHECK(STD_NL::max_exponent10 == ETL_NL::max_exponent10); CHECK(STD_NL::min() == ETL_NL::min()); CHECK(STD_NL::min_exponent == ETL_NL::min_exponent); CHECK(STD_NL::min_exponent10 == ETL_NL::min_exponent10); CHECK(STD_NL::quiet_NaN() == ETL_NL::quiet_NaN()); CHECK(STD_NL::radix == ETL_NL::radix); CHECK(STD_NL::round_error() == ETL_NL::round_error()); CHECK(int(STD_NL::round_style) == int(ETL_NL::round_style)); CHECK(STD_NL::signaling_NaN() == ETL_NL::signaling_NaN()); CHECK(STD_NL::tinyness_before == ETL_NL::tinyness_before); } //************************************************************************* TEST(test_char) { typedef etl::numeric_limits ETL_NL; typedef std::numeric_limits STD_NL; CHECK(STD_NL::denorm_min() == ETL_NL::denorm_min()); CHECK(STD_NL::digits == ETL_NL::digits); CHECK(STD_NL::digits10 == ETL_NL::digits10); CHECK(STD_NL::epsilon() == ETL_NL::epsilon()); CHECK(int(STD_NL::has_denorm) == int(ETL_NL::has_denorm)); CHECK(STD_NL::has_denorm_loss == ETL_NL::has_denorm_loss); CHECK(STD_NL::has_infinity == ETL_NL::has_infinity); CHECK(STD_NL::has_quiet_NaN == ETL_NL::has_quiet_NaN); CHECK(STD_NL::has_signaling_NaN == ETL_NL::has_signaling_NaN); CHECK(STD_NL::infinity() == ETL_NL::infinity()); CHECK(STD_NL::is_bounded == ETL_NL::is_bounded); CHECK(STD_NL::is_exact == ETL_NL::is_exact); CHECK(STD_NL::is_iec559 == ETL_NL::is_iec559); CHECK(STD_NL::is_integer == ETL_NL::is_integer); CHECK(STD_NL::is_modulo == ETL_NL::is_modulo); CHECK(STD_NL::is_signed == ETL_NL::is_signed); CHECK(STD_NL::is_specialized == ETL_NL::is_specialized); CHECK(STD_NL::lowest() == ETL_NL::lowest()); CHECK(STD_NL::max() == ETL_NL::max()); CHECK(STD_NL::max_digits10 == ETL_NL::max_digits10); CHECK(STD_NL::max_exponent == ETL_NL::max_exponent); CHECK(STD_NL::max_exponent10 == ETL_NL::max_exponent10); CHECK(STD_NL::min() == ETL_NL::min()); CHECK(STD_NL::min_exponent == ETL_NL::min_exponent); CHECK(STD_NL::min_exponent10 == ETL_NL::min_exponent10); CHECK(STD_NL::quiet_NaN() == ETL_NL::quiet_NaN()); CHECK(STD_NL::radix == ETL_NL::radix); CHECK(STD_NL::round_error() == ETL_NL::round_error()); CHECK(int(STD_NL::round_style) == int(ETL_NL::round_style)); CHECK(STD_NL::signaling_NaN() == ETL_NL::signaling_NaN()); CHECK(STD_NL::tinyness_before == ETL_NL::tinyness_before); } //************************************************************************* TEST(test_unsigned_char) { typedef etl::numeric_limits ETL_NL; typedef std::numeric_limits STD_NL; CHECK(STD_NL::denorm_min() == ETL_NL::denorm_min()); CHECK(STD_NL::digits == ETL_NL::digits); CHECK(STD_NL::digits10 == ETL_NL::digits10); CHECK(STD_NL::epsilon() == ETL_NL::epsilon()); CHECK(int(STD_NL::has_denorm) == int(ETL_NL::has_denorm)); CHECK(STD_NL::has_denorm_loss == ETL_NL::has_denorm_loss); CHECK(STD_NL::has_infinity == ETL_NL::has_infinity); CHECK(STD_NL::has_quiet_NaN == ETL_NL::has_quiet_NaN); CHECK(STD_NL::has_signaling_NaN == ETL_NL::has_signaling_NaN); CHECK(STD_NL::infinity() == ETL_NL::infinity()); CHECK(STD_NL::is_bounded == ETL_NL::is_bounded); CHECK(STD_NL::is_exact == ETL_NL::is_exact); CHECK(STD_NL::is_iec559 == ETL_NL::is_iec559); CHECK(STD_NL::is_integer == ETL_NL::is_integer); CHECK(STD_NL::is_modulo == ETL_NL::is_modulo); CHECK(STD_NL::is_signed == ETL_NL::is_signed); CHECK(STD_NL::is_specialized == ETL_NL::is_specialized); CHECK(STD_NL::lowest() == ETL_NL::lowest()); CHECK(STD_NL::max() == ETL_NL::max()); CHECK(STD_NL::max_digits10 == ETL_NL::max_digits10); CHECK(STD_NL::max_exponent == ETL_NL::max_exponent); CHECK(STD_NL::max_exponent10 == ETL_NL::max_exponent10); CHECK(STD_NL::min() == ETL_NL::min()); CHECK(STD_NL::min_exponent == ETL_NL::min_exponent); CHECK(STD_NL::min_exponent10 == ETL_NL::min_exponent10); CHECK(STD_NL::quiet_NaN() == ETL_NL::quiet_NaN()); CHECK(STD_NL::radix == ETL_NL::radix); CHECK(STD_NL::round_error() == ETL_NL::round_error()); CHECK(int(STD_NL::round_style) == int(ETL_NL::round_style)); CHECK(STD_NL::signaling_NaN() == ETL_NL::signaling_NaN()); CHECK(STD_NL::tinyness_before == ETL_NL::tinyness_before); } //************************************************************************* TEST(test_signed_char) { typedef etl::numeric_limits ETL_NL; typedef std::numeric_limits STD_NL; CHECK(STD_NL::denorm_min() == ETL_NL::denorm_min()); CHECK(STD_NL::digits == ETL_NL::digits); CHECK(STD_NL::digits10 == ETL_NL::digits10); CHECK(STD_NL::epsilon() == ETL_NL::epsilon()); CHECK(int(STD_NL::has_denorm) == int(ETL_NL::has_denorm)); CHECK(STD_NL::has_denorm_loss == ETL_NL::has_denorm_loss); CHECK(STD_NL::has_infinity == ETL_NL::has_infinity); CHECK(STD_NL::has_quiet_NaN == ETL_NL::has_quiet_NaN); CHECK(STD_NL::has_signaling_NaN == ETL_NL::has_signaling_NaN); CHECK(STD_NL::infinity() == ETL_NL::infinity()); CHECK(STD_NL::is_bounded == ETL_NL::is_bounded); CHECK(STD_NL::is_exact == ETL_NL::is_exact); CHECK(STD_NL::is_iec559 == ETL_NL::is_iec559); CHECK(STD_NL::is_integer == ETL_NL::is_integer); CHECK(STD_NL::is_modulo == ETL_NL::is_modulo); CHECK(STD_NL::is_signed == ETL_NL::is_signed); CHECK(STD_NL::is_specialized == ETL_NL::is_specialized); CHECK(STD_NL::lowest() == ETL_NL::lowest()); CHECK(STD_NL::max() == ETL_NL::max()); CHECK(STD_NL::max_digits10 == ETL_NL::max_digits10); CHECK(STD_NL::max_exponent == ETL_NL::max_exponent); CHECK(STD_NL::max_exponent10 == ETL_NL::max_exponent10); CHECK(STD_NL::min() == ETL_NL::min()); CHECK(STD_NL::min_exponent == ETL_NL::min_exponent); CHECK(STD_NL::min_exponent10 == ETL_NL::min_exponent10); CHECK(STD_NL::quiet_NaN() == ETL_NL::quiet_NaN()); CHECK(STD_NL::radix == ETL_NL::radix); CHECK(STD_NL::round_error() == ETL_NL::round_error()); CHECK(int(STD_NL::round_style) == int(ETL_NL::round_style)); CHECK(STD_NL::signaling_NaN() == ETL_NL::signaling_NaN()); CHECK(STD_NL::tinyness_before == ETL_NL::tinyness_before); } //************************************************************************* TEST(test_char16_t) { typedef etl::numeric_limits ETL_NL; typedef std::numeric_limits STD_NL; CHECK(STD_NL::denorm_min() == ETL_NL::denorm_min()); CHECK(STD_NL::digits == ETL_NL::digits); CHECK(STD_NL::digits10 == ETL_NL::digits10); CHECK(STD_NL::epsilon() == ETL_NL::epsilon()); CHECK(int(STD_NL::has_denorm) == int(ETL_NL::has_denorm)); CHECK(STD_NL::has_denorm_loss == ETL_NL::has_denorm_loss); CHECK(STD_NL::has_infinity == ETL_NL::has_infinity); CHECK(STD_NL::has_quiet_NaN == ETL_NL::has_quiet_NaN); CHECK(STD_NL::has_signaling_NaN == ETL_NL::has_signaling_NaN); CHECK(STD_NL::infinity() == ETL_NL::infinity()); CHECK(STD_NL::is_bounded == ETL_NL::is_bounded); CHECK(STD_NL::is_exact == ETL_NL::is_exact); CHECK(STD_NL::is_iec559 == ETL_NL::is_iec559); CHECK(STD_NL::is_integer == ETL_NL::is_integer); CHECK(STD_NL::is_modulo == ETL_NL::is_modulo); CHECK(STD_NL::is_signed == ETL_NL::is_signed); CHECK(STD_NL::is_specialized == ETL_NL::is_specialized); CHECK(STD_NL::lowest() == ETL_NL::lowest()); CHECK(STD_NL::max() == ETL_NL::max()); CHECK(STD_NL::max_digits10 == ETL_NL::max_digits10); CHECK(STD_NL::max_exponent == ETL_NL::max_exponent); CHECK(STD_NL::max_exponent10 == ETL_NL::max_exponent10); CHECK(STD_NL::min() == ETL_NL::min()); CHECK(STD_NL::min_exponent == ETL_NL::min_exponent); CHECK(STD_NL::min_exponent10 == ETL_NL::min_exponent10); CHECK(STD_NL::quiet_NaN() == ETL_NL::quiet_NaN()); CHECK(STD_NL::radix == ETL_NL::radix); CHECK(STD_NL::round_error() == ETL_NL::round_error()); CHECK(int(STD_NL::round_style) == int(ETL_NL::round_style)); CHECK(STD_NL::signaling_NaN() == ETL_NL::signaling_NaN()); CHECK(STD_NL::tinyness_before == ETL_NL::tinyness_before); } //************************************************************************* TEST(test_char32_t) { typedef etl::numeric_limits ETL_NL; typedef std::numeric_limits STD_NL; CHECK(STD_NL::denorm_min() == ETL_NL::denorm_min()); CHECK(STD_NL::digits == ETL_NL::digits); CHECK(STD_NL::digits10 == ETL_NL::digits10); CHECK(STD_NL::epsilon() == ETL_NL::epsilon()); CHECK(int(STD_NL::has_denorm) == int(ETL_NL::has_denorm)); CHECK(STD_NL::has_denorm_loss == ETL_NL::has_denorm_loss); CHECK(STD_NL::has_infinity == ETL_NL::has_infinity); CHECK(STD_NL::has_quiet_NaN == ETL_NL::has_quiet_NaN); CHECK(STD_NL::has_signaling_NaN == ETL_NL::has_signaling_NaN); CHECK(STD_NL::infinity() == ETL_NL::infinity()); CHECK(STD_NL::is_bounded == ETL_NL::is_bounded); CHECK(STD_NL::is_exact == ETL_NL::is_exact); CHECK(STD_NL::is_iec559 == ETL_NL::is_iec559); CHECK(STD_NL::is_integer == ETL_NL::is_integer); CHECK(STD_NL::is_modulo == ETL_NL::is_modulo); CHECK(STD_NL::is_signed == ETL_NL::is_signed); CHECK(STD_NL::is_specialized == ETL_NL::is_specialized); CHECK(STD_NL::lowest() == ETL_NL::lowest()); CHECK(STD_NL::max() == ETL_NL::max()); CHECK(STD_NL::max_digits10 == ETL_NL::max_digits10); CHECK(STD_NL::max_exponent == ETL_NL::max_exponent); CHECK(STD_NL::max_exponent10 == ETL_NL::max_exponent10); CHECK(STD_NL::min() == ETL_NL::min()); CHECK(STD_NL::min_exponent == ETL_NL::min_exponent); CHECK(STD_NL::min_exponent10 == ETL_NL::min_exponent10); CHECK(STD_NL::quiet_NaN() == ETL_NL::quiet_NaN()); CHECK(STD_NL::radix == ETL_NL::radix); CHECK(STD_NL::round_error() == ETL_NL::round_error()); CHECK(int(STD_NL::round_style) == int(ETL_NL::round_style)); CHECK(STD_NL::signaling_NaN() == ETL_NL::signaling_NaN()); CHECK(STD_NL::tinyness_before == ETL_NL::tinyness_before); } //************************************************************************* TEST(test_wchar_t) { typedef etl::numeric_limits ETL_NL; typedef std::numeric_limits STD_NL; CHECK(STD_NL::denorm_min() == ETL_NL::denorm_min()); CHECK(STD_NL::digits == ETL_NL::digits); CHECK(STD_NL::digits10 == ETL_NL::digits10); CHECK(STD_NL::epsilon() == ETL_NL::epsilon()); CHECK(int(STD_NL::has_denorm) == int(ETL_NL::has_denorm)); CHECK(STD_NL::has_denorm_loss == ETL_NL::has_denorm_loss); CHECK(STD_NL::has_infinity == ETL_NL::has_infinity); CHECK(STD_NL::has_quiet_NaN == ETL_NL::has_quiet_NaN); CHECK(STD_NL::has_signaling_NaN == ETL_NL::has_signaling_NaN); CHECK(STD_NL::infinity() == ETL_NL::infinity()); CHECK(STD_NL::is_bounded == ETL_NL::is_bounded); CHECK(STD_NL::is_exact == ETL_NL::is_exact); CHECK(STD_NL::is_iec559 == ETL_NL::is_iec559); CHECK(STD_NL::is_integer == ETL_NL::is_integer); CHECK(STD_NL::is_modulo == ETL_NL::is_modulo); CHECK(STD_NL::is_signed == ETL_NL::is_signed); CHECK(STD_NL::is_specialized == ETL_NL::is_specialized); CHECK(STD_NL::lowest() == ETL_NL::lowest()); CHECK(STD_NL::max() == ETL_NL::max()); CHECK(STD_NL::max_digits10 == ETL_NL::max_digits10); CHECK(STD_NL::max_exponent == ETL_NL::max_exponent); CHECK(STD_NL::max_exponent10 == ETL_NL::max_exponent10); CHECK(STD_NL::min() == ETL_NL::min()); CHECK(STD_NL::min_exponent == ETL_NL::min_exponent); CHECK(STD_NL::min_exponent10 == ETL_NL::min_exponent10); CHECK(STD_NL::quiet_NaN() == ETL_NL::quiet_NaN()); CHECK(STD_NL::radix == ETL_NL::radix); CHECK(STD_NL::round_error() == ETL_NL::round_error()); CHECK(int(STD_NL::round_style) == int(ETL_NL::round_style)); CHECK(STD_NL::signaling_NaN() == ETL_NL::signaling_NaN()); CHECK(STD_NL::tinyness_before == ETL_NL::tinyness_before); } //************************************************************************* TEST(test_short) { typedef etl::numeric_limits ETL_NL; typedef std::numeric_limits STD_NL; CHECK(STD_NL::denorm_min() == ETL_NL::denorm_min()); CHECK(STD_NL::digits == ETL_NL::digits); CHECK(STD_NL::digits10 == ETL_NL::digits10); CHECK(STD_NL::epsilon() == ETL_NL::epsilon()); CHECK(int(STD_NL::has_denorm) == int(ETL_NL::has_denorm)); CHECK(STD_NL::has_denorm_loss == ETL_NL::has_denorm_loss); CHECK(STD_NL::has_infinity == ETL_NL::has_infinity); CHECK(STD_NL::has_quiet_NaN == ETL_NL::has_quiet_NaN); CHECK(STD_NL::has_signaling_NaN == ETL_NL::has_signaling_NaN); CHECK(STD_NL::infinity() == ETL_NL::infinity()); CHECK(STD_NL::is_bounded == ETL_NL::is_bounded); CHECK(STD_NL::is_exact == ETL_NL::is_exact); CHECK(STD_NL::is_iec559 == ETL_NL::is_iec559); CHECK(STD_NL::is_integer == ETL_NL::is_integer); CHECK(STD_NL::is_modulo == ETL_NL::is_modulo); CHECK(STD_NL::is_signed == ETL_NL::is_signed); CHECK(STD_NL::is_specialized == ETL_NL::is_specialized); CHECK(STD_NL::lowest() == ETL_NL::lowest()); CHECK(STD_NL::max() == ETL_NL::max()); CHECK(STD_NL::max_digits10 == ETL_NL::max_digits10); CHECK(STD_NL::max_exponent == ETL_NL::max_exponent); CHECK(STD_NL::max_exponent10 == ETL_NL::max_exponent10); CHECK(STD_NL::min() == ETL_NL::min()); CHECK(STD_NL::min_exponent == ETL_NL::min_exponent); CHECK(STD_NL::min_exponent10 == ETL_NL::min_exponent10); CHECK(STD_NL::quiet_NaN() == ETL_NL::quiet_NaN()); CHECK(STD_NL::radix == ETL_NL::radix); CHECK(STD_NL::round_error() == ETL_NL::round_error()); CHECK(int(STD_NL::round_style) == int(ETL_NL::round_style)); CHECK(STD_NL::signaling_NaN() == ETL_NL::signaling_NaN()); CHECK(STD_NL::tinyness_before == ETL_NL::tinyness_before); } //************************************************************************* TEST(test_unsigned_short) { typedef etl::numeric_limits ETL_NL; typedef std::numeric_limits STD_NL; CHECK(STD_NL::denorm_min() == ETL_NL::denorm_min()); CHECK(STD_NL::digits == ETL_NL::digits); CHECK(STD_NL::digits10 == ETL_NL::digits10); CHECK(STD_NL::epsilon() == ETL_NL::epsilon()); CHECK(int(STD_NL::has_denorm) == int(ETL_NL::has_denorm)); CHECK(STD_NL::has_denorm_loss == ETL_NL::has_denorm_loss); CHECK(STD_NL::has_infinity == ETL_NL::has_infinity); CHECK(STD_NL::has_quiet_NaN == ETL_NL::has_quiet_NaN); CHECK(STD_NL::has_signaling_NaN == ETL_NL::has_signaling_NaN); CHECK(STD_NL::infinity() == ETL_NL::infinity()); CHECK(STD_NL::is_bounded == ETL_NL::is_bounded); CHECK(STD_NL::is_exact == ETL_NL::is_exact); CHECK(STD_NL::is_iec559 == ETL_NL::is_iec559); CHECK(STD_NL::is_integer == ETL_NL::is_integer); CHECK(STD_NL::is_modulo == ETL_NL::is_modulo); CHECK(STD_NL::is_signed == ETL_NL::is_signed); CHECK(STD_NL::is_specialized == ETL_NL::is_specialized); CHECK(STD_NL::lowest() == ETL_NL::lowest()); CHECK(STD_NL::max() == ETL_NL::max()); CHECK(STD_NL::max_digits10 == ETL_NL::max_digits10); CHECK(STD_NL::max_exponent == ETL_NL::max_exponent); CHECK(STD_NL::max_exponent10 == ETL_NL::max_exponent10); CHECK(STD_NL::min() == ETL_NL::min()); CHECK(STD_NL::min_exponent == ETL_NL::min_exponent); CHECK(STD_NL::min_exponent10 == ETL_NL::min_exponent10); CHECK(STD_NL::quiet_NaN() == ETL_NL::quiet_NaN()); CHECK(STD_NL::radix == ETL_NL::radix); CHECK(STD_NL::round_error() == ETL_NL::round_error()); CHECK(int(STD_NL::round_style) == int(ETL_NL::round_style)); CHECK(STD_NL::signaling_NaN() == ETL_NL::signaling_NaN()); CHECK(STD_NL::tinyness_before == ETL_NL::tinyness_before); } //************************************************************************* TEST(test_int) { typedef etl::numeric_limits ETL_NL; typedef std::numeric_limits STD_NL; CHECK(STD_NL::denorm_min() == ETL_NL::denorm_min()); CHECK(STD_NL::digits == ETL_NL::digits); CHECK(STD_NL::digits10 == ETL_NL::digits10); CHECK(STD_NL::epsilon() == ETL_NL::epsilon()); CHECK(int(STD_NL::has_denorm) == int(ETL_NL::has_denorm)); CHECK(STD_NL::has_denorm_loss == ETL_NL::has_denorm_loss); CHECK(STD_NL::has_infinity == ETL_NL::has_infinity); CHECK(STD_NL::has_quiet_NaN == ETL_NL::has_quiet_NaN); CHECK(STD_NL::has_signaling_NaN == ETL_NL::has_signaling_NaN); CHECK(STD_NL::infinity() == ETL_NL::infinity()); CHECK(STD_NL::is_bounded == ETL_NL::is_bounded); CHECK(STD_NL::is_exact == ETL_NL::is_exact); CHECK(STD_NL::is_iec559 == ETL_NL::is_iec559); CHECK(STD_NL::is_integer == ETL_NL::is_integer); CHECK(STD_NL::is_modulo == ETL_NL::is_modulo); CHECK(STD_NL::is_signed == ETL_NL::is_signed); CHECK(STD_NL::is_specialized == ETL_NL::is_specialized); CHECK(STD_NL::lowest() == ETL_NL::lowest()); CHECK(STD_NL::max() == ETL_NL::max()); CHECK(STD_NL::max_digits10 == ETL_NL::max_digits10); CHECK(STD_NL::max_exponent == ETL_NL::max_exponent); CHECK(STD_NL::max_exponent10 == ETL_NL::max_exponent10); CHECK(STD_NL::min() == ETL_NL::min()); CHECK(STD_NL::min_exponent == ETL_NL::min_exponent); CHECK(STD_NL::min_exponent10 == ETL_NL::min_exponent10); CHECK(STD_NL::quiet_NaN() == ETL_NL::quiet_NaN()); CHECK(STD_NL::radix == ETL_NL::radix); CHECK(STD_NL::round_error() == ETL_NL::round_error()); CHECK(int(STD_NL::round_style) == int(ETL_NL::round_style)); CHECK(STD_NL::signaling_NaN() == ETL_NL::signaling_NaN()); CHECK(STD_NL::tinyness_before == ETL_NL::tinyness_before); } //************************************************************************* TEST(test_unsigned_int) { typedef etl::numeric_limits ETL_NL; typedef std::numeric_limits STD_NL; CHECK(STD_NL::denorm_min() == ETL_NL::denorm_min()); CHECK(STD_NL::digits == ETL_NL::digits); CHECK(STD_NL::digits10 == ETL_NL::digits10); CHECK(STD_NL::epsilon() == ETL_NL::epsilon()); CHECK(int(STD_NL::has_denorm) == int(ETL_NL::has_denorm)); CHECK(STD_NL::has_denorm_loss == ETL_NL::has_denorm_loss); CHECK(STD_NL::has_infinity == ETL_NL::has_infinity); CHECK(STD_NL::has_quiet_NaN == ETL_NL::has_quiet_NaN); CHECK(STD_NL::has_signaling_NaN == ETL_NL::has_signaling_NaN); CHECK(STD_NL::infinity() == ETL_NL::infinity()); CHECK(STD_NL::is_bounded == ETL_NL::is_bounded); CHECK(STD_NL::is_exact == ETL_NL::is_exact); CHECK(STD_NL::is_iec559 == ETL_NL::is_iec559); CHECK(STD_NL::is_integer == ETL_NL::is_integer); CHECK(STD_NL::is_modulo == ETL_NL::is_modulo); CHECK(STD_NL::is_signed == ETL_NL::is_signed); CHECK(STD_NL::is_specialized == ETL_NL::is_specialized); CHECK(STD_NL::lowest() == ETL_NL::lowest()); CHECK(STD_NL::max() == ETL_NL::max()); CHECK(STD_NL::max_digits10 == ETL_NL::max_digits10); CHECK(STD_NL::max_exponent == ETL_NL::max_exponent); CHECK(STD_NL::max_exponent10 == ETL_NL::max_exponent10); CHECK(STD_NL::min() == ETL_NL::min()); CHECK(STD_NL::min_exponent == ETL_NL::min_exponent); CHECK(STD_NL::min_exponent10 == ETL_NL::min_exponent10); CHECK(STD_NL::quiet_NaN() == ETL_NL::quiet_NaN()); CHECK(STD_NL::radix == ETL_NL::radix); CHECK(STD_NL::round_error() == ETL_NL::round_error()); CHECK(int(STD_NL::round_style) == int(ETL_NL::round_style)); CHECK(STD_NL::signaling_NaN() == ETL_NL::signaling_NaN()); CHECK(STD_NL::tinyness_before == ETL_NL::tinyness_before); } //************************************************************************* TEST(test_long) { typedef etl::numeric_limits ETL_NL; typedef std::numeric_limits STD_NL; CHECK(STD_NL::denorm_min() == ETL_NL::denorm_min()); CHECK(STD_NL::digits == ETL_NL::digits); CHECK(STD_NL::digits10 == ETL_NL::digits10); CHECK(STD_NL::epsilon() == ETL_NL::epsilon()); CHECK(int(STD_NL::has_denorm) == int(ETL_NL::has_denorm)); CHECK(STD_NL::has_denorm_loss == ETL_NL::has_denorm_loss); CHECK(STD_NL::has_infinity == ETL_NL::has_infinity); CHECK(STD_NL::has_quiet_NaN == ETL_NL::has_quiet_NaN); CHECK(STD_NL::has_signaling_NaN == ETL_NL::has_signaling_NaN); CHECK(STD_NL::infinity() == ETL_NL::infinity()); CHECK(STD_NL::is_bounded == ETL_NL::is_bounded); CHECK(STD_NL::is_exact == ETL_NL::is_exact); CHECK(STD_NL::is_iec559 == ETL_NL::is_iec559); CHECK(STD_NL::is_integer == ETL_NL::is_integer); CHECK(STD_NL::is_modulo == ETL_NL::is_modulo); CHECK(STD_NL::is_signed == ETL_NL::is_signed); CHECK(STD_NL::is_specialized == ETL_NL::is_specialized); CHECK(STD_NL::lowest() == ETL_NL::lowest()); CHECK(STD_NL::max() == ETL_NL::max()); CHECK(STD_NL::max_digits10 == ETL_NL::max_digits10); CHECK(STD_NL::max_exponent == ETL_NL::max_exponent); CHECK(STD_NL::max_exponent10 == ETL_NL::max_exponent10); CHECK(STD_NL::min() == ETL_NL::min()); CHECK(STD_NL::min_exponent == ETL_NL::min_exponent); CHECK(STD_NL::min_exponent10 == ETL_NL::min_exponent10); CHECK(STD_NL::quiet_NaN() == ETL_NL::quiet_NaN()); CHECK(STD_NL::radix == ETL_NL::radix); CHECK(STD_NL::round_error() == ETL_NL::round_error()); CHECK(int(STD_NL::round_style) == int(ETL_NL::round_style)); CHECK(STD_NL::signaling_NaN() == ETL_NL::signaling_NaN()); CHECK(STD_NL::tinyness_before == ETL_NL::tinyness_before); } //************************************************************************* TEST(test_unsigned_long) { typedef etl::numeric_limits ETL_NL; typedef std::numeric_limits STD_NL; CHECK(STD_NL::denorm_min() == ETL_NL::denorm_min()); CHECK(STD_NL::digits == ETL_NL::digits); CHECK(STD_NL::digits10 == ETL_NL::digits10); CHECK(STD_NL::epsilon() == ETL_NL::epsilon()); CHECK(int(STD_NL::has_denorm) == int(ETL_NL::has_denorm)); CHECK(STD_NL::has_denorm_loss == ETL_NL::has_denorm_loss); CHECK(STD_NL::has_infinity == ETL_NL::has_infinity); CHECK(STD_NL::has_quiet_NaN == ETL_NL::has_quiet_NaN); CHECK(STD_NL::has_signaling_NaN == ETL_NL::has_signaling_NaN); CHECK(STD_NL::infinity() == ETL_NL::infinity()); CHECK(STD_NL::is_bounded == ETL_NL::is_bounded); CHECK(STD_NL::is_exact == ETL_NL::is_exact); CHECK(STD_NL::is_iec559 == ETL_NL::is_iec559); CHECK(STD_NL::is_integer == ETL_NL::is_integer); CHECK(STD_NL::is_modulo == ETL_NL::is_modulo); CHECK(STD_NL::is_signed == ETL_NL::is_signed); CHECK(STD_NL::is_specialized == ETL_NL::is_specialized); CHECK(STD_NL::lowest() == ETL_NL::lowest()); CHECK(STD_NL::max() == ETL_NL::max()); CHECK(STD_NL::max_digits10 == ETL_NL::max_digits10); CHECK(STD_NL::max_exponent == ETL_NL::max_exponent); CHECK(STD_NL::max_exponent10 == ETL_NL::max_exponent10); CHECK(STD_NL::min() == ETL_NL::min()); CHECK(STD_NL::min_exponent == ETL_NL::min_exponent); CHECK(STD_NL::min_exponent10 == ETL_NL::min_exponent10); CHECK(STD_NL::quiet_NaN() == ETL_NL::quiet_NaN()); CHECK(STD_NL::radix == ETL_NL::radix); CHECK(STD_NL::round_error() == ETL_NL::round_error()); CHECK(int(STD_NL::round_style) == int(ETL_NL::round_style)); CHECK(STD_NL::signaling_NaN() == ETL_NL::signaling_NaN()); CHECK(STD_NL::tinyness_before == ETL_NL::tinyness_before); } //************************************************************************* TEST(test_long_long) { typedef etl::numeric_limits ETL_NL; typedef std::numeric_limits STD_NL; CHECK(STD_NL::denorm_min() == ETL_NL::denorm_min()); CHECK(STD_NL::digits == ETL_NL::digits); CHECK(STD_NL::digits10 == ETL_NL::digits10); CHECK(STD_NL::epsilon() == ETL_NL::epsilon()); CHECK(int(STD_NL::has_denorm) == int(ETL_NL::has_denorm)); CHECK(STD_NL::has_denorm_loss == ETL_NL::has_denorm_loss); CHECK(STD_NL::has_infinity == ETL_NL::has_infinity); CHECK(STD_NL::has_quiet_NaN == ETL_NL::has_quiet_NaN); CHECK(STD_NL::has_signaling_NaN == ETL_NL::has_signaling_NaN); CHECK(STD_NL::infinity() == ETL_NL::infinity()); CHECK(STD_NL::is_bounded == ETL_NL::is_bounded); CHECK(STD_NL::is_exact == ETL_NL::is_exact); CHECK(STD_NL::is_iec559 == ETL_NL::is_iec559); CHECK(STD_NL::is_integer == ETL_NL::is_integer); CHECK(STD_NL::is_modulo == ETL_NL::is_modulo); CHECK(STD_NL::is_signed == ETL_NL::is_signed); CHECK(STD_NL::is_specialized == ETL_NL::is_specialized); CHECK(STD_NL::lowest() == ETL_NL::lowest()); CHECK(STD_NL::max() == ETL_NL::max()); CHECK(STD_NL::max_digits10 == ETL_NL::max_digits10); CHECK(STD_NL::max_exponent == ETL_NL::max_exponent); CHECK(STD_NL::max_exponent10 == ETL_NL::max_exponent10); CHECK(STD_NL::min() == ETL_NL::min()); CHECK(STD_NL::min_exponent == ETL_NL::min_exponent); CHECK(STD_NL::min_exponent10 == ETL_NL::min_exponent10); CHECK(STD_NL::quiet_NaN() == ETL_NL::quiet_NaN()); CHECK(STD_NL::radix == ETL_NL::radix); CHECK(STD_NL::round_error() == ETL_NL::round_error()); CHECK(int(STD_NL::round_style) == int(ETL_NL::round_style)); CHECK(STD_NL::signaling_NaN() == ETL_NL::signaling_NaN()); CHECK(STD_NL::tinyness_before == ETL_NL::tinyness_before); } //************************************************************************* TEST(test_unsigned_long_long) { typedef etl::numeric_limits ETL_NL; typedef std::numeric_limits STD_NL; CHECK(STD_NL::denorm_min() == ETL_NL::denorm_min()); CHECK(STD_NL::digits == ETL_NL::digits); CHECK(STD_NL::digits10 == ETL_NL::digits10); CHECK(STD_NL::epsilon() == ETL_NL::epsilon()); CHECK(int(STD_NL::has_denorm) == int(ETL_NL::has_denorm)); CHECK(STD_NL::has_denorm_loss == ETL_NL::has_denorm_loss); CHECK(STD_NL::has_infinity == ETL_NL::has_infinity); CHECK(STD_NL::has_quiet_NaN == ETL_NL::has_quiet_NaN); CHECK(STD_NL::has_signaling_NaN == ETL_NL::has_signaling_NaN); CHECK(STD_NL::infinity() == ETL_NL::infinity()); CHECK(STD_NL::is_bounded == ETL_NL::is_bounded); CHECK(STD_NL::is_exact == ETL_NL::is_exact); CHECK(STD_NL::is_iec559 == ETL_NL::is_iec559); CHECK(STD_NL::is_integer == ETL_NL::is_integer); CHECK(STD_NL::is_modulo == ETL_NL::is_modulo); CHECK(STD_NL::is_signed == ETL_NL::is_signed); CHECK(STD_NL::is_specialized == ETL_NL::is_specialized); CHECK(STD_NL::lowest() == ETL_NL::lowest()); CHECK(STD_NL::max() == ETL_NL::max()); CHECK(STD_NL::max_digits10 == ETL_NL::max_digits10); CHECK(STD_NL::max_exponent == ETL_NL::max_exponent); CHECK(STD_NL::max_exponent10 == ETL_NL::max_exponent10); CHECK(STD_NL::min() == ETL_NL::min()); CHECK(STD_NL::min_exponent == ETL_NL::min_exponent); CHECK(STD_NL::min_exponent10 == ETL_NL::min_exponent10); CHECK(STD_NL::quiet_NaN() == ETL_NL::quiet_NaN()); CHECK(STD_NL::radix == ETL_NL::radix); CHECK(STD_NL::round_error() == ETL_NL::round_error()); CHECK(int(STD_NL::round_style) == int(ETL_NL::round_style)); CHECK(STD_NL::signaling_NaN() == ETL_NL::signaling_NaN()); CHECK(STD_NL::tinyness_before == ETL_NL::tinyness_before); } //************************************************************************* TEST(test_float) { typedef etl::numeric_limits ETL_NL; typedef std::numeric_limits STD_NL; CHECK(STD_NL::digits == ETL_NL::digits); CHECK(STD_NL::digits10 == ETL_NL::digits10); CHECK(STD_NL::epsilon() == ETL_NL::epsilon()); CHECK(STD_NL::is_bounded == ETL_NL::is_bounded); CHECK(STD_NL::is_exact == ETL_NL::is_exact); CHECK(STD_NL::is_integer == ETL_NL::is_integer); CHECK(STD_NL::is_modulo == ETL_NL::is_modulo); CHECK(STD_NL::is_signed == ETL_NL::is_signed); CHECK(STD_NL::is_specialized == ETL_NL::is_specialized); CHECK(STD_NL::lowest() == ETL_NL::lowest()); CHECK(STD_NL::max() == ETL_NL::max()); CHECK(STD_NL::max_digits10 == ETL_NL::max_digits10); CHECK(STD_NL::max_exponent == ETL_NL::max_exponent); CHECK(STD_NL::max_exponent10 == ETL_NL::max_exponent10); CHECK(STD_NL::min() == ETL_NL::min()); CHECK(STD_NL::min_exponent == ETL_NL::min_exponent); CHECK(STD_NL::min_exponent10 == ETL_NL::min_exponent10); CHECK(STD_NL::radix == ETL_NL::radix); CHECK(STD_NL::round_error() == ETL_NL::round_error()); } //************************************************************************* TEST(test_double) { typedef etl::numeric_limits ETL_NL; typedef std::numeric_limits STD_NL; CHECK(STD_NL::digits == ETL_NL::digits); CHECK(STD_NL::digits10 == ETL_NL::digits10); CHECK(STD_NL::epsilon() == ETL_NL::epsilon()); CHECK(STD_NL::is_bounded == ETL_NL::is_bounded); CHECK(STD_NL::is_exact == ETL_NL::is_exact); CHECK(STD_NL::is_integer == ETL_NL::is_integer); CHECK(STD_NL::is_modulo == ETL_NL::is_modulo); CHECK(STD_NL::is_signed == ETL_NL::is_signed); CHECK(STD_NL::is_specialized == ETL_NL::is_specialized); CHECK(STD_NL::lowest() == ETL_NL::lowest()); CHECK(STD_NL::max() == ETL_NL::max()); CHECK(STD_NL::max_digits10 == ETL_NL::max_digits10); CHECK(STD_NL::max_exponent == ETL_NL::max_exponent); CHECK(STD_NL::max_exponent10 == ETL_NL::max_exponent10); CHECK(STD_NL::min() == ETL_NL::min()); CHECK(STD_NL::min_exponent == ETL_NL::min_exponent); CHECK(STD_NL::min_exponent10 == ETL_NL::min_exponent10); CHECK(STD_NL::radix == ETL_NL::radix); CHECK(STD_NL::round_error() == ETL_NL::round_error()); } //************************************************************************* TEST(test_long_double) { typedef etl::numeric_limits ETL_NL; typedef std::numeric_limits STD_NL; CHECK(STD_NL::digits == ETL_NL::digits); CHECK(STD_NL::digits10 == ETL_NL::digits10); CHECK(STD_NL::epsilon() == ETL_NL::epsilon()); CHECK(STD_NL::is_bounded == ETL_NL::is_bounded); CHECK(STD_NL::is_exact == ETL_NL::is_exact); CHECK(STD_NL::is_integer == ETL_NL::is_integer); CHECK(STD_NL::is_modulo == ETL_NL::is_modulo); CHECK(STD_NL::is_signed == ETL_NL::is_signed); CHECK(STD_NL::is_specialized == ETL_NL::is_specialized); CHECK(STD_NL::lowest() == ETL_NL::lowest()); CHECK(STD_NL::max() == ETL_NL::max()); CHECK(STD_NL::max_digits10 == ETL_NL::max_digits10); CHECK(STD_NL::max_exponent == ETL_NL::max_exponent); CHECK(STD_NL::max_exponent10 == ETL_NL::max_exponent10); CHECK(STD_NL::min() == ETL_NL::min()); CHECK(STD_NL::min_exponent == ETL_NL::min_exponent); CHECK(STD_NL::min_exponent10 == ETL_NL::min_exponent10); CHECK(STD_NL::radix == ETL_NL::radix); CHECK(STD_NL::round_error() == ETL_NL::round_error()); } }; }