• Home
  • Raw
  • Download

Lines Matching +full:- +full:- +full:format

1 // Formatting library for C++ - formatting library tests
3 // Copyright (c) 2012 - present, Victor Zverovich
6 // For the license information refer to format.h.
8 // Check if fmt/format.h compiles with windows.h included before it.
12 // clang-format off
13 #include "fmt/format.h"
14 // clang-format on
26 #include "gtest-extra.h"
27 #include "mock-allocator.h"
68 EXPECT_EQ(n - 2, 40); in TEST()
90 EXPECT_TRUE(isfinite(Float(-42.0))); in check_isfinite()
97 EXPECT_FALSE(isfinite(Float(-limits::infinity()))); in check_isfinite()
99 EXPECT_FALSE(isfinite(Float(-limits::quiet_NaN()))); in check_isfinite()
113 EXPECT_FALSE(isnan(Float(-42.0))); in check_isnan()
118 EXPECT_FALSE(isnan(Float(-limits::infinity()))); in check_isnan()
120 EXPECT_TRUE(isnan(Float(-limits::quiet_NaN()))); in check_isnan()
143 for (int i = static_cast<int>(std::strlen(s)) - 1; i >= 0; --i) { in increment()
169 EXPECT_EQ(fmt::detail::parse_nonnegative_int(begin, end, -1), -1); in TEST()
173 EXPECT_EQ(fmt::detail::parse_nonnegative_int(begin, end, -1), -1); in TEST()
455 EXPECT_EQ(fmt::format("{{"), "{"); in TEST()
456 EXPECT_EQ(fmt::format("before {{"), "before {"); in TEST()
457 EXPECT_EQ(fmt::format("{{ after"), "{ after"); in TEST()
458 EXPECT_EQ(fmt::format("before {{ after"), "before { after"); in TEST()
460 EXPECT_EQ(fmt::format("}}"), "}"); in TEST()
461 EXPECT_EQ(fmt::format("before }}"), "before }"); in TEST()
462 EXPECT_EQ(fmt::format("}} after"), "} after"); in TEST()
463 EXPECT_EQ(fmt::format("before }} after"), "before } after"); in TEST()
465 EXPECT_EQ(fmt::format("{{}}"), "{}"); in TEST()
466 EXPECT_EQ(fmt::format("{{{0}}}", 42), "{42}"); in TEST()
470 EXPECT_THROW_MSG((void)fmt::format(runtime("{")), format_error, in TEST()
471 "invalid format string"); in TEST()
472 EXPECT_THROW_MSG((void)fmt::format(runtime("}")), format_error, in TEST()
473 "unmatched '}' in format string"); in TEST()
474 EXPECT_THROW_MSG((void)fmt::format(runtime("{0{}")), format_error, in TEST()
475 "invalid format string"); in TEST()
478 TEST(format_test, no_args) { EXPECT_EQ(fmt::format("test"), "test"); } in TEST()
481 EXPECT_EQ(fmt::format("{0}", 42), "42"); in TEST()
482 EXPECT_EQ(fmt::format("before {0}", 42), "before 42"); in TEST()
483 EXPECT_EQ(fmt::format("{0} after", 42), "42 after"); in TEST()
484 EXPECT_EQ(fmt::format("before {0} after", 42), "before 42 after"); in TEST()
485 EXPECT_EQ(fmt::format("{0} = {1}", "answer", 42), "answer = 42"); in TEST()
486 EXPECT_EQ(fmt::format("{1} is the {0}", "answer", 42), "42 is the answer"); in TEST()
487 EXPECT_EQ(fmt::format("{0}{1}{0}", "abra", "cad"), "abracadabra"); in TEST()
491 EXPECT_THROW_MSG((void)fmt::format(runtime("{")), format_error, in TEST()
492 "invalid format string"); in TEST()
493 EXPECT_THROW_MSG((void)fmt::format(runtime("{?}")), format_error, in TEST()
494 "invalid format string"); in TEST()
495 EXPECT_THROW_MSG((void)fmt::format(runtime("{0")), format_error, in TEST()
496 "invalid format string"); in TEST()
497 EXPECT_THROW_MSG((void)fmt::format(runtime("{0}")), format_error, in TEST()
499 EXPECT_THROW_MSG((void)fmt::format(runtime("{00}"), 42), format_error, in TEST()
500 "invalid format string"); in TEST()
503 EXPECT_THROW_MSG((void)fmt::format(runtime("{" + int_max)), format_error, in TEST()
504 "invalid format string"); in TEST()
505 EXPECT_THROW_MSG((void)fmt::format(runtime("{" + int_max + "}")), in TEST()
509 EXPECT_THROW_MSG((void)fmt::format(runtime("{" + int_maxer)), format_error, in TEST()
510 "invalid format string"); in TEST()
511 EXPECT_THROW_MSG((void)fmt::format(runtime("{" + int_maxer + "}")), in TEST()
517 static auto format(fmt::string_view fmt, const T&... args) -> std::string { in format() function
518 return test_format<N - 1>::format(fmt, N - 1, args...); in format()
524 static auto format(fmt::string_view fmt, const T&... args) -> std::string { in format() function
525 return fmt::format(runtime(fmt), args...); in format()
530 EXPECT_EQ("19", test_format<20>::format("{19}")); in TEST()
531 EXPECT_THROW_MSG(test_format<20>::format("{20}"), format_error, in TEST()
533 EXPECT_THROW_MSG(test_format<21>::format("{21}"), format_error, in TEST()
536 std::string format_str = fmt::format("{{{}}}", max_packed_args + 1); in TEST()
537 EXPECT_THROW_MSG(test_format<max_packed_args>::format(format_str), in TEST()
542 EXPECT_EQ("1/a/A", fmt::format("{_1}/{a_}/{A_}", fmt::arg("a_", 'a'), in TEST()
544 EXPECT_EQ(fmt::format("{0:{width}}", -42, fmt::arg("width", 4)), " -42"); in TEST()
546 fmt::format("{0:.{precision}}", "str", fmt::arg("precision", 2))); in TEST()
547 EXPECT_EQ(fmt::format("{} {two}", 1, fmt::arg("two", 2)), "1 2"); in TEST()
549 fmt::format("{c}", fmt::arg("a", 0), fmt::arg("b", 0), in TEST()
555 EXPECT_THROW_MSG((void)fmt::format(runtime("{a}")), format_error, in TEST()
557 EXPECT_THROW_MSG((void)fmt::format(runtime("{a}"), 42), format_error, in TEST()
562 EXPECT_EQ(fmt::format("{}{}{}", 'a', 'b', 'c'), "abc"); in TEST()
563 EXPECT_THROW_MSG((void)fmt::format(runtime("{0}{}"), 'a', 'b'), format_error, in TEST()
565 EXPECT_THROW_MSG((void)fmt::format(runtime("{}{0}"), 'a', 'b'), format_error, in TEST()
567 EXPECT_EQ(fmt::format("{:.{}}", 1.2345, 2), "1.2"); in TEST()
568 EXPECT_THROW_MSG((void)fmt::format(runtime("{0}:.{}"), 1.2345, 2), in TEST()
571 EXPECT_THROW_MSG((void)fmt::format(runtime("{:.{0}}"), 1.2345, 2), in TEST()
574 EXPECT_THROW_MSG((void)fmt::format(runtime("{}")), format_error, in TEST()
578 TEST(format_test, empty_specs) { EXPECT_EQ(fmt::format("{0:}", 42), "42"); } in TEST()
581 EXPECT_EQ(fmt::format("{0:<4}", 42), "42 "); in TEST()
582 EXPECT_EQ(fmt::format("{0:<4o}", 042), "42 "); in TEST()
583 EXPECT_EQ(fmt::format("{0:<4x}", 0x42), "42 "); in TEST()
584 EXPECT_EQ(fmt::format("{0:<5}", -42), "-42 "); in TEST()
585 EXPECT_EQ(fmt::format("{0:<5}", 42u), "42 "); in TEST()
586 EXPECT_EQ(fmt::format("{0:<5}", -42l), "-42 "); in TEST()
587 EXPECT_EQ(fmt::format("{0:<5}", 42ul), "42 "); in TEST()
588 EXPECT_EQ(fmt::format("{0:<5}", -42ll), "-42 "); in TEST()
589 EXPECT_EQ(fmt::format("{0:<5}", 42ull), "42 "); in TEST()
590 EXPECT_EQ(fmt::format("{0:<5}", -42.0), "-42 "); in TEST()
591 EXPECT_EQ(fmt::format("{0:<5}", -42.0l), "-42 "); in TEST()
592 EXPECT_EQ(fmt::format("{0:<5}", 'c'), "c "); in TEST()
593 EXPECT_EQ(fmt::format("{0:<5}", "abc"), "abc "); in TEST()
594 EXPECT_EQ(fmt::format("{0:<8}", reinterpret_cast<void*>(0xface)), "0xface "); in TEST()
598 EXPECT_EQ(fmt::format("{0:>4}", 42), " 42"); in TEST()
599 EXPECT_EQ(fmt::format("{0:>4o}", 042), " 42"); in TEST()
600 EXPECT_EQ(fmt::format("{0:>4x}", 0x42), " 42"); in TEST()
601 EXPECT_EQ(fmt::format("{0:>5}", -42), " -42"); in TEST()
602 EXPECT_EQ(fmt::format("{0:>5}", 42u), " 42"); in TEST()
603 EXPECT_EQ(fmt::format("{0:>5}", -42l), " -42"); in TEST()
604 EXPECT_EQ(fmt::format("{0:>5}", 42ul), " 42"); in TEST()
605 EXPECT_EQ(fmt::format("{0:>5}", -42ll), " -42"); in TEST()
606 EXPECT_EQ(fmt::format("{0:>5}", 42ull), " 42"); in TEST()
607 EXPECT_EQ(fmt::format("{0:>5}", -42.0), " -42"); in TEST()
608 EXPECT_EQ(fmt::format("{0:>5}", -42.0l), " -42"); in TEST()
609 EXPECT_EQ(fmt::format("{0:>5}", 'c'), " c"); in TEST()
610 EXPECT_EQ(fmt::format("{0:>5}", "abc"), " abc"); in TEST()
611 EXPECT_EQ(fmt::format("{0:>8}", reinterpret_cast<void*>(0xface)), " 0xface"); in TEST()
615 EXPECT_EQ(fmt::format("{0:^5}", 42), " 42 "); in TEST()
616 EXPECT_EQ(fmt::format("{0:^5o}", 042), " 42 "); in TEST()
617 EXPECT_EQ(fmt::format("{0:^5x}", 0x42), " 42 "); in TEST()
618 EXPECT_EQ(fmt::format("{0:^5}", -42), " -42 "); in TEST()
619 EXPECT_EQ(fmt::format("{0:^5}", 42u), " 42 "); in TEST()
620 EXPECT_EQ(fmt::format("{0:^5}", -42l), " -42 "); in TEST()
621 EXPECT_EQ(fmt::format("{0:^5}", 42ul), " 42 "); in TEST()
622 EXPECT_EQ(fmt::format("{0:^5}", -42ll), " -42 "); in TEST()
623 EXPECT_EQ(fmt::format("{0:^5}", 42ull), " 42 "); in TEST()
624 EXPECT_EQ(fmt::format("{0:^5}", -42.0), " -42 "); in TEST()
625 EXPECT_EQ(fmt::format("{0:^5}", -42.0l), " -42 "); in TEST()
626 EXPECT_EQ(fmt::format("{0:^5}", 'c'), " c "); in TEST()
627 EXPECT_EQ(fmt::format("{0:^6}", "abc"), " abc "); in TEST()
628 EXPECT_EQ(fmt::format("{0:^8}", reinterpret_cast<void*>(0xface)), " 0xface "); in TEST()
632 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:{<5}"), 'c'), format_error, in TEST()
634 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:{<5}}"), 'c'), format_error, in TEST()
636 EXPECT_EQ(fmt::format("{0:*>4}", 42), "**42"); in TEST()
637 EXPECT_EQ(fmt::format("{0:*>5}", -42), "**-42"); in TEST()
638 EXPECT_EQ(fmt::format("{0:*>5}", 42u), "***42"); in TEST()
639 EXPECT_EQ(fmt::format("{0:*>5}", -42l), "**-42"); in TEST()
640 EXPECT_EQ(fmt::format("{0:*>5}", 42ul), "***42"); in TEST()
641 EXPECT_EQ(fmt::format("{0:*>5}", -42ll), "**-42"); in TEST()
642 EXPECT_EQ(fmt::format("{0:*>5}", 42ull), "***42"); in TEST()
643 EXPECT_EQ(fmt::format("{0:*>5}", -42.0), "**-42"); in TEST()
644 EXPECT_EQ(fmt::format("{0:*>5}", -42.0l), "**-42"); in TEST()
645 EXPECT_EQ(fmt::format("{0:*<5}", 'c'), "c****"); in TEST()
646 EXPECT_EQ(fmt::format("{0:*<5}", "abc"), "abc**"); in TEST()
648 fmt::format("{0:*>8}", reinterpret_cast<void*>(0xface))); in TEST()
649 EXPECT_EQ(fmt::format("{:}=", "foo"), "foo="); in TEST()
651 fmt::format(string_view("{:\0>4}", 6), '*')); in TEST()
652 EXPECT_EQ(fmt::format("{0:ж>4}", 42), "жж42"); in TEST()
653 EXPECT_THROW_MSG((void)fmt::format(runtime("{:\x80\x80\x80\x80\x80>}"), 0), in TEST()
654 format_error, "invalid format specifier"); in TEST()
658 EXPECT_EQ(fmt::format("{0:+}", 42), "+42"); in TEST()
659 EXPECT_EQ(fmt::format("{0:+}", -42), "-42"); in TEST()
660 EXPECT_EQ(fmt::format("{0:+}", 42), "+42"); in TEST()
661 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:+}"), 42u), format_error, in TEST()
662 "invalid format specifier"); in TEST()
663 EXPECT_EQ(fmt::format("{0:+}", 42l), "+42"); in TEST()
664 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:+}"), 42ul), format_error, in TEST()
665 "invalid format specifier"); in TEST()
666 EXPECT_EQ(fmt::format("{0:+}", 42ll), "+42"); in TEST()
668 EXPECT_EQ(fmt::format("{0:+}", __int128_t(42)), "+42"); in TEST()
670 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:+}"), 42ull), format_error, in TEST()
671 "invalid format specifier"); in TEST()
672 EXPECT_EQ(fmt::format("{0:+}", 42.0), "+42"); in TEST()
673 EXPECT_EQ(fmt::format("{0:+}", 42.0l), "+42"); in TEST()
674 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:+}"), 'c'), format_error, in TEST()
675 "invalid format specifier"); in TEST()
676 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:+}"), "abc"), format_error, in TEST()
677 "invalid format specifier"); in TEST()
679 (void)fmt::format(runtime("{0:+}"), reinterpret_cast<void*>(0x42)), in TEST()
680 format_error, "invalid format specifier"); in TEST()
684 EXPECT_EQ(fmt::format("{0:-}", 42), "42"); in TEST()
685 EXPECT_EQ(fmt::format("{0:-}", -42), "-42"); in TEST()
686 EXPECT_EQ(fmt::format("{0:-}", 42), "42"); in TEST()
687 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:-}"), 42u), format_error, in TEST()
688 "invalid format specifier"); in TEST()
689 EXPECT_EQ(fmt::format("{0:-}", 42l), "42"); in TEST()
690 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:-}"), 42ul), format_error, in TEST()
691 "invalid format specifier"); in TEST()
692 EXPECT_EQ(fmt::format("{0:-}", 42ll), "42"); in TEST()
693 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:-}"), 42ull), format_error, in TEST()
694 "invalid format specifier"); in TEST()
695 EXPECT_EQ(fmt::format("{0:-}", 42.0), "42"); in TEST()
696 EXPECT_EQ(fmt::format("{0:-}", 42.0l), "42"); in TEST()
697 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:-}"), 'c'), format_error, in TEST()
698 "invalid format specifier"); in TEST()
699 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:-}"), "abc"), format_error, in TEST()
700 "invalid format specifier"); in TEST()
702 (void)fmt::format(runtime("{0:-}"), reinterpret_cast<void*>(0x42)), in TEST()
703 format_error, "invalid format specifier"); in TEST()
707 EXPECT_EQ(fmt::format("{0: }", 42), " 42"); in TEST()
708 EXPECT_EQ(fmt::format("{0: }", -42), "-42"); in TEST()
709 EXPECT_EQ(fmt::format("{0: }", 42), " 42"); in TEST()
710 EXPECT_THROW_MSG((void)fmt::format(runtime("{0: }"), 42u), format_error, in TEST()
711 "invalid format specifier"); in TEST()
712 EXPECT_EQ(fmt::format("{0: }", 42l), " 42"); in TEST()
713 EXPECT_THROW_MSG((void)fmt::format(runtime("{0: }"), 42ul), format_error, in TEST()
714 "invalid format specifier"); in TEST()
715 EXPECT_EQ(fmt::format("{0: }", 42ll), " 42"); in TEST()
716 EXPECT_THROW_MSG((void)fmt::format(runtime("{0: }"), 42ull), format_error, in TEST()
717 "invalid format specifier"); in TEST()
718 EXPECT_EQ(fmt::format("{0: }", 42.0), " 42"); in TEST()
719 EXPECT_EQ(fmt::format("{0: }", 42.0l), " 42"); in TEST()
720 EXPECT_THROW_MSG((void)fmt::format(runtime("{0: }"), 'c'), format_error, in TEST()
721 "invalid format specifier"); in TEST()
722 EXPECT_THROW_MSG((void)fmt::format(runtime("{0: }"), "abc"), format_error, in TEST()
723 "invalid format specifier"); in TEST()
725 (void)fmt::format(runtime("{0: }"), reinterpret_cast<void*>(0x42)), in TEST()
726 format_error, "invalid format specifier"); in TEST()
730 EXPECT_EQ(fmt::format("{0:#}", 42), "42"); in TEST()
731 EXPECT_EQ(fmt::format("{0:#}", -42), "-42"); in TEST()
732 EXPECT_EQ(fmt::format("{0:#b}", 42), "0b101010"); in TEST()
733 EXPECT_EQ(fmt::format("{0:#B}", 42), "0B101010"); in TEST()
734 EXPECT_EQ(fmt::format("{0:#b}", -42), "-0b101010"); in TEST()
735 EXPECT_EQ(fmt::format("{0:#x}", 0x42), "0x42"); in TEST()
736 EXPECT_EQ(fmt::format("{0:#X}", 0x42), "0X42"); in TEST()
737 EXPECT_EQ(fmt::format("{0:#x}", -0x42), "-0x42"); in TEST()
738 EXPECT_EQ(fmt::format("{0:#o}", 0), "0"); in TEST()
739 EXPECT_EQ(fmt::format("{0:#o}", 042), "042"); in TEST()
740 EXPECT_EQ(fmt::format("{0:#o}", -042), "-042"); in TEST()
741 EXPECT_EQ(fmt::format("{0:#}", 42u), "42"); in TEST()
742 EXPECT_EQ(fmt::format("{0:#x}", 0x42u), "0x42"); in TEST()
743 EXPECT_EQ(fmt::format("{0:#o}", 042u), "042"); in TEST()
745 EXPECT_EQ(fmt::format("{0:#}", -42l), "-42"); in TEST()
746 EXPECT_EQ(fmt::format("{0:#x}", 0x42l), "0x42"); in TEST()
747 EXPECT_EQ(fmt::format("{0:#x}", -0x42l), "-0x42"); in TEST()
748 EXPECT_EQ(fmt::format("{0:#o}", 042l), "042"); in TEST()
749 EXPECT_EQ(fmt::format("{0:#o}", -042l), "-042"); in TEST()
750 EXPECT_EQ(fmt::format("{0:#}", 42ul), "42"); in TEST()
751 EXPECT_EQ(fmt::format("{0:#x}", 0x42ul), "0x42"); in TEST()
752 EXPECT_EQ(fmt::format("{0:#o}", 042ul), "042"); in TEST()
754 EXPECT_EQ(fmt::format("{0:#}", -42ll), "-42"); in TEST()
755 EXPECT_EQ(fmt::format("{0:#x}", 0x42ll), "0x42"); in TEST()
756 EXPECT_EQ(fmt::format("{0:#x}", -0x42ll), "-0x42"); in TEST()
757 EXPECT_EQ(fmt::format("{0:#o}", 042ll), "042"); in TEST()
758 EXPECT_EQ(fmt::format("{0:#o}", -042ll), "-042"); in TEST()
759 EXPECT_EQ(fmt::format("{0:#}", 42ull), "42"); in TEST()
760 EXPECT_EQ(fmt::format("{0:#x}", 0x42ull), "0x42"); in TEST()
761 EXPECT_EQ(fmt::format("{0:#o}", 042ull), "042"); in TEST()
763 EXPECT_EQ(fmt::format("{0:#}", -42.0), "-42."); in TEST()
764 EXPECT_EQ(fmt::format("{0:#}", -42.0l), "-42."); in TEST()
765 EXPECT_EQ(fmt::format("{:#.0e}", 42.0), "4.e+01"); in TEST()
766 EXPECT_EQ(fmt::format("{:#.0f}", 0.01), "0."); in TEST()
767 EXPECT_EQ(fmt::format("{:#.2g}", 0.5), "0.50"); in TEST()
768 EXPECT_EQ(fmt::format("{:#.0f}", 0.5), "0."); in TEST()
769 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:#"), 'c'), format_error, in TEST()
770 "missing '}' in format string"); in TEST()
771 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:#}"), 'c'), format_error, in TEST()
772 "invalid format specifier for char"); in TEST()
773 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:#}"), "abc"), format_error, in TEST()
774 "invalid format specifier"); in TEST()
776 (void)fmt::format(runtime("{0:#}"), reinterpret_cast<void*>(0x42)), in TEST()
777 format_error, "invalid format specifier"); in TEST()
781 EXPECT_EQ(fmt::format("{0:0}", 42), "42"); in TEST()
782 EXPECT_EQ(fmt::format("{0:05}", -42), "-0042"); in TEST()
783 EXPECT_EQ(fmt::format("{0:05}", 42u), "00042"); in TEST()
784 EXPECT_EQ(fmt::format("{0:05}", -42l), "-0042"); in TEST()
785 EXPECT_EQ(fmt::format("{0:05}", 42ul), "00042"); in TEST()
786 EXPECT_EQ(fmt::format("{0:05}", -42ll), "-0042"); in TEST()
787 EXPECT_EQ(fmt::format("{0:05}", 42ull), "00042"); in TEST()
788 EXPECT_EQ(fmt::format("{0:07}", -42.0), "-000042"); in TEST()
789 EXPECT_EQ(fmt::format("{0:07}", -42.0l), "-000042"); in TEST()
790 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:0"), 'c'), format_error, in TEST()
791 "missing '}' in format string"); in TEST()
792 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:05}"), 'c'), format_error, in TEST()
793 "invalid format specifier for char"); in TEST()
794 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:05}"), "abc"), format_error, in TEST()
795 "format specifier requires numeric argument"); in TEST()
797 (void)fmt::format(runtime("{0:05}"), reinterpret_cast<void*>(0x42)), in TEST()
798 format_error, "format specifier requires numeric argument"); in TEST()
804 EXPECT_EQ(fmt::format("{:<05}", 42), "42 "); in TEST()
805 EXPECT_EQ(fmt::format("{:<05}", -42), "-42 "); in TEST()
806 EXPECT_EQ(fmt::format("{:^05}", 42), " 42 "); in TEST()
807 EXPECT_EQ(fmt::format("{:^05}", -42), " -42 "); in TEST()
808 EXPECT_EQ(fmt::format("{:>05}", 42), " 42"); in TEST()
809 EXPECT_EQ(fmt::format("{:>05}", -42), " -42"); in TEST()
814 EXPECT_THROW_MSG((void)fmt::format(runtime("{:" + int_maxer), 0), in TEST()
816 EXPECT_THROW_MSG((void)fmt::format(runtime("{:" + int_maxer + "}"), 0), in TEST()
819 EXPECT_EQ(fmt::format("{:4}", -42), " -42"); in TEST()
820 EXPECT_EQ(fmt::format("{:5}", 42u), " 42"); in TEST()
821 EXPECT_EQ(fmt::format("{:6}", -42l), " -42"); in TEST()
822 EXPECT_EQ(fmt::format("{:7}", 42ul), " 42"); in TEST()
823 EXPECT_EQ(fmt::format("{:6}", -42ll), " -42"); in TEST()
824 EXPECT_EQ(fmt::format("{:7}", 42ull), " 42"); in TEST()
825 EXPECT_EQ(fmt::format("{:8}", -1.23), " -1.23"); in TEST()
826 EXPECT_EQ(fmt::format("{:9}", -1.23l), " -1.23"); in TEST()
827 EXPECT_EQ(fmt::format("{:10}", reinterpret_cast<void*>(0xcafe)), in TEST()
829 EXPECT_EQ(fmt::format("{:11}", 'x'), "x "); in TEST()
830 EXPECT_EQ(fmt::format("{:12}", "str"), "str "); in TEST()
831 EXPECT_EQ(fmt::format("{:*^6}", "��"), "**��**"); in TEST()
832 EXPECT_EQ(fmt::format("{:*^8}", "你好"), "**你好**"); in TEST()
833 EXPECT_EQ(fmt::format("{:#6}", 42.0), " 42."); in TEST()
834 EXPECT_EQ(fmt::format("{:6c}", static_cast<int>('x')), "x "); in TEST()
835 EXPECT_EQ(fmt::format("{:>06.0f}", 0.00884311), " 0"); in TEST()
840 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:{" + int_maxer), 0), in TEST()
841 format_error, "invalid format string"); in TEST()
842 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:{" + int_maxer + "}"), 0), in TEST()
844 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:{" + int_maxer + "}}"), 0), in TEST()
847 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:{"), 0), format_error, in TEST()
848 "invalid format string"); in TEST()
849 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:{}"), 0), format_error, in TEST()
851 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:{?}}"), 0), format_error, in TEST()
852 "invalid format string"); in TEST()
853 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:{1}}"), 0), format_error, in TEST()
856 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:{0:}}"), 0), format_error, in TEST()
857 "invalid format string"); in TEST()
859 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:{1}}"), 0, -1), format_error, in TEST()
861 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:{1}}"), 0, (INT_MAX + 1u)), in TEST()
863 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:{1}}"), 0, -1l), format_error, in TEST()
867 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:{1}}"), 0, (value + 1)), in TEST()
870 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:{1}}"), 0, (INT_MAX + 1ul)), in TEST()
873 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:{1}}"), 0, '0'), format_error, in TEST()
875 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:{1}}"), 0, 0.0), format_error, in TEST()
878 EXPECT_EQ(fmt::format("{0:{1}}", -42, 4), " -42"); in TEST()
879 EXPECT_EQ(fmt::format("{0:{1}}", 42u, 5), " 42"); in TEST()
880 EXPECT_EQ(fmt::format("{0:{1}}", -42l, 6), " -42"); in TEST()
881 EXPECT_EQ(fmt::format("{0:{1}}", 42ul, 7), " 42"); in TEST()
882 EXPECT_EQ(fmt::format("{0:{1}}", -42ll, 6), " -42"); in TEST()
883 EXPECT_EQ(fmt::format("{0:{1}}", 42ull, 7), " 42"); in TEST()
884 EXPECT_EQ(fmt::format("{0:{1}}", -1.23, 8), " -1.23"); in TEST()
885 EXPECT_EQ(fmt::format("{0:{1}}", -1.23l, 9), " -1.23"); in TEST()
887 fmt::format("{0:{1}}", reinterpret_cast<void*>(0xcafe), 10)); in TEST()
888 EXPECT_EQ(fmt::format("{0:{1}}", 'x', 11), "x "); in TEST()
889 EXPECT_EQ(fmt::format("{0:{1}}", "str", 12), "str "); in TEST()
890 EXPECT_EQ(fmt::format("{:{}}", 42, short(4)), " 42"); in TEST()
897 EXPECT_THROW_MSG((void)fmt::format(runtime(format_str), 0.0), format_error, in TEST()
902 EXPECT_THROW_MSG((void)fmt::format(runtime(format_str), 0.0), format_error, in TEST()
906 EXPECT_THROW_MSG((void)fmt::format(runtime(format_str), 0.0), format_error, in TEST()
909 EXPECT_THROW_MSG((void)fmt::format(runtime(format_str), 0.0), format_error, in TEST()
912 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:."), 0.0), format_error, in TEST()
914 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.}"), 0.0), format_error, in TEST()
917 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.2"), 0), format_error, in TEST()
918 "invalid format specifier"); in TEST()
919 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.2}"), 42), format_error, in TEST()
920 "invalid format specifier"); in TEST()
921 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.2f}"), 42), format_error, in TEST()
922 "invalid format specifier"); in TEST()
923 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.2}"), 42u), format_error, in TEST()
924 "invalid format specifier"); in TEST()
925 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.2f}"), 42u), format_error, in TEST()
926 "invalid format specifier"); in TEST()
927 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.2}"), 42l), format_error, in TEST()
928 "invalid format specifier"); in TEST()
929 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.2f}"), 42l), format_error, in TEST()
930 "invalid format specifier"); in TEST()
931 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.2}"), 42ul), format_error, in TEST()
932 "invalid format specifier"); in TEST()
933 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.2f}"), 42ul), format_error, in TEST()
934 "invalid format specifier"); in TEST()
935 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.2}"), 42ll), format_error, in TEST()
936 "invalid format specifier"); in TEST()
937 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.2f}"), 42ll), format_error, in TEST()
938 "invalid format specifier"); in TEST()
939 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.2}"), 42ull), format_error, in TEST()
940 "invalid format specifier"); in TEST()
941 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.2f}"), 42ull), format_error, in TEST()
942 "invalid format specifier"); in TEST()
943 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:3.0}"), 'x'), format_error, in TEST()
944 "invalid format specifier"); in TEST()
945 EXPECT_EQ(fmt::format("{0:.2}", 1.2345), "1.2"); in TEST()
946 EXPECT_EQ(fmt::format("{0:.2}", 1.2345l), "1.2"); in TEST()
947 EXPECT_EQ(fmt::format("{:.2}", 1.234e56), "1.2e+56"); in TEST()
948 EXPECT_EQ(fmt::format("{0:.3}", 1.1), "1.1"); in TEST()
949 EXPECT_EQ(fmt::format("{:.0e}", 1.0L), "1e+00"); in TEST()
950 EXPECT_EQ(fmt::format("{:9.1e}", 0.0), " 0.0e+00"); in TEST()
952 fmt::format("{:.494}", 4.9406564584124654E-324), in TEST()
959 "480352649347201937902681071074917033322268447533357208324319361e-324"); in TEST()
961 fmt::format("{:.1074f}", 1.1125369292536e-308), in TEST()
979 "-0X1.41FE3FFE71C9E000000000000000000000000000000000000000000000000000000" in TEST()
991 "-0XA.0FF1FFF38E4F0000000000000000000000000000000000000000000000000000000" in TEST()
1004 testing::Contains(fmt::format("{:.838A}", -2.14001164E+38))); in TEST()
1008 EXPECT_EQ(fmt::format("{:.0}", ld), "3e-4932"); in TEST()
1010 fmt::format("{:0g}", std::numeric_limits<long double>::denorm_min()), in TEST()
1011 "3.6452e-4951"); in TEST()
1014 EXPECT_EQ(fmt::format("{:#.0f}", 123.0), "123."); in TEST()
1015 EXPECT_EQ(fmt::format("{:.02f}", 1.234), "1.23"); in TEST()
1016 EXPECT_EQ(fmt::format("{:.1g}", 0.001), "0.001"); in TEST()
1017 EXPECT_EQ(fmt::format("{}", 1019666432.0f), "1019666400"); in TEST()
1018 EXPECT_EQ(fmt::format("{:.0e}", 9.5), "1e+01"); in TEST()
1019 EXPECT_EQ(fmt::format("{:.1e}", 1e-34), "1.0e-34"); in TEST()
1022 (void)fmt::format(runtime("{0:.2}"), reinterpret_cast<void*>(0xcafe)), in TEST()
1023 format_error, "invalid format specifier"); in TEST()
1025 (void)fmt::format(runtime("{0:.2f}"), reinterpret_cast<void*>(0xcafe)), in TEST()
1026 format_error, "invalid format specifier"); in TEST()
1027 EXPECT_THROW_MSG((void)fmt::format(runtime("{:.{}e}"), 42.0, in TEST()
1031 (void)fmt::format("{:.2147483646f}", -2.2121295195081227E+304), in TEST()
1034 EXPECT_EQ(fmt::format("{0:.2}", "str"), "st"); in TEST()
1035 EXPECT_EQ(fmt::format("{0:.5}", "вожыкі"), "вожык"); in TEST()
1036 EXPECT_EQ(fmt::format("{0:.6}", "123456\xad"), "123456"); in TEST()
1040 auto result = fmt::format("{:.4}", "caf\u00e9s"); // cafés in TEST()
1049 EXPECT_THROW_MSG((void)fmt::format(runtime(format_str), 0.0), format_error, in TEST()
1050 "invalid format string"); in TEST()
1054 EXPECT_THROW_MSG((void)fmt::format(runtime(format_str), 0.0), format_error, in TEST()
1058 EXPECT_THROW_MSG((void)fmt::format(runtime(format_str), 0.0), format_error, in TEST()
1061 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{"), 0.0), format_error, in TEST()
1062 "invalid format string"); in TEST()
1063 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{}"), 0.0), format_error, in TEST()
1065 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{?}}"), 0.0), format_error, in TEST()
1066 "invalid format string"); in TEST()
1067 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}"), 0, 0), format_error, in TEST()
1068 "invalid format specifier"); in TEST()
1069 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}}"), 0.0), format_error, in TEST()
1072 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{0:}}"), 0.0), format_error, in TEST()
1073 "invalid format string"); in TEST()
1075 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}}"), 0.0, -1), in TEST()
1077 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}}"), 0.0, (INT_MAX + 1u)), in TEST()
1079 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}}"), 0.0, -1l), in TEST()
1083 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}}"), 0.0, (value + 1)), in TEST()
1086 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}}"), 0.0, (INT_MAX + 1ul)), in TEST()
1089 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}}"), 0.0, '0'), in TEST()
1091 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}}"), 0.0, 0.0), in TEST()
1094 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}}"), 42, 2), format_error, in TEST()
1095 "invalid format specifier"); in TEST()
1096 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}f}"), 42, 2), format_error, in TEST()
1097 "invalid format specifier"); in TEST()
1098 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}}"), 42u, 2), format_error, in TEST()
1099 "invalid format specifier"); in TEST()
1100 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}f}"), 42u, 2), in TEST()
1101 format_error, "invalid format specifier"); in TEST()
1102 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}}"), 42l, 2), format_error, in TEST()
1103 "invalid format specifier"); in TEST()
1104 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}f}"), 42l, 2), in TEST()
1105 format_error, "invalid format specifier"); in TEST()
1106 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}}"), 42ul, 2), in TEST()
1107 format_error, "invalid format specifier"); in TEST()
1108 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}f}"), 42ul, 2), in TEST()
1109 format_error, "invalid format specifier"); in TEST()
1110 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}}"), 42ll, 2), in TEST()
1111 format_error, "invalid format specifier"); in TEST()
1112 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}f}"), 42ll, 2), in TEST()
1113 format_error, "invalid format specifier"); in TEST()
1114 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}}"), 42ull, 2), in TEST()
1115 format_error, "invalid format specifier"); in TEST()
1116 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}f}"), 42ull, 2), in TEST()
1117 format_error, "invalid format specifier"); in TEST()
1118 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:3.{1}}"), 'x', 0), in TEST()
1119 format_error, "invalid format specifier"); in TEST()
1120 EXPECT_EQ(fmt::format("{0:.{1}}", 1.2345, 2), "1.2"); in TEST()
1121 EXPECT_EQ(fmt::format("{1:.{0}}", 2, 1.2345l), "1.2"); in TEST()
1123 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}}"), in TEST()
1125 format_error, "invalid format specifier"); in TEST()
1126 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:.{1}f}"), in TEST()
1128 format_error, "invalid format specifier"); in TEST()
1130 EXPECT_EQ(fmt::format("{0:.{1}}", "str", 2), "st"); in TEST()
1134 EXPECT_EQ(fmt::format("{}", true), "true"); in TEST()
1135 EXPECT_EQ(fmt::format("{}", false), "false"); in TEST()
1136 EXPECT_EQ(fmt::format("{:d}", true), "1"); in TEST()
1137 EXPECT_EQ(fmt::format("{:5}", true), "true "); in TEST()
1138 EXPECT_EQ(fmt::format("{:s}", true), "true"); in TEST()
1139 EXPECT_EQ(fmt::format("{:s}", false), "false"); in TEST()
1140 EXPECT_EQ(fmt::format("{:6s}", false), "false "); in TEST()
1141 EXPECT_THROW_MSG((void)fmt::format(runtime("{:c}"), false), format_error, in TEST()
1142 "invalid format specifier"); in TEST()
1147 EXPECT_EQ(fmt::format("{0:d}", s), "42"); in TEST()
1149 EXPECT_EQ(fmt::format("{0:d}", us), "42"); in TEST()
1160 const char* message = "invalid format specifier"; in check_unknown_types()
1161 EXPECT_THROW_MSG((void)fmt::format(runtime(format_str), value), in check_unknown_types()
1168 EXPECT_THROW_MSG((void)fmt::format(runtime("{0:v"), 42), format_error, in TEST()
1169 "invalid format specifier"); in TEST()
1171 EXPECT_EQ(fmt::format("{:c}", static_cast<int>('x')), "x"); in TEST()
1175 EXPECT_EQ(fmt::format("{0:b}", 0), "0"); in TEST()
1176 EXPECT_EQ(fmt::format("{0:b}", 42), "101010"); in TEST()
1177 EXPECT_EQ(fmt::format("{0:b}", 42u), "101010"); in TEST()
1178 EXPECT_EQ(fmt::format("{0:b}", -42), "-101010"); in TEST()
1179 EXPECT_EQ(fmt::format("{0:b}", 12345), "11000000111001"); in TEST()
1180 EXPECT_EQ(fmt::format("{0:b}", 0x12345678), "10010001101000101011001111000"); in TEST()
1182 fmt::format("{0:b}", 0x90ABCDEF)); in TEST()
1184 fmt::format("{0:b}", max_value<uint32_t>())); in TEST()
1189 (static_cast<__uint128_t>(1) << ((__SIZEOF_INT128__ * CHAR_BIT) - 1)) - 1);
1190 constexpr auto int128_min = -int128_max - 1;
1196 EXPECT_EQ(fmt::format("{0}", 0), "0"); in TEST()
1197 EXPECT_EQ(fmt::format("{0}", 42), "42"); in TEST()
1198 EXPECT_EQ(fmt::format("{:}>", 42), "42>"); in TEST()
1199 EXPECT_EQ(fmt::format("{0:d}", 42), "42"); in TEST()
1200 EXPECT_EQ(fmt::format("{0}", 42u), "42"); in TEST()
1201 EXPECT_EQ(fmt::format("{0}", -42), "-42"); in TEST()
1202 EXPECT_EQ(fmt::format("{0}", 12345), "12345"); in TEST()
1203 EXPECT_EQ(fmt::format("{0}", 67890), "67890"); in TEST()
1205 EXPECT_EQ(fmt::format("{0}", static_cast<__int128_t>(0)), "0"); in TEST()
1206 EXPECT_EQ(fmt::format("{0}", static_cast<__uint128_t>(0)), "0"); in TEST()
1208 fmt::format("{0}", static_cast<__int128_t>(INT64_MAX) + 1)); in TEST()
1209 EXPECT_EQ("-9223372036854775809", in TEST()
1210 fmt::format("{0}", static_cast<__int128_t>(INT64_MIN) - 1)); in TEST()
1212 fmt::format("{0}", static_cast<__int128_t>(UINT64_MAX) + 1)); in TEST()
1214 fmt::format("{0}", int128_max)); in TEST()
1215 EXPECT_EQ("-170141183460469231731687303715884105728", in TEST()
1216 fmt::format("{0}", int128_min)); in TEST()
1218 fmt::format("{0}", uint128_max)); in TEST()
1223 EXPECT_EQ(buffer, fmt::format("{0}", INT_MIN)); in TEST()
1225 EXPECT_EQ(buffer, fmt::format("{0}", INT_MAX)); in TEST()
1227 EXPECT_EQ(buffer, fmt::format("{0}", UINT_MAX)); in TEST()
1228 safe_sprintf(buffer, "%ld", 0 - static_cast<unsigned long>(LONG_MIN)); in TEST()
1229 EXPECT_EQ(buffer, fmt::format("{0}", LONG_MIN)); in TEST()
1231 EXPECT_EQ(buffer, fmt::format("{0}", LONG_MAX)); in TEST()
1233 EXPECT_EQ(buffer, fmt::format("{0}", ULONG_MAX)); in TEST()
1237 EXPECT_EQ(fmt::format("{0:x}", 0), "0"); in TEST()
1238 EXPECT_EQ(fmt::format("{0:x}", 0x42), "42"); in TEST()
1239 EXPECT_EQ(fmt::format("{0:x}", 0x42u), "42"); in TEST()
1240 EXPECT_EQ(fmt::format("{0:x}", -0x42), "-42"); in TEST()
1241 EXPECT_EQ(fmt::format("{0:x}", 0x12345678), "12345678"); in TEST()
1242 EXPECT_EQ(fmt::format("{0:x}", 0x90abcdef), "90abcdef"); in TEST()
1243 EXPECT_EQ(fmt::format("{0:X}", 0x12345678), "12345678"); in TEST()
1244 EXPECT_EQ(fmt::format("{0:X}", 0x90ABCDEF), "90ABCDEF"); in TEST()
1246 EXPECT_EQ(fmt::format("{0:x}", static_cast<__int128_t>(0)), "0"); in TEST()
1247 EXPECT_EQ(fmt::format("{0:x}", static_cast<__uint128_t>(0)), "0"); in TEST()
1249 fmt::format("{0:x}", static_cast<__int128_t>(INT64_MAX) + 1)); in TEST()
1250 EXPECT_EQ("-8000000000000001", in TEST()
1251 fmt::format("{0:x}", static_cast<__int128_t>(INT64_MIN) - 1)); in TEST()
1253 fmt::format("{0:x}", static_cast<__int128_t>(UINT64_MAX) + 1)); in TEST()
1255 fmt::format("{0:x}", int128_max)); in TEST()
1256 EXPECT_EQ("-80000000000000000000000000000000", in TEST()
1257 fmt::format("{0:x}", int128_min)); in TEST()
1259 fmt::format("{0:x}", uint128_max)); in TEST()
1263 safe_sprintf(buffer, "-%x", 0 - static_cast<unsigned>(INT_MIN)); in TEST()
1264 EXPECT_EQ(buffer, fmt::format("{0:x}", INT_MIN)); in TEST()
1266 EXPECT_EQ(buffer, fmt::format("{0:x}", INT_MAX)); in TEST()
1268 EXPECT_EQ(buffer, fmt::format("{0:x}", UINT_MAX)); in TEST()
1269 safe_sprintf(buffer, "-%lx", 0 - static_cast<unsigned long>(LONG_MIN)); in TEST()
1270 EXPECT_EQ(buffer, fmt::format("{0:x}", LONG_MIN)); in TEST()
1272 EXPECT_EQ(buffer, fmt::format("{0:x}", LONG_MAX)); in TEST()
1274 EXPECT_EQ(buffer, fmt::format("{0:x}", ULONG_MAX)); in TEST()
1278 EXPECT_EQ(fmt::format("{0:o}", 0), "0"); in TEST()
1279 EXPECT_EQ(fmt::format("{0:o}", 042), "42"); in TEST()
1280 EXPECT_EQ(fmt::format("{0:o}", 042u), "42"); in TEST()
1281 EXPECT_EQ(fmt::format("{0:o}", -042), "-42"); in TEST()
1282 EXPECT_EQ(fmt::format("{0:o}", 012345670), "12345670"); in TEST()
1284 EXPECT_EQ(fmt::format("{0:o}", static_cast<__int128_t>(0)), "0"); in TEST()
1285 EXPECT_EQ(fmt::format("{0:o}", static_cast<__uint128_t>(0)), "0"); in TEST()
1287 fmt::format("{0:o}", static_cast<__int128_t>(INT64_MAX) + 1)); in TEST()
1288 EXPECT_EQ("-1000000000000000000001", in TEST()
1289 fmt::format("{0:o}", static_cast<__int128_t>(INT64_MIN) - 1)); in TEST()
1291 fmt::format("{0:o}", static_cast<__int128_t>(UINT64_MAX) + 1)); in TEST()
1293 fmt::format("{0:o}", int128_max)); in TEST()
1294 EXPECT_EQ("-2000000000000000000000000000000000000000000", in TEST()
1295 fmt::format("{0:o}", int128_min)); in TEST()
1297 fmt::format("{0:o}", uint128_max)); in TEST()
1301 safe_sprintf(buffer, "-%o", 0 - static_cast<unsigned>(INT_MIN)); in TEST()
1302 EXPECT_EQ(buffer, fmt::format("{0:o}", INT_MIN)); in TEST()
1304 EXPECT_EQ(buffer, fmt::format("{0:o}", INT_MAX)); in TEST()
1306 EXPECT_EQ(buffer, fmt::format("{0:o}", UINT_MAX)); in TEST()
1307 safe_sprintf(buffer, "-%lo", 0 - static_cast<unsigned long>(LONG_MIN)); in TEST()
1308 EXPECT_EQ(buffer, fmt::format("{0:o}", LONG_MIN)); in TEST()
1310 EXPECT_EQ(buffer, fmt::format("{0:o}", LONG_MAX)); in TEST()
1312 EXPECT_EQ(buffer, fmt::format("{0:o}", ULONG_MAX)); in TEST()
1316 EXPECT_EQ(fmt::format("{:L}", 1234), "1234"); in TEST()
1320 EXPECT_EQ(fmt::format("{}", 0.0f), "0"); in TEST()
1321 EXPECT_EQ(fmt::format("{0:f}", 392.5f), "392.500000"); in TEST()
1325 EXPECT_EQ(fmt::format("{}", 0.0), "0"); in TEST()
1327 EXPECT_EQ(fmt::format("{:}", 0.0), "0"); in TEST()
1328 EXPECT_EQ(fmt::format("{:f}", 0.0), "0.000000"); in TEST()
1329 EXPECT_EQ(fmt::format("{:g}", 0.0), "0"); in TEST()
1330 EXPECT_EQ(fmt::format("{:}", 392.65), "392.65"); in TEST()
1331 EXPECT_EQ(fmt::format("{:g}", 392.65), "392.65"); in TEST()
1332 EXPECT_EQ(fmt::format("{:G}", 392.65), "392.65"); in TEST()
1333 EXPECT_EQ(fmt::format("{:g}", 4.9014e6), "4.9014e+06"); in TEST()
1334 EXPECT_EQ(fmt::format("{:f}", 392.65), "392.650000"); in TEST()
1335 EXPECT_EQ(fmt::format("{:F}", 392.65), "392.650000"); in TEST()
1336 EXPECT_EQ(fmt::format("{:L}", 42.0), "42"); in TEST()
1337 EXPECT_EQ(fmt::format("{:24a}", 4.2f), " 0x1.0cccccp+2"); in TEST()
1338 EXPECT_EQ(fmt::format("{:24a}", 4.2), " 0x1.0cccccccccccdp+2"); in TEST()
1339 EXPECT_EQ(fmt::format("{:<24a}", 4.2), "0x1.0cccccccccccdp+2 "); in TEST()
1340 EXPECT_EQ(fmt::format("{0:e}", 392.65), "3.926500e+02"); in TEST()
1341 EXPECT_EQ(fmt::format("{0:E}", 392.65), "3.926500E+02"); in TEST()
1342 EXPECT_EQ(fmt::format("{0:+010.4g}", 392.65), "+0000392.6"); in TEST()
1346 EXPECT_EQ(fmt::format("{:.10a}", xd), "0x1.ffffffffffp+2"); in TEST()
1347 EXPECT_EQ(fmt::format("{:.9a}", xd), "0x2.000000000p+2"); in TEST()
1350 auto ld = 0xf.ffffffffffp-3l; in TEST()
1351 EXPECT_EQ(fmt::format("{:a}", ld), "0xf.ffffffffffp-3"); in TEST()
1352 EXPECT_EQ(fmt::format("{:.10a}", ld), "0xf.ffffffffffp-3"); in TEST()
1353 EXPECT_EQ(fmt::format("{:.9a}", ld), "0x1.000000000p+1"); in TEST()
1359 EXPECT_EQ(fmt::format("{:a}", d), "0x1p-1022"); in TEST()
1360 EXPECT_EQ(fmt::format("{:#a}", d), "0x1.p-1022"); in TEST()
1363 EXPECT_EQ(fmt::format("{:a}", d), "0x1.fffffffffffffp+1023"); in TEST()
1366 EXPECT_EQ(fmt::format("{:a}", d), "0x0.0000000000001p-1022"); in TEST()
1371 EXPECT_EQ(fmt::format("{:a}", ld), "0x8p-16385"); in TEST()
1374 EXPECT_EQ(fmt::format("{:a}", ld), "0xf.fffffffffffffffp+16380"); in TEST()
1377 EXPECT_EQ(fmt::format("{:a}", ld), "0x0.000000000000001p-16382"); in TEST()
1380 EXPECT_EQ(fmt::format("{:.10a}", 4.2), "0x1.0ccccccccdp+2"); in TEST()
1382 EXPECT_EQ(fmt::format("{:a}", -42.0), "-0x1.5p+5"); in TEST()
1383 EXPECT_EQ(fmt::format("{:A}", -42.0), "-0X1.5P+5"); in TEST()
1385 EXPECT_EQ(fmt::format("{:f}", 9223372036854775807.0), in TEST()
1390 EXPECT_EQ(fmt::format("{:.0f}", 0.0), "0"); in TEST()
1391 EXPECT_EQ(fmt::format("{:.0f}", 0.01), "0"); in TEST()
1392 EXPECT_EQ(fmt::format("{:.0f}", 0.1), "0"); in TEST()
1393 EXPECT_EQ(fmt::format("{:.3f}", 0.00049), "0.000"); in TEST()
1394 EXPECT_EQ(fmt::format("{:.3f}", 0.0005), "0.001"); in TEST()
1395 EXPECT_EQ(fmt::format("{:.3f}", 0.00149), "0.001"); in TEST()
1396 EXPECT_EQ(fmt::format("{:.3f}", 0.0015), "0.002"); in TEST()
1397 EXPECT_EQ(fmt::format("{:.3f}", 0.9999), "1.000"); in TEST()
1398 EXPECT_EQ(fmt::format("{:.3}", 0.00123), "0.00123"); in TEST()
1399 EXPECT_EQ(fmt::format("{:.16g}", 0.1), "0.1"); in TEST()
1400 EXPECT_EQ(fmt::format("{:.0}", 1.0), "1"); in TEST()
1402 fmt::format("{:.17f}", 225.51575035152064)); in TEST()
1403 EXPECT_EQ(fmt::format("{:.1f}", -761519619559038.2), "-761519619559038.2"); in TEST()
1404 EXPECT_EQ("1.9156918820264798e-56", in TEST()
1405 fmt::format("{}", 1.9156918820264798e-56)); in TEST()
1406 EXPECT_EQ(fmt::format("{:.4f}", 7.2809479766055470e-15), "0.0000"); in TEST()
1410 EXPECT_EQ(fmt::format("{}", 1e-4), "0.0001"); in TEST()
1411 EXPECT_EQ(fmt::format("{}", 1e-5), "1e-05"); in TEST()
1412 EXPECT_EQ(fmt::format("{}", 1e15), "1000000000000000"); in TEST()
1413 EXPECT_EQ(fmt::format("{}", 1e16), "1e+16"); in TEST()
1414 EXPECT_EQ(fmt::format("{}", 9.999e-5), "9.999e-05"); in TEST()
1415 EXPECT_EQ(fmt::format("{}", 1e10), "10000000000"); in TEST()
1416 EXPECT_EQ(fmt::format("{}", 1e11), "100000000000"); in TEST()
1417 EXPECT_EQ(fmt::format("{}", 1234e7), "12340000000"); in TEST()
1418 EXPECT_EQ(fmt::format("{}", 1234e-2), "12.34"); in TEST()
1419 EXPECT_EQ(fmt::format("{}", 1234e-6), "0.001234"); in TEST()
1420 EXPECT_EQ(fmt::format("{}", 0.1f), "0.1"); in TEST()
1421 EXPECT_EQ(fmt::format("{}", 1.35631564e-19f), "1.3563156e-19"); in TEST()
1426 EXPECT_EQ(fmt::format("{}", nan), "nan"); in TEST()
1427 EXPECT_EQ(fmt::format("{:+}", nan), "+nan"); in TEST()
1428 EXPECT_EQ(fmt::format("{:+06}", nan), " +nan"); in TEST()
1429 EXPECT_EQ(fmt::format("{:<+06}", nan), "+nan "); in TEST()
1430 EXPECT_EQ(fmt::format("{:^+06}", nan), " +nan "); in TEST()
1431 EXPECT_EQ(fmt::format("{:>+06}", nan), " +nan"); in TEST()
1432 if (std::signbit(-nan)) { in TEST()
1433 EXPECT_EQ(fmt::format("{}", -nan), "-nan"); in TEST()
1434 EXPECT_EQ(fmt::format("{:+06}", -nan), " -nan"); in TEST()
1438 EXPECT_EQ(fmt::format("{: }", nan), " nan"); in TEST()
1439 EXPECT_EQ(fmt::format("{:F}", nan), "NAN"); in TEST()
1440 EXPECT_EQ(fmt::format("{:<7}", nan), "nan "); in TEST()
1441 EXPECT_EQ(fmt::format("{:^7}", nan), " nan "); in TEST()
1442 EXPECT_EQ(fmt::format("{:>7}", nan), " nan"); in TEST()
1447 EXPECT_EQ(fmt::format("{}", inf), "inf"); in TEST()
1448 EXPECT_EQ(fmt::format("{:+}", inf), "+inf"); in TEST()
1449 EXPECT_EQ(fmt::format("{}", -inf), "-inf"); in TEST()
1450 EXPECT_EQ(fmt::format("{:+06}", inf), " +inf"); in TEST()
1451 EXPECT_EQ(fmt::format("{:+06}", -inf), " -inf"); in TEST()
1452 EXPECT_EQ(fmt::format("{:<+06}", inf), "+inf "); in TEST()
1453 EXPECT_EQ(fmt::format("{:^+06}", inf), " +inf "); in TEST()
1454 EXPECT_EQ(fmt::format("{:>+06}", inf), " +inf"); in TEST()
1455 EXPECT_EQ(fmt::format("{: }", inf), " inf"); in TEST()
1456 EXPECT_EQ(fmt::format("{:F}", inf), "INF"); in TEST()
1457 EXPECT_EQ(fmt::format("{:<7}", inf), "inf "); in TEST()
1458 EXPECT_EQ(fmt::format("{:^7}", inf), " inf "); in TEST()
1459 EXPECT_EQ(fmt::format("{:>7}", inf), " inf"); in TEST()
1463 EXPECT_EQ(fmt::format("{0:}", 0.0l), "0"); in TEST()
1464 EXPECT_EQ(fmt::format("{0:f}", 0.0l), "0.000000"); in TEST()
1465 EXPECT_EQ(fmt::format("{:.1f}", 0.000000001l), "0.0"); in TEST()
1466 EXPECT_EQ(fmt::format("{:.2f}", 0.099l), "0.10"); in TEST()
1467 EXPECT_EQ(fmt::format("{0:}", 392.65l), "392.65"); in TEST()
1468 EXPECT_EQ(fmt::format("{0:g}", 392.65l), "392.65"); in TEST()
1469 EXPECT_EQ(fmt::format("{0:G}", 392.65l), "392.65"); in TEST()
1470 EXPECT_EQ(fmt::format("{0:f}", 392.65l), "392.650000"); in TEST()
1471 EXPECT_EQ(fmt::format("{0:F}", 392.65l), "392.650000"); in TEST()
1474 EXPECT_EQ(buffer, fmt::format("{0:e}", 392.65l)); in TEST()
1475 EXPECT_EQ(fmt::format("{0:+010.4g}", 392.64l), "+0000392.6"); in TEST()
1480 EXPECT_EQ(buffer, fmt::format("{:a}", ld)); in TEST()
1482 EXPECT_EQ(fmt::format("{:a}", ld), "0xd.3d70a3d70a3d70ap-2"); in TEST()
1489 EXPECT_EQ(fmt::format("{0}", 'a'), "a"); in TEST()
1490 EXPECT_EQ(fmt::format("{0:c}", 'z'), "z"); in TEST()
1493 std::string format_str = fmt::format("{{:{}}}", *type); in TEST()
1494 EXPECT_EQ(fmt::format(runtime(format_str), n), in TEST()
1495 fmt::format(runtime(format_str), 'x')) in TEST()
1498 EXPECT_EQ(fmt::format("{:02X}", n), fmt::format("{:02X}", 'x')); in TEST()
1500 EXPECT_EQ(fmt::format("{}", '\n'), "\n"); in TEST()
1501 EXPECT_EQ(fmt::format("{:?}", '\n'), "'\\n'"); in TEST()
1502 EXPECT_EQ(fmt::format("{:x}", '\xff'), "ff"); in TEST()
1507 EXPECT_EQ(fmt::format("{}", c), "x"); in TEST()
1511 EXPECT_EQ(fmt::format("{}", static_cast<unsigned char>(42)), "42"); in TEST()
1512 EXPECT_EQ(fmt::format("{}", static_cast<uint8_t>(42)), "42"); in TEST()
1517 EXPECT_EQ(fmt::format("{0}", "test"), "test"); in TEST()
1518 EXPECT_EQ(fmt::format("{0:s}", "test"), "test"); in TEST()
1520 EXPECT_EQ(fmt::format("{0}", nonconst), "nonconst"); in TEST()
1522 EXPECT_THROW_MSG((void)fmt::format("{}", nullstr), format_error, in TEST()
1524 EXPECT_THROW_MSG((void)fmt::format("{:s}", nullstr), format_error, in TEST()
1532 EXPECT_EQ(fmt::format("{0}", static_cast<void*>(nullptr)), "0x0"); in TEST()
1533 EXPECT_EQ(fmt::format("{0}", reinterpret_cast<void*>(0x1234)), "0x1234"); in TEST()
1534 EXPECT_EQ(fmt::format("{0:p}", reinterpret_cast<void*>(0x1234)), "0x1234"); in TEST()
1535 // On CHERI (or other fat-pointer) systems, the size of a pointer is greater in TEST()
1537 // portable address-as-an-integer type (yet) in C++, so we use `size_t` as in TEST()
1540 fmt::format("{0}", reinterpret_cast<void*>(~uintptr_t()))); in TEST()
1542 fmt::format("{}", fmt::ptr(reinterpret_cast<int*>(0x1234)))); in TEST()
1544 EXPECT_EQ(fmt::format("{}", fmt::ptr(up.get())), in TEST()
1545 fmt::format("{}", fmt::ptr(up))); in TEST()
1550 EXPECT_EQ(fmt::format("{}", fmt::ptr(upcd.get())), in TEST()
1551 fmt::format("{}", fmt::ptr(upcd))); in TEST()
1553 EXPECT_EQ(fmt::format("{}", fmt::ptr(sp.get())), in TEST()
1554 fmt::format("{}", fmt::ptr(sp))); in TEST()
1555 EXPECT_EQ(fmt::format("{}", fmt::detail::bit_cast<const void*>( in TEST()
1557 fmt::format("{}", fmt::ptr(function_pointer_test))); in TEST()
1558 EXPECT_EQ(fmt::format("{}", nullptr), "0x0"); in TEST()
1581 EXPECT_EQ(fmt::format("{}", fmt::underlying(color::red)), "0"); in TEST()
1582 EXPECT_EQ(fmt::format("{}", test_ns::color::red), "0"); in TEST()
1586 EXPECT_EQ(fmt::format("{0}", std::string("test")), "test"); in TEST()
1587 EXPECT_EQ(fmt::format("{0}", std::string("test")), "test"); in TEST()
1588 EXPECT_EQ(fmt::format("{:?}", std::string("test")), "\"test\""); in TEST()
1589 EXPECT_EQ(fmt::format("{:*^10?}", std::string("test")), "**\"test\"**"); in TEST()
1590 EXPECT_EQ(fmt::format("{:?}", std::string("\test")), "\"\\test\""); in TEST()
1591 EXPECT_THROW((void)fmt::format(fmt::runtime("{:x}"), std::string("test")), in TEST()
1596 EXPECT_EQ(fmt::format("{}", string_view("test")), "test"); in TEST()
1597 EXPECT_EQ(fmt::format("{:?}", string_view("t\nst")), "\"t\\nst\""); in TEST()
1598 EXPECT_EQ(fmt::format("{}", string_view()), ""); in TEST()
1606 auto format(string_viewable, format_context& ctx) -> decltype(ctx.out()) { in format() function
1607 return formatter<std::string_view>::format("foo", ctx); in format()
1613 EXPECT_EQ(fmt::format("{}", std::string_view("test")), "test"); in TEST()
1614 EXPECT_EQ(fmt::format("{}", string_viewable()), "foo"); in TEST()
1624 auto format(explicitly_convertible_to_std_string_view v, format_context& ctx) in format() function
1625 -> decltype(ctx.out()) { in format()
1632 fmt::format("{}", explicitly_convertible_to_std_string_view())); in TEST()
1641 FMT_CONSTEXPR auto parse(ParseContext& ctx) -> decltype(ctx.begin()) { in parse()
1647 auto format(const date& d, format_context& ctx) -> decltype(ctx.out()) { in format() function
1648 // Namespace-qualify to avoid ambiguity with std::format_to. in format()
1649 fmt::format_to(ctx.out(), "{}-{}-{}", d.year(), d.month(), d.day()); in format()
1656 auto format(Answer, FormatContext& ctx) -> decltype(ctx.out()) { in format() function
1657 return formatter<int>::format(42, ctx); in format()
1663 EXPECT_THROW_MSG((void)fmt::format(runtime("{:s}"), date(2012, 12, 9)), in TEST()
1664 format_error, "unknown format specifier"); in TEST()
1665 EXPECT_EQ(fmt::format("{0}", Answer()), "42"); in TEST()
1666 EXPECT_EQ(fmt::format("{:04}", Answer()), "0042"); in TEST()
1678 fmt::format("{0:0.10f}:{1:04}:{2:+g}:{3}:{4}:{5}:%", 1.234, 42, in TEST()
1683 std::string message = fmt::format("The answer is {}", 42); in TEST()
1686 EXPECT_EQ(fmt::format("{}", 42), "42"); in TEST()
1707 fmt::format("First, thou shalt count to {0}", "three")); in TEST()
1708 EXPECT_EQ(fmt::format("Bring me a {}", "shrubbery"), "Bring me a shrubbery"); in TEST()
1709 EXPECT_EQ(fmt::format("From {} to {}", 1, 3), "From 1 to 3"); in TEST()
1712 safe_sprintf(buffer, "%03.2f", -1.2); in TEST()
1713 EXPECT_EQ(buffer, fmt::format("{:03.2f}", -1.2)); in TEST()
1715 EXPECT_EQ(fmt::format("{0}, {1}, {2}", 'a', 'b', 'c'), "a, b, c"); in TEST()
1716 EXPECT_EQ(fmt::format("{}, {}, {}", 'a', 'b', 'c'), "a, b, c"); in TEST()
1717 EXPECT_EQ(fmt::format("{2}, {1}, {0}", 'a', 'b', 'c'), "c, b, a"); in TEST()
1718 EXPECT_EQ(fmt::format("{0}{1}{0}", "abra", "cad"), "abracadabra"); in TEST()
1721 fmt::format("{:<30}", "left aligned")); in TEST()
1723 fmt::format("{:>30}", "right aligned")); in TEST()
1725 fmt::format("{:^30}", "centered")); in TEST()
1727 fmt::format("{:*^30}", "centered")); in TEST()
1729 EXPECT_EQ(fmt::format("{:+f}; {:+f}", 3.14, -3.14), "+3.140000; -3.140000"); in TEST()
1730 EXPECT_EQ(fmt::format("{: f}; {: f}", 3.14, -3.14), " 3.140000; -3.140000"); in TEST()
1731 EXPECT_EQ(fmt::format("{:-f}; {:-f}", 3.14, -3.14), "3.140000; -3.140000"); in TEST()
1734 fmt::format("int: {0:d}; hex: {0:x}; oct: {0:o}", 42)); in TEST()
1736 fmt::format("int: {0:d}; hex: {0:#x}; oct: {0:#o}", 42)); in TEST()
1738 EXPECT_EQ(fmt::format("The answer is {}", 42), "The answer is 42"); in TEST()
1740 (void)fmt::format(runtime("The answer is {:d}"), "forty-two"), in TEST()
1741 format_error, "invalid format specifier"); in TEST()
1757 EXPECT_EQ(fmt::format("{}c{}", "ab", 1), "abc1"); in TEST()
1761 auto s = fmt::format("{:10}", fmt::bytes("ёжик")); in TEST()
1767 EXPECT_EQ(fmt::format("{}", fmt::group_digits(10000000)), "10,000,000"); in TEST()
1768 EXPECT_EQ(fmt::format("{:8}", fmt::group_digits(1000)), " 1,000"); in TEST()
1778 auto format(point p, format_context& ctx) const -> decltype(ctx.out()) { in format() function
1779 return write_padded(ctx, [this, p](auto out) -> decltype(out) { in format()
1787 EXPECT_EQ(fmt::format("{:>16.2f}", point{1, 2}), " (1.00, 2.00)"); in TEST()
1792 auto format_as(test_enum e) -> int { return e; } in format_as()
1802 EXPECT_EQ(fmt::format("({})", join(v1, v1 + 3, ", ")), "(1, 2, 3)"); in TEST()
1803 EXPECT_EQ(fmt::format("({})", join(v1, v1 + 1, ", ")), "(1)"); in TEST()
1804 EXPECT_EQ(fmt::format("({})", join(v1, v1, ", ")), "()"); in TEST()
1805 EXPECT_EQ(fmt::format("({:03})", join(v1, v1 + 3, ", ")), "(001, 002, 003)"); in TEST()
1807 fmt::format("({:+06.2f})", join(v2.begin(), v2.end(), ", "))); in TEST()
1809 EXPECT_EQ(fmt::format("{0:{1}}", join(v1, v1 + 3, ", "), 1), "1, 2, 3"); in TEST()
1811 EXPECT_EQ(fmt::format("{}, {}", v3[0], v3[1]), in TEST()
1812 fmt::format("{}", join(v3, v3 + 2, ", "))); in TEST()
1814 EXPECT_EQ(fmt::format("({})", join(v1, ", ")), "(1, 2, 3)"); in TEST()
1815 EXPECT_EQ(fmt::format("({:+06.2f})", join(v2, ", ")), "(+01.20, +03.40)"); in TEST()
1818 EXPECT_EQ(fmt::format("{}", join(v4, " ")), "0 1 0"); in TEST()
1824 EXPECT_EQ(fmt::format("{}", fmt::join(v, ", ")), "1, 2, 3"); in TEST()
1828 std::string vformat_message(int id, const char* format, fmt::format_args args) { in vformat_message() argument
1831 vformat_to(fmt::appender(buffer), format, args); in vformat_message()
1836 std::string format_message(int id, const char* format, const Args&... args) { in format_message() argument
1838 return vformat_message(id, format, va); in format_message()
1847 void print_error(const char* file, int line, const char* format, in print_error() argument
1850 fmt::print(format, args...); in print_error()
1855 fmt::format("{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}", 0, 1, 2, 3, 4, 5, in TEST()
1865 EXPECT_EQ(fmt::format(FMT_STRING("foo")), "foo"); in TEST()
1866 EXPECT_EQ(fmt::format(FMT_STRING("{}"), 42), "42"); in TEST()
1870 EXPECT_EQ("foobar", fmt::format(FMT_STRING("{foo}{bar}"), "bar"_a = "bar", in TEST()
1872 EXPECT_EQ(fmt::format(FMT_STRING("")), ""); in TEST()
1873 EXPECT_EQ(fmt::format(FMT_STRING(""), "arg"_a = 42), ""); in TEST()
1874 EXPECT_EQ(fmt::format(FMT_STRING("{answer}"), "answer"_a = Answer()), "42"); in TEST()
1875 EXPECT_EQ(fmt::format(FMT_STRING("{} {two}"), 1, "two"_a = 2), "1 2"); in TEST()
1881 EXPECT_EQ(fmt::format(FMT_STRING(static_with_null), 42), "42"); in TEST()
1882 EXPECT_EQ(fmt::format(FMT_STRING(static_no_null), 42), "42"); in TEST()
1888 EXPECT_EQ(fmt::format(FMT_STRING(with_null), 42), "42"); in TEST()
1889 EXPECT_EQ(fmt::format(FMT_STRING(no_null), 42), "42"); in TEST()
1892 EXPECT_EQ(fmt::format(FMT_STRING(std::string_view("{}")), 42), "42"); in TEST()
1897 EXPECT_EQ(fmt::format(FMT_STRING("{}"), Answer()), "42"); in TEST()
1899 EXPECT_EQ(fmt::format(FMT_STRING("{}"), answer), "42"); in TEST()
1903 EXPECT_EQ(fmt::format(FMT_STRING("{}"), const_answer), "42"); in TEST()
1909 auto udl_a = fmt::format("{first}{second}{first}{third}", "first"_a = "abra", in TEST()
1912 fmt::format("{first}{second}{first}{third}", fmt::arg("first", "abra"), in TEST()
1916 EXPECT_EQ(fmt::format("{answer}", "answer"_a = Answer()), "42"); in TEST()
1920 TEST(format_test, enum) { EXPECT_EQ(fmt::format("{}", foo), "0"); } in TEST()
1930 auto format_as(big_enum e) -> unsigned long long { return e; } in format_as()
1933 EXPECT_EQ(fmt::format("{}", big_enum_value), "5000000000"); in TEST()
1938 EXPECT_EQ(fmt::format(string_view("{}foo", 2), 42), "42"); in TEST()
1953 auto format(adl_test::fmt::detail::foo, format_context& ctx) in format() function
1954 -> decltype(ctx.out()) { in format()
1955 return formatter<std::string>::format("foo", ctx); in format()
2071 auto operator++() -> test_output_iterator& { in operator ++()
2075 auto operator++(int) -> test_output_iterator { in operator ++()
2080 auto operator*() -> char& { return *data; } in operator *()
2117 FMT_CONSTEXPR auto parse(format_parse_context& ctx) -> decltype(ctx.begin()) { in parse()
2122 auto format(check_back_appender, Context& ctx) -> decltype(ctx.out()) { in format() function
2133 EXPECT_EQ(fmt::format("{}", check_back_appender{}), "y"); in TEST()
2138 auto format_as(scoped_enum_as_int) -> int { return 42; } in format_as()
2141 auto format_as(scoped_enum_as_string_view) -> fmt::string_view { return "foo"; } in format_as()
2144 auto format_as(scoped_enum_as_string) -> std::string { return "foo"; } in format_as()
2147 auto format_as(struct_as_int) -> int { return 42; } in format_as()
2152 auto format_as(const struct_as_const_reference& s) -> const std::string& { in format_as()
2158 EXPECT_EQ(fmt::format("{}", test::scoped_enum_as_int()), "42"); in TEST()
2159 EXPECT_EQ(fmt::format("{}", test::scoped_enum_as_string_view()), "foo"); in TEST()
2160 EXPECT_EQ(fmt::format("{}", test::scoped_enum_as_string()), "foo"); in TEST()
2161 EXPECT_EQ(fmt::format("{}", test::struct_as_int()), "42"); in TEST()
2162 EXPECT_EQ(fmt::format("{}", test::struct_as_const_reference()), "foo"); in TEST()
2172 template <typename Char, typename T> auto check_enabled_formatter() -> bool { in check_enabled_formatter()
2204 EXPECT_EQ(fmt::format_int(-42).str(), "-42"); in TEST()
2205 EXPECT_EQ(fmt::format_int(-42).size(), 3u); in TEST()
2207 EXPECT_EQ(fmt::format_int(-42l).str(), "-42"); in TEST()
2209 EXPECT_EQ(fmt::format_int(-42ll).str(), "-42");\ in TEST()
2224 auto operator()(T value) -> bool { in operator ()()
2230 auto operator()(T) -> bool { in operator ()()
2236 const fmt::format_specs<>&) const -> bool override;
2240 const fmt::format_specs<>&) const -> bool { in do_put()
2246 EXPECT_EQ(fmt::format(loc, "{:L}", 42), "[42]"); in TEST()
2247 EXPECT_EQ(fmt::format(loc, "{:L}", -42), "[-42]"); in TEST()
2255 EXPECT_EQ(fmt::format(loc, "{:L}", 1000), in TEST()
2263 EXPECT_EQ(fmt::format(loc, "{:L}", 1234567890), "1,234,567,89,0"); in TEST()
2267 EXPECT_EQ(fmt::format(std::locale(), "{answer}", fmt::arg("answer", 42)), in TEST()
2273 EXPECT_EQ(fmt::format(loc, "{:Lx}", 123456789), "7,5bc,d15"); in TEST()
2274 EXPECT_EQ(fmt::format(loc, "{:#Lb}", -123456789), in TEST()
2275 "-0b111,010,110,111,100,110,100,010,101"); in TEST()
2276 EXPECT_EQ(fmt::format(loc, "{:10Lo}", 12345), " 30,071"); in TEST()
2294 EXPECT_EQ(fmt::format("{}", convertible_to_nonconst_cstring()), "bar"); in TEST()