16 #include "absl/flags/marshalling.h"
25 #include "gtest/gtest.h"
29 TEST(MarshallingTest, TestBoolParsing) {
109 TEST(MarshallingTest, TestInt16Parsing) {
170 TEST(MarshallingTest, TestUint16Parsing) {
226 TEST(MarshallingTest, TestInt32Parsing) {
287 TEST(MarshallingTest, TestUint32Parsing) {
343 TEST(MarshallingTest, TestInt64Parsing) {
404 TEST(MarshallingTest, TestUInt64Parsing) {
458 TEST(MarshallingTest, TestFloatParsing) {
533 TEST(MarshallingTest, TestDoubleParsing) {
612 TEST(MarshallingTest, TestStringParsing) {
640 TEST(MarshallingTest, TestVectorOfStringParsing) {
642 std::vector<std::string>
value;
662 TEST(MarshallingTest, TestBoolUnparsing) {
669 TEST(MarshallingTest, TestInt16Unparsing) {
686 TEST(MarshallingTest, TestUint16Unparsing) {
699 TEST(MarshallingTest, TestInt32Unparsing) {
716 TEST(MarshallingTest, TestUint32Unparsing) {
729 TEST(MarshallingTest, TestInt64Unparsing) {
742 value = 0x7FFFFFFFFFFFFFFF;
744 value = 0xFFFFFFFFFFFFFFFF;
750 TEST(MarshallingTest, TestUint64Unparsing) {
759 value = 0xFFFFFFFFFFFFFFFF;
765 TEST(MarshallingTest, TestFloatUnparsing) {
780 TEST(MarshallingTest, TestDoubleUnparsing) {
793 value = std::nan(
"");
795 value = std::numeric_limits<double>::infinity();
801 TEST(MarshallingTest, TestStringUnparsing) {
811 template <
typename T>
812 void TestRoundtrip(
T v) {
819 TEST(MarshallingTest, TestFloatRoundTrip) {
821 TestRoundtrip(0.12
f);
822 TestRoundtrip(0.123
f);
823 TestRoundtrip(0.1234
f);
824 TestRoundtrip(0.12345
f);
825 TestRoundtrip(0.123456
f);
826 TestRoundtrip(0.1234567
f);
827 TestRoundtrip(0.12345678
f);
829 TestRoundtrip(0.1e20f);
830 TestRoundtrip(0.12e20f);
831 TestRoundtrip(0.123e20f);
832 TestRoundtrip(0.1234e20f);
833 TestRoundtrip(0.12345e20f);
834 TestRoundtrip(0.123456e20f);
835 TestRoundtrip(0.1234567e20f);
836 TestRoundtrip(0.12345678e20f);
838 TestRoundtrip(0.1e-20
f);
839 TestRoundtrip(0.12e-20
f);
840 TestRoundtrip(0.123e-20
f);
841 TestRoundtrip(0.1234e-20
f);
842 TestRoundtrip(0.12345e-20
f);
843 TestRoundtrip(0.123456e-20
f);
844 TestRoundtrip(0.1234567e-20
f);
845 TestRoundtrip(0.12345678e-20
f);
848 TEST(MarshallingTest, TestDoubleRoundTrip) {
851 TestRoundtrip(0.123);
852 TestRoundtrip(0.1234);
853 TestRoundtrip(0.12345);
854 TestRoundtrip(0.123456);
855 TestRoundtrip(0.1234567);
856 TestRoundtrip(0.12345678);
857 TestRoundtrip(0.123456789);
858 TestRoundtrip(0.1234567891);
859 TestRoundtrip(0.12345678912);
860 TestRoundtrip(0.123456789123);
861 TestRoundtrip(0.1234567891234);
862 TestRoundtrip(0.12345678912345);
863 TestRoundtrip(0.123456789123456);
864 TestRoundtrip(0.1234567891234567);
865 TestRoundtrip(0.12345678912345678);
867 TestRoundtrip(0.1e50);
868 TestRoundtrip(0.12e50);
869 TestRoundtrip(0.123e50);
870 TestRoundtrip(0.1234e50);
871 TestRoundtrip(0.12345e50);
872 TestRoundtrip(0.123456e50);
873 TestRoundtrip(0.1234567e50);
874 TestRoundtrip(0.12345678e50);
875 TestRoundtrip(0.123456789e50);
876 TestRoundtrip(0.1234567891e50);
877 TestRoundtrip(0.12345678912e50);
878 TestRoundtrip(0.123456789123e50);
879 TestRoundtrip(0.1234567891234e50);
880 TestRoundtrip(0.12345678912345e50);
881 TestRoundtrip(0.123456789123456e50);
882 TestRoundtrip(0.1234567891234567e50);
883 TestRoundtrip(0.12345678912345678e50);
885 TestRoundtrip(0.1e-50);
886 TestRoundtrip(0.12e-50);
887 TestRoundtrip(0.123e-50);
888 TestRoundtrip(0.1234e-50);
889 TestRoundtrip(0.12345e-50);
890 TestRoundtrip(0.123456e-50);
891 TestRoundtrip(0.1234567e-50);
892 TestRoundtrip(0.12345678e-50);
893 TestRoundtrip(0.123456789e-50);
894 TestRoundtrip(0.1234567891e-50);
895 TestRoundtrip(0.12345678912e-50);
896 TestRoundtrip(0.123456789123e-50);
897 TestRoundtrip(0.1234567891234e-50);
898 TestRoundtrip(0.12345678912345e-50);
899 TestRoundtrip(0.123456789123456e-50);
900 TestRoundtrip(0.1234567891234567e-50);
901 TestRoundtrip(0.12345678912345678e-50);