| 75 | } |
| 76 | |
| 77 | TEST(ParserTest, ParseNumber) { |
| 78 | TestParseUnsigned(0ULL, "0"); |
| 79 | TestParseUnsigned(123ULL, "123"); |
| 80 | TestParseUnsigned(9223372036854775807ULL, |
| 81 | "9223372036854775807"); // LLONG_MAX |
| 82 | TestParseUnsigned(18446744073709551615ULL, |
| 83 | "18446744073709551615"); // ULLONG_MAX |
| 84 | |
| 85 | TestParseSigned(-1LL, "-1"); |
| 86 | TestParseSigned(-123LL, "-123"); |
| 87 | TestParseSigned(-9223372036854775808ULL, |
| 88 | "-9223372036854775808"); // LLONG_MIN |
| 89 | |
| 90 | TestParseDouble(-0.0, "-0.0"); |
| 91 | TestParseDouble(0.0, "0.0"); |
| 92 | TestParseDouble(0.1, "0.1"); |
| 93 | TestParseDouble(0.01, "0.01"); |
| 94 | TestParseDouble(-0.001, "-0.001"); |
| 95 | TestParseDouble(1e-6, "0.000001"); |
| 96 | TestParseDouble(-1.0, "-1.0"); |
| 97 | TestParseDouble(1.0, "1.00"); |
| 98 | TestParseDouble(-1.0, "-1.000"); |
| 99 | TestParseDouble(-1.1, "-1.1"); |
| 100 | TestParseDouble(10.1, "10.1"); |
| 101 | TestParseDouble(1000.0001, "1000.0001"); |
| 102 | TestParseDouble(-123e0, "-123e0"); |
| 103 | TestParseDouble(-0.0e+0, "-0.0e+0"); |
| 104 | TestParseDouble(1.23e-99, "1.23e-99"); |
| 105 | TestParseDouble(5.70899e+45, "5.70899e+45"); |
| 106 | TestParseDouble(1.01412e+31, "1.01412e+31"); |
| 107 | TestParseDouble(35184372088832.00390625, "35184372088832.00390625"); |
| 108 | TestParseDouble(72057594037927935E0, "72057594037927935E0"); |
| 109 | TestParseDouble(0.12345678901234567, "0.12345678901234567"); |
| 110 | TestParseDouble( |
| 111 | 18446744073709551616.0, |
| 112 | "18446744073709551616"); // ULLONG_MAX + 1, should overflow into double |
| 113 | TestParseDouble( |
| 114 | -9223372036854775809.0, |
| 115 | "-9223372036854775809"); // LLONG_MIN - 1, should overflow into double |
| 116 | TestParseDouble(0.0, "123e-100000"); |
| 117 | TestParseDouble(1234567890123456789012345.0, "1234567890123456789012345"); |
| 118 | TestParseDouble(-1234567890123456789012345.0, "-1234567890123456789012345"); |
| 119 | TestParseDouble(-1234567890123456789012345.0, "-1234567890123456789012345"); |
| 120 | } |
| 121 | |
| 122 | void ParseFloatInFiles() { |
| 123 | std::vector<std::string> files = {"./testdata/num/float-1.txt", |
nothing calls this directly
no test coverage detected