OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 "0000000000" "0000000000" "0000000000", ALLOW_OCTALS)); | 74 "0000000000" "0000000000" "0000000000", ALLOW_OCTALS)); |
75 } | 75 } |
76 | 76 |
77 | 77 |
78 TEST(MalformedOctal) { | 78 TEST(MalformedOctal) { |
79 UnicodeCache uc; | 79 UnicodeCache uc; |
80 CHECK_EQ(8.0, StringToDouble(&uc, "08", ALLOW_HEX | ALLOW_OCTALS)); | 80 CHECK_EQ(8.0, StringToDouble(&uc, "08", ALLOW_HEX | ALLOW_OCTALS)); |
81 CHECK_EQ(81.0, StringToDouble(&uc, "081", ALLOW_HEX | ALLOW_OCTALS)); | 81 CHECK_EQ(81.0, StringToDouble(&uc, "081", ALLOW_HEX | ALLOW_OCTALS)); |
82 CHECK_EQ(78.0, StringToDouble(&uc, "078", ALLOW_HEX | ALLOW_OCTALS)); | 82 CHECK_EQ(78.0, StringToDouble(&uc, "078", ALLOW_HEX | ALLOW_OCTALS)); |
83 | 83 |
84 CHECK(isnan(StringToDouble(&uc, "07.7", ALLOW_HEX | ALLOW_OCTALS))); | 84 CHECK(std::isnan(StringToDouble(&uc, "07.7", ALLOW_HEX | ALLOW_OCTALS))); |
85 CHECK(isnan(StringToDouble(&uc, "07.8", ALLOW_HEX | ALLOW_OCTALS))); | 85 CHECK(std::isnan(StringToDouble(&uc, "07.8", ALLOW_HEX | ALLOW_OCTALS))); |
86 CHECK(isnan(StringToDouble(&uc, "07e8", ALLOW_HEX | ALLOW_OCTALS))); | 86 CHECK(std::isnan(StringToDouble(&uc, "07e8", ALLOW_HEX | ALLOW_OCTALS))); |
87 CHECK(isnan(StringToDouble(&uc, "07e7", ALLOW_HEX | ALLOW_OCTALS))); | 87 CHECK(std::isnan(StringToDouble(&uc, "07e7", ALLOW_HEX | ALLOW_OCTALS))); |
88 | 88 |
89 CHECK_EQ(8.7, StringToDouble(&uc, "08.7", ALLOW_HEX | ALLOW_OCTALS)); | 89 CHECK_EQ(8.7, StringToDouble(&uc, "08.7", ALLOW_HEX | ALLOW_OCTALS)); |
90 CHECK_EQ(8e7, StringToDouble(&uc, "08e7", ALLOW_HEX | ALLOW_OCTALS)); | 90 CHECK_EQ(8e7, StringToDouble(&uc, "08e7", ALLOW_HEX | ALLOW_OCTALS)); |
91 | 91 |
92 CHECK_EQ(0.001, StringToDouble(&uc, "0.001", ALLOW_HEX | ALLOW_OCTALS)); | 92 CHECK_EQ(0.001, StringToDouble(&uc, "0.001", ALLOW_HEX | ALLOW_OCTALS)); |
93 CHECK_EQ(0.713, StringToDouble(&uc, "0.713", ALLOW_HEX | ALLOW_OCTALS)); | 93 CHECK_EQ(0.713, StringToDouble(&uc, "0.713", ALLOW_HEX | ALLOW_OCTALS)); |
94 | 94 |
95 CHECK_EQ(8.0, StringToDouble(&uc, "08", ALLOW_HEX)); | 95 CHECK_EQ(8.0, StringToDouble(&uc, "08", ALLOW_HEX)); |
96 CHECK_EQ(81.0, StringToDouble(&uc, "081", ALLOW_HEX)); | 96 CHECK_EQ(81.0, StringToDouble(&uc, "081", ALLOW_HEX)); |
97 CHECK_EQ(78.0, StringToDouble(&uc, "078", ALLOW_HEX)); | 97 CHECK_EQ(78.0, StringToDouble(&uc, "078", ALLOW_HEX)); |
(...skipping 18 matching lines...) Expand all Loading... |
116 StringToDouble(&uc, "077qqq", ALLOW_OCTALS | ALLOW_TRAILING_JUNK)); | 116 StringToDouble(&uc, "077qqq", ALLOW_OCTALS | ALLOW_TRAILING_JUNK)); |
117 CHECK_EQ(10.0, | 117 CHECK_EQ(10.0, |
118 StringToDouble(&uc, "10e", ALLOW_OCTALS | ALLOW_TRAILING_JUNK)); | 118 StringToDouble(&uc, "10e", ALLOW_OCTALS | ALLOW_TRAILING_JUNK)); |
119 CHECK_EQ(10.0, | 119 CHECK_EQ(10.0, |
120 StringToDouble(&uc, "10e-", ALLOW_OCTALS | ALLOW_TRAILING_JUNK)); | 120 StringToDouble(&uc, "10e-", ALLOW_OCTALS | ALLOW_TRAILING_JUNK)); |
121 } | 121 } |
122 | 122 |
123 | 123 |
124 TEST(NonStrDecimalLiteral) { | 124 TEST(NonStrDecimalLiteral) { |
125 UnicodeCache uc; | 125 UnicodeCache uc; |
126 CHECK(isnan(StringToDouble(&uc, " ", NO_FLAGS, OS::nan_value()))); | 126 CHECK(std::isnan(StringToDouble(&uc, " ", NO_FLAGS, OS::nan_value()))); |
127 CHECK(isnan(StringToDouble(&uc, "", NO_FLAGS, OS::nan_value()))); | 127 CHECK(std::isnan(StringToDouble(&uc, "", NO_FLAGS, OS::nan_value()))); |
128 CHECK(isnan(StringToDouble(&uc, " ", NO_FLAGS, OS::nan_value()))); | 128 CHECK(std::isnan(StringToDouble(&uc, " ", NO_FLAGS, OS::nan_value()))); |
129 CHECK_EQ(0.0, StringToDouble(&uc, "", NO_FLAGS)); | 129 CHECK_EQ(0.0, StringToDouble(&uc, "", NO_FLAGS)); |
130 CHECK_EQ(0.0, StringToDouble(&uc, " ", NO_FLAGS)); | 130 CHECK_EQ(0.0, StringToDouble(&uc, " ", NO_FLAGS)); |
131 } | 131 } |
132 | 132 |
133 TEST(IntegerStrLiteral) { | 133 TEST(IntegerStrLiteral) { |
134 UnicodeCache uc; | 134 UnicodeCache uc; |
135 CHECK_EQ(0.0, StringToDouble(&uc, "0.0", NO_FLAGS)); | 135 CHECK_EQ(0.0, StringToDouble(&uc, "0.0", NO_FLAGS)); |
136 CHECK_EQ(0.0, StringToDouble(&uc, "0", NO_FLAGS)); | 136 CHECK_EQ(0.0, StringToDouble(&uc, "0", NO_FLAGS)); |
137 CHECK_EQ(0.0, StringToDouble(&uc, "00", NO_FLAGS)); | 137 CHECK_EQ(0.0, StringToDouble(&uc, "00", NO_FLAGS)); |
138 CHECK_EQ(0.0, StringToDouble(&uc, "000", NO_FLAGS)); | 138 CHECK_EQ(0.0, StringToDouble(&uc, "000", NO_FLAGS)); |
139 CHECK_EQ(1.0, StringToDouble(&uc, "1", NO_FLAGS)); | 139 CHECK_EQ(1.0, StringToDouble(&uc, "1", NO_FLAGS)); |
140 CHECK_EQ(-1.0, StringToDouble(&uc, "-1", NO_FLAGS)); | 140 CHECK_EQ(-1.0, StringToDouble(&uc, "-1", NO_FLAGS)); |
141 CHECK_EQ(-1.0, StringToDouble(&uc, " -1 ", NO_FLAGS)); | 141 CHECK_EQ(-1.0, StringToDouble(&uc, " -1 ", NO_FLAGS)); |
142 CHECK_EQ(1.0, StringToDouble(&uc, " +1 ", NO_FLAGS)); | 142 CHECK_EQ(1.0, StringToDouble(&uc, " +1 ", NO_FLAGS)); |
143 CHECK(isnan(StringToDouble(&uc, " - 1 ", NO_FLAGS))); | 143 CHECK(std::isnan(StringToDouble(&uc, " - 1 ", NO_FLAGS))); |
144 CHECK(isnan(StringToDouble(&uc, " + 1 ", NO_FLAGS))); | 144 CHECK(std::isnan(StringToDouble(&uc, " + 1 ", NO_FLAGS))); |
145 | 145 |
146 CHECK_EQ(0.0, StringToDouble(&uc, "0e0", ALLOW_HEX | ALLOW_OCTALS)); | 146 CHECK_EQ(0.0, StringToDouble(&uc, "0e0", ALLOW_HEX | ALLOW_OCTALS)); |
147 CHECK_EQ(0.0, StringToDouble(&uc, "0e1", ALLOW_HEX | ALLOW_OCTALS)); | 147 CHECK_EQ(0.0, StringToDouble(&uc, "0e1", ALLOW_HEX | ALLOW_OCTALS)); |
148 CHECK_EQ(0.0, StringToDouble(&uc, "0e-1", ALLOW_HEX | ALLOW_OCTALS)); | 148 CHECK_EQ(0.0, StringToDouble(&uc, "0e-1", ALLOW_HEX | ALLOW_OCTALS)); |
149 CHECK_EQ(0.0, StringToDouble(&uc, "0e-100000", ALLOW_HEX | ALLOW_OCTALS)); | 149 CHECK_EQ(0.0, StringToDouble(&uc, "0e-100000", ALLOW_HEX | ALLOW_OCTALS)); |
150 CHECK_EQ(0.0, StringToDouble(&uc, "0e+100000", ALLOW_HEX | ALLOW_OCTALS)); | 150 CHECK_EQ(0.0, StringToDouble(&uc, "0e+100000", ALLOW_HEX | ALLOW_OCTALS)); |
151 CHECK_EQ(0.0, StringToDouble(&uc, "0.", ALLOW_HEX | ALLOW_OCTALS)); | 151 CHECK_EQ(0.0, StringToDouble(&uc, "0.", ALLOW_HEX | ALLOW_OCTALS)); |
152 } | 152 } |
153 | 153 |
154 TEST(LongNumberStr) { | 154 TEST(LongNumberStr) { |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 CHECK(EightBit1::is_valid(i)); | 279 CHECK(EightBit1::is_valid(i)); |
280 x = EightBit1::encode(i); | 280 x = EightBit1::encode(i); |
281 CHECK_EQ(i, EightBit1::decode(x)); | 281 CHECK_EQ(i, EightBit1::decode(x)); |
282 CHECK(EightBit2::is_valid(i)); | 282 CHECK(EightBit2::is_valid(i)); |
283 x = EightBit2::encode(i); | 283 x = EightBit2::encode(i); |
284 CHECK_EQ(i, EightBit2::decode(x)); | 284 CHECK_EQ(i, EightBit2::decode(x)); |
285 } | 285 } |
286 CHECK(!EightBit1::is_valid(256)); | 286 CHECK(!EightBit1::is_valid(256)); |
287 CHECK(!EightBit2::is_valid(256)); | 287 CHECK(!EightBit2::is_valid(256)); |
288 } | 288 } |
OLD | NEW |