diff --git a/libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/neg_format.pass.cpp b/libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/neg_format.pass.cpp --- a/libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/neg_format.pass.cpp +++ b/libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/neg_format.pass.cpp @@ -6,13 +6,9 @@ // //===----------------------------------------------------------------------===// // -// XFAIL: darwin -// // NetBSD does not support LC_MONETARY at the moment // XFAIL: netbsd -// XFAIL: LIBCXX-WINDOWS-FIXME - // REQUIRES: locale.en_US.UTF-8 // REQUIRES: locale.fr_FR.UTF-8 // REQUIRES: locale.ru_RU.UTF-8 @@ -65,180 +61,176 @@ }; #endif // TEST_HAS_NO_WIDE_CHARACTERS +void assert_symbol_sign_none_value(std::money_base::pattern p) +{ + assert(p.field[0] == std::money_base::symbol); + assert(p.field[1] == std::money_base::sign); + assert(p.field[2] == std::money_base::none); + assert(p.field[3] == std::money_base::value); +} + +void assert_sign_symbol_none_value(std::money_base::pattern p) +{ + assert(p.field[0] == std::money_base::sign); + assert(p.field[1] == std::money_base::symbol); + assert(p.field[2] == std::money_base::none); + assert(p.field[3] == std::money_base::value); +} + +void assert_value_none_symbol_sign(std::money_base::pattern p) +{ + assert(p.field[0] == std::money_base::value); + assert(p.field[1] == std::money_base::none); + assert(p.field[2] == std::money_base::symbol); + assert(p.field[3] == std::money_base::sign); +} + +void assert_sign_value_none_symbol(std::money_base::pattern p) +{ + assert(p.field[0] == std::money_base::sign); + assert(p.field[1] == std::money_base::value); + assert(p.field[2] == std::money_base::none); + assert(p.field[3] == std::money_base::symbol); +} + int main(int, char**) { { Fnf f("C", 1); std::money_base::pattern p = f.neg_format(); - assert(p.field[0] == std::money_base::symbol); - assert(p.field[1] == std::money_base::sign); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); + assert_symbol_sign_none_value(p); } { Fnt f("C", 1); std::money_base::pattern p = f.neg_format(); - assert(p.field[0] == std::money_base::symbol); - assert(p.field[1] == std::money_base::sign); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); + assert_symbol_sign_none_value(p); } #ifndef TEST_HAS_NO_WIDE_CHARACTERS { Fwf f("C", 1); std::money_base::pattern p = f.neg_format(); - assert(p.field[0] == std::money_base::symbol); - assert(p.field[1] == std::money_base::sign); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); + assert_symbol_sign_none_value(p); } { Fwt f("C", 1); std::money_base::pattern p = f.neg_format(); - assert(p.field[0] == std::money_base::symbol); - assert(p.field[1] == std::money_base::sign); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); + assert_symbol_sign_none_value(p); } #endif // TEST_HAS_NO_WIDE_CHARACTERS { Fnf f(LOCALE_en_US_UTF_8, 1); std::money_base::pattern p = f.neg_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::symbol); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); + assert_sign_symbol_none_value(p); } { Fnt f(LOCALE_en_US_UTF_8, 1); std::money_base::pattern p = f.neg_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::symbol); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); + assert_sign_symbol_none_value(p); } #ifndef TEST_HAS_NO_WIDE_CHARACTERS { Fwf f(LOCALE_en_US_UTF_8, 1); std::money_base::pattern p = f.neg_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::symbol); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); + assert_sign_symbol_none_value(p); } { Fwt f(LOCALE_en_US_UTF_8, 1); std::money_base::pattern p = f.neg_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::symbol); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); + assert_sign_symbol_none_value(p); } #endif // TEST_HAS_NO_WIDE_CHARACTERS { Fnf f(LOCALE_fr_FR_UTF_8, 1); std::money_base::pattern p = f.neg_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::value); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::symbol); +#ifdef __APPLE__ + assert_value_none_symbol_sign(p); +#else + assert_sign_value_none_symbol(p); +#endif } { Fnt f(LOCALE_fr_FR_UTF_8, 1); std::money_base::pattern p = f.neg_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::value); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::symbol); +#ifdef __APPLE__ + assert_value_none_symbol_sign(p); +#else + assert_sign_value_none_symbol(p); +#endif } #ifndef TEST_HAS_NO_WIDE_CHARACTERS { Fwf f(LOCALE_fr_FR_UTF_8, 1); std::money_base::pattern p = f.neg_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::value); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::symbol); +#ifdef __APPLE__ + assert_value_none_symbol_sign(p); +#else + assert_sign_value_none_symbol(p); +#endif } { Fwt f(LOCALE_fr_FR_UTF_8, 1); std::money_base::pattern p = f.neg_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::value); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::symbol); +#ifdef __APPLE__ + assert_value_none_symbol_sign(p); +#else + assert_sign_value_none_symbol(p); +#endif } #endif // TEST_HAS_NO_WIDE_CHARACTERS { Fnf f(LOCALE_ru_RU_UTF_8, 1); std::money_base::pattern p = f.neg_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::value); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::symbol); + assert_sign_value_none_symbol(p); } { Fnt f(LOCALE_ru_RU_UTF_8, 1); std::money_base::pattern p = f.neg_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::value); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::symbol); + assert_sign_value_none_symbol(p); } #ifndef TEST_HAS_NO_WIDE_CHARACTERS { Fwf f(LOCALE_ru_RU_UTF_8, 1); std::money_base::pattern p = f.neg_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::value); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::symbol); + assert_sign_value_none_symbol(p); } { Fwt f(LOCALE_ru_RU_UTF_8, 1); std::money_base::pattern p = f.neg_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::value); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::symbol); + assert_sign_value_none_symbol(p); } #endif // TEST_HAS_NO_WIDE_CHARACTERS { Fnf f(LOCALE_zh_CN_UTF_8, 1); std::money_base::pattern p = f.neg_format(); - assert(p.field[0] == std::money_base::symbol); - assert(p.field[1] == std::money_base::sign); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); + assert_symbol_sign_none_value(p); } { Fnt f(LOCALE_zh_CN_UTF_8, 1); std::money_base::pattern p = f.neg_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::symbol); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); +#if defined(_WIN32) || defined(__APPLE__) + assert_symbol_sign_none_value(p); +#else + assert_sign_symbol_none_value(p); +#endif } #ifndef TEST_HAS_NO_WIDE_CHARACTERS { Fwf f(LOCALE_zh_CN_UTF_8, 1); std::money_base::pattern p = f.neg_format(); - assert(p.field[0] == std::money_base::symbol); - assert(p.field[1] == std::money_base::sign); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); + assert_symbol_sign_none_value(p); } { Fwt f(LOCALE_zh_CN_UTF_8, 1); std::money_base::pattern p = f.neg_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::symbol); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); +#if defined(_WIN32) || defined(__APPLE__) + assert_symbol_sign_none_value(p); +#else + assert_sign_symbol_none_value(p); +#endif } #endif // TEST_HAS_NO_WIDE_CHARACTERS diff --git a/libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/pos_format.pass.cpp b/libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/pos_format.pass.cpp --- a/libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/pos_format.pass.cpp +++ b/libcxx/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/pos_format.pass.cpp @@ -6,13 +6,9 @@ // //===----------------------------------------------------------------------===// // -// XFAIL: darwin -// // NetBSD does not support LC_MONETARY at the moment // XFAIL: netbsd -// XFAIL: LIBCXX-WINDOWS-FIXME - // REQUIRES: locale.en_US.UTF-8 // REQUIRES: locale.fr_FR.UTF-8 // REQUIRES: locale.ru_RU.UTF-8 @@ -65,180 +61,168 @@ }; #endif // TEST_HAS_NO_WIDE_CHARACTERS +void assert_symbol_sign_none_value(std::money_base::pattern p) +{ + assert(p.field[0] == std::money_base::symbol); + assert(p.field[1] == std::money_base::sign); + assert(p.field[2] == std::money_base::none); + assert(p.field[3] == std::money_base::value); +} + +void assert_sign_symbol_none_value(std::money_base::pattern p) +{ + assert(p.field[0] == std::money_base::sign); + assert(p.field[1] == std::money_base::symbol); + assert(p.field[2] == std::money_base::none); + assert(p.field[3] == std::money_base::value); +} + +void assert_value_none_symbol_sign(std::money_base::pattern p) +{ + assert(p.field[0] == std::money_base::value); + assert(p.field[1] == std::money_base::none); + assert(p.field[2] == std::money_base::symbol); + assert(p.field[3] == std::money_base::sign); +} + +void assert_sign_value_none_symbol(std::money_base::pattern p) +{ + assert(p.field[0] == std::money_base::sign); + assert(p.field[1] == std::money_base::value); + assert(p.field[2] == std::money_base::none); + assert(p.field[3] == std::money_base::symbol); +} + int main(int, char**) { { Fnf f("C", 1); std::money_base::pattern p = f.pos_format(); - assert(p.field[0] == std::money_base::symbol); - assert(p.field[1] == std::money_base::sign); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); + assert_symbol_sign_none_value(p); } { Fnt f("C", 1); std::money_base::pattern p = f.pos_format(); - assert(p.field[0] == std::money_base::symbol); - assert(p.field[1] == std::money_base::sign); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); + assert_symbol_sign_none_value(p); } #ifndef TEST_HAS_NO_WIDE_CHARACTERS { Fwf f("C", 1); std::money_base::pattern p = f.pos_format(); - assert(p.field[0] == std::money_base::symbol); - assert(p.field[1] == std::money_base::sign); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); + assert_symbol_sign_none_value(p); } { Fwt f("C", 1); std::money_base::pattern p = f.pos_format(); - assert(p.field[0] == std::money_base::symbol); - assert(p.field[1] == std::money_base::sign); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); + assert_symbol_sign_none_value(p); } #endif // TEST_HAS_NO_WIDE_CHARACTERS { Fnf f(LOCALE_en_US_UTF_8, 1); std::money_base::pattern p = f.pos_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::symbol); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); + assert_sign_symbol_none_value(p); } { Fnt f(LOCALE_en_US_UTF_8, 1); std::money_base::pattern p = f.pos_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::symbol); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); + assert_sign_symbol_none_value(p); } #ifndef TEST_HAS_NO_WIDE_CHARACTERS { Fwf f(LOCALE_en_US_UTF_8, 1); std::money_base::pattern p = f.pos_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::symbol); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); + assert_sign_symbol_none_value(p); } { Fwt f(LOCALE_en_US_UTF_8, 1); std::money_base::pattern p = f.pos_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::symbol); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); + assert_sign_symbol_none_value(p); } #endif // TEST_HAS_NO_WIDE_CHARACTERS { Fnf f(LOCALE_fr_FR_UTF_8, 1); std::money_base::pattern p = f.pos_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::value); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::symbol); + assert_sign_value_none_symbol(p); } { Fnt f(LOCALE_fr_FR_UTF_8, 1); std::money_base::pattern p = f.pos_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::value); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::symbol); + assert_sign_value_none_symbol(p); } #ifndef TEST_HAS_NO_WIDE_CHARACTERS { Fwf f(LOCALE_fr_FR_UTF_8, 1); std::money_base::pattern p = f.pos_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::value); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::symbol); + assert_sign_value_none_symbol(p); } { Fwt f(LOCALE_fr_FR_UTF_8, 1); std::money_base::pattern p = f.pos_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::value); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::symbol); + assert_sign_value_none_symbol(p); } #endif // TEST_HAS_NO_WIDE_CHARACTERS { Fnf f(LOCALE_ru_RU_UTF_8, 1); std::money_base::pattern p = f.pos_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::value); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::symbol); + assert_sign_value_none_symbol(p); } { Fnt f(LOCALE_ru_RU_UTF_8, 1); std::money_base::pattern p = f.pos_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::value); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::symbol); + assert_sign_value_none_symbol(p); } #ifndef TEST_HAS_NO_WIDE_CHARACTERS { Fwf f(LOCALE_ru_RU_UTF_8, 1); std::money_base::pattern p = f.pos_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::value); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::symbol); + assert_sign_value_none_symbol(p); } { Fwt f(LOCALE_ru_RU_UTF_8, 1); std::money_base::pattern p = f.pos_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::value); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::symbol); + assert_sign_value_none_symbol(p); } #endif // TEST_HAS_NO_WIDE_CHARACTERS { Fnf f(LOCALE_zh_CN_UTF_8, 1); std::money_base::pattern p = f.pos_format(); - assert(p.field[0] == std::money_base::symbol); - assert(p.field[1] == std::money_base::sign); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); +#ifdef __APPLE__ + assert_sign_symbol_none_value(p); +#else + assert_symbol_sign_none_value(p); +#endif } { Fnt f(LOCALE_zh_CN_UTF_8, 1); std::money_base::pattern p = f.pos_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::symbol); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); +#ifdef _WIN32 + assert_symbol_sign_none_value(p); +#else + assert_sign_symbol_none_value(p); +#endif } #ifndef TEST_HAS_NO_WIDE_CHARACTERS { Fwf f(LOCALE_zh_CN_UTF_8, 1); std::money_base::pattern p = f.pos_format(); - assert(p.field[0] == std::money_base::symbol); - assert(p.field[1] == std::money_base::sign); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); +#ifdef __APPLE__ + assert_sign_symbol_none_value(p); +#else + assert_symbol_sign_none_value(p); +#endif } { Fwt f(LOCALE_zh_CN_UTF_8, 1); std::money_base::pattern p = f.pos_format(); - assert(p.field[0] == std::money_base::sign); - assert(p.field[1] == std::money_base::symbol); - assert(p.field[2] == std::money_base::none); - assert(p.field[3] == std::money_base::value); +#ifdef _WIN32 + assert_symbol_sign_none_value(p); +#else + assert_sign_symbol_none_value(p); +#endif } #endif // TEST_HAS_NO_WIDE_CHARACTERS