From 2a2ea265c4af7902b8d99565c4881359a6e2973b Mon Sep 17 00:00:00 2001 From: Gautam Dhar Date: Wed, 25 Sep 2024 05:00:09 +0530 Subject: [PATCH] 7. testing floating-point changes for macos pre and post arm64 --- tests/testFloatingPointPrecision.cpp | 12 +++++++----- tests/testUserDefinedConverter_locale.cpp | 6 ++++++ tests/utilities.h | 2 +- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/tests/testFloatingPointPrecision.cpp b/tests/testFloatingPointPrecision.cpp index 2c2c8ba..74cef3f 100644 --- a/tests/testFloatingPointPrecision.cpp +++ b/tests/testFloatingPointPrecision.cpp @@ -140,10 +140,10 @@ int main() "3.3123412e+38", 3.3123412E38f, "3.3123412e+38"); std::string expected_float_3d3123412en38[] = { "3.312341e-38", -#if MACH_MACOS_ARRAY_IDX == MACH_PRE_MACOS14_CLANG +#if MACH_MACOS_ARRAY_IDX == MACH_POST_MACOS14_ARM_CLANG "3.31234111e-38", // macOS -//#elif MACH_MACOS_ARRAY_IDX == MACH_POST_MACOS14_ARM_CLANG //#elif MACH_MACOS_ARRAY_IDX == MACH_POST_MACOS14_ARM_GNU +//#elif MACH_MACOS_ARRAY_IDX == MACH_PRE_MACOS14_CLANG #else // default MACH_MACOS_ARRAY_IDX == MACH_PRE_MACOS14_GNU "3.312341e-38", #endif @@ -167,13 +167,15 @@ int main() std::string expected_longdouble_5d3123412en38[] = { "5.3123412e-38", #if MACH_MACOS_ARRAY_IDX == MACH_POST_MACOS14_ARM_CLANG "5.31234120000000035e-38", -#else - "5.3123412000000000001e-38", // macOS +//#elif MACH_MACOS_ARRAY_IDX == MACH_POST_MACOS14_ARM_CLANG +//#elif MACH_MACOS_ARRAY_IDX == MACH_POST_MACOS14_ARM_GNU +#else // default MACH_MACOS_ARRAY_IDX == MACH_PRE_MACOS14_GNU + "5.3123412e-38", // macOS #endif "5.3123412e-38", }; checkRoundTripConversion_txt2Val2txt("testFloatingPointPrecision-13", "5.3123412e-38", 5.3123412E-38L, expected_longdouble_5d3123412en38[indexOS], - ((indexOS==1)?8:std::numeric_limits::digits10) ); // macOS + ((indexOS==1)?7:std::numeric_limits::digits10) ); // macOS } catch (const std::exception& ex) { std::cout << "Test Failed : err-msg : " << ex.what() << std::endl; diff --git a/tests/testUserDefinedConverter_locale.cpp b/tests/testUserDefinedConverter_locale.cpp index 7211441..d09e76c 100644 --- a/tests/testUserDefinedConverter_locale.cpp +++ b/tests/testUserDefinedConverter_locale.cpp @@ -154,7 +154,13 @@ int main() expected_double_9007199254740993[indexOS], std::numeric_limits::digits10, ',', '.'); std::string expected_longDouble_9007199254740993[] = { "9.007.199.254.740.993", // Ubuntu +#if MACH_MACOS_ARRAY_IDX == MACH_POST_MACOS14_ARM_CLANG + "9007199254740992", // MacOS +//#elif MACH_MACOS_ARRAY_IDX == MACH_POST_MACOS14_ARM_GNU +//#elif MACH_MACOS_ARRAY_IDX == MACH_PRE_MACOS14_CLANG +#else // default MACH_MACOS_ARRAY_IDX == MACH_PRE_MACOS14_GNU "9007199254740993", // MacOS +#endif "9.007.199.254.740.992", };// Windows checkRoundTripConversion_txt2Val2txt, ConvertFromVal_loc>("testUserDefinedConverter_locale-8", "9007199254740993", 9007199254740993.0L, diff --git a/tests/utilities.h b/tests/utilities.h index 1049c9e..4223a73 100644 --- a/tests/utilities.h +++ b/tests/utilities.h @@ -53,7 +53,7 @@ void checkRoundTripConversion_txt2Val2txt( const std::string& testID, std::string::size_type decSep_actual = _strRoundtripActual.find(decimalSeperator); if(decSep_input != std::string::npos && decSep_actual != std::string::npos) { - std::cout << "fraction check" << std::endl; + std::cout << "################ fraction check ############" << std::endl; // both input and round-trip-string have decimal seperator // for e.g.: '3.3123412e+38' if(decSep_input == decSep_actual)