//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is dual licensed under the MIT and the University of Illinois Open // Source Licenses. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // UNSUPPORTED: c++98, c++03, c++11 // XFAIL: with_system_cxx_lib=macosx10.14 // XFAIL: with_system_cxx_lib=macosx10.13 // XFAIL: with_system_cxx_lib=macosx10.12 // XFAIL: with_system_cxx_lib=macosx10.11 // XFAIL: with_system_cxx_lib=macosx10.10 // XFAIL: with_system_cxx_lib=macosx10.9 // XFAIL: with_system_cxx_lib=macosx10.8 // XFAIL: with_system_cxx_lib=macosx10.7 // // to_chars_result to_chars(char* first, char* last, Integral value, // int base = 10) #include "charconv_test_helpers.h" template struct test_basics : to_chars_test_base { using to_chars_test_base::test; using to_chars_test_base::test_value; void operator()() { test(0, "0"); test(42, "42"); test(32768, "32768"); test(0, "0", 10); test(42, "42", 10); test(32768, "32768", 10); test(0xf, "f", 16); test(0xdeadbeaf, "deadbeaf", 16); test(0755, "755", 8); for (int b = 2; b < 37; ++b) { using xl = std::numeric_limits; test_value(1, b); test_value(xl::lowest(), b); test_value((xl::max)(), b); test_value((xl::max)() / 2, b); } } }; template struct test_signed : to_chars_test_base { using to_chars_test_base::test; using to_chars_test_base::test_value; void operator()() { test(-1, "-1"); test(-12, "-12"); test(-1, "-1", 10); test(-12, "-12", 10); test(-21734634, "-21734634", 10); test(-2647, "-101001010111", 2); test(-0xcc1, "-cc1", 16); for (int b = 2; b < 37; ++b) { using xl = std::numeric_limits; test_value(0, b); test_value(xl::lowest(), b); test_value((xl::max)(), b); } } }; int main() { run(integrals); run(all_signed); }