| 251 | } |
| 252 | |
| 253 | void toBigNumber() const { |
| 254 | // zero input |
| 255 | ASSERT_EQUALS(0, MathLib::toBigNumber("0")); |
| 256 | ASSERT_EQUALS(0, MathLib::toBigNumber("-0")); |
| 257 | ASSERT_EQUALS(0, MathLib::toBigNumber("+0")); |
| 258 | ASSERT_EQUALS(0, MathLib::toBigNumber("0L")); |
| 259 | ASSERT_EQUALS(0, MathLib::toBigNumber("0l")); |
| 260 | ASSERT_EQUALS(0, MathLib::toBigNumber("0LL")); |
| 261 | ASSERT_EQUALS(0, MathLib::toBigNumber("0ll")); |
| 262 | ASSERT_EQUALS(0, MathLib::toBigNumber("0U")); |
| 263 | ASSERT_EQUALS(0, MathLib::toBigNumber("0u")); |
| 264 | ASSERT_EQUALS(0, MathLib::toBigNumber("0UL")); |
| 265 | ASSERT_EQUALS(0, MathLib::toBigNumber("0ul")); |
| 266 | ASSERT_EQUALS(0, MathLib::toBigNumber("0ULL")); |
| 267 | ASSERT_EQUALS(0, MathLib::toBigNumber("0ull")); |
| 268 | ASSERT_EQUALS(0, MathLib::toBigNumber("0i64")); // Visual Studio-specific |
| 269 | ASSERT_EQUALS(0, MathLib::toBigNumber("0ui64")); // Visual Studio-specific |
| 270 | |
| 271 | // TODO: needs to fail |
| 272 | //ASSERT_EQUALS(0, MathLib::toBigNumber("0lll")); |
| 273 | //ASSERT_EQUALS(0, MathLib::toBigNumber("0uu")); |
| 274 | |
| 275 | ASSERT_EQUALS(1U, MathLib::toBigNumber("1U")); |
| 276 | ASSERT_EQUALS(10000U, MathLib::toBigNumber("1e4")); |
| 277 | ASSERT_EQUALS(10000U, MathLib::toBigNumber("1e4")); |
| 278 | ASSERT_EQUALS(0xFF00000000000000UL, MathLib::toBigNumber("0xFF00000000000000UL")); |
| 279 | ASSERT_EQUALS(0x0A00000000000000UL, MathLib::toBigNumber("0x0A00000000000000UL")); |
| 280 | |
| 281 | // from hex |
| 282 | ASSERT_EQUALS(0, MathLib::toBigNumber("0x0")); |
| 283 | ASSERT_EQUALS(0, MathLib::toBigNumber("-0x0")); |
| 284 | ASSERT_EQUALS(0, MathLib::toBigNumber("+0x0")); |
| 285 | ASSERT_EQUALS(10, MathLib::toBigNumber("0xa")); |
| 286 | ASSERT_EQUALS(10995, MathLib::toBigNumber("0x2AF3")); |
| 287 | ASSERT_EQUALS(-10, MathLib::toBigNumber("-0xa")); |
| 288 | ASSERT_EQUALS(-10995, MathLib::toBigNumber("-0x2AF3")); |
| 289 | ASSERT_EQUALS(10, MathLib::toBigNumber("+0xa")); |
| 290 | ASSERT_EQUALS(10995, MathLib::toBigNumber("+0x2AF3")); |
| 291 | |
| 292 | // from octal |
| 293 | ASSERT_EQUALS(8, MathLib::toBigNumber("010")); |
| 294 | ASSERT_EQUALS(8, MathLib::toBigNumber("+010")); |
| 295 | ASSERT_EQUALS(-8, MathLib::toBigNumber("-010")); |
| 296 | ASSERT_EQUALS(125, MathLib::toBigNumber("0175")); |
| 297 | ASSERT_EQUALS(125, MathLib::toBigNumber("+0175")); |
| 298 | ASSERT_EQUALS(-125, MathLib::toBigNumber("-0175")); |
| 299 | |
| 300 | // from binary |
| 301 | ASSERT_EQUALS(0, MathLib::toBigNumber("0b0")); |
| 302 | ASSERT_EQUALS(1, MathLib::toBigNumber("0b1")); |
| 303 | ASSERT_EQUALS(1, MathLib::toBigNumber("0b1U")); |
| 304 | ASSERT_EQUALS(1, MathLib::toBigNumber("0b1L")); |
| 305 | ASSERT_EQUALS(1, MathLib::toBigNumber("0b1LU")); |
| 306 | ASSERT_EQUALS(1, MathLib::toBigNumber("0b1LL")); |
| 307 | ASSERT_EQUALS(1, MathLib::toBigNumber("0b1LLU")); |
| 308 | ASSERT_EQUALS(1, MathLib::toBigNumber("+0b1")); |
| 309 | ASSERT_EQUALS(-1, MathLib::toBigNumber("-0b1")); |
| 310 | ASSERT_EQUALS(9U, MathLib::toBigNumber("011")); |
nothing calls this directly
no test coverage detected