Mercurial > irccd
comparison tests/util/main.cpp @ 530:7cd7b2cdf923
Common: import to_int / to_uint
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 16 Nov 2017 23:51:01 +0100 |
parents | e03521cf207b |
children | d71c59eb04c3 |
comparison
equal
deleted
inserted
replaced
529:b3a0f61a35fe | 530:7cd7b2cdf923 |
---|---|
415 } | 415 } |
416 | 416 |
417 BOOST_AUTO_TEST_SUITE_END() | 417 BOOST_AUTO_TEST_SUITE_END() |
418 | 418 |
419 /* | 419 /* |
420 * string_util::to_number function | 420 * string_util::to_int function |
421 * ------------------------------------------------------------------ | 421 * ------------------------------------------------------------------ |
422 */ | 422 */ |
423 | 423 |
424 BOOST_AUTO_TEST_SUITE(to_number) | 424 BOOST_AUTO_TEST_SUITE(to_int) |
425 | 425 |
426 BOOST_AUTO_TEST_CASE(correct) | 426 BOOST_AUTO_TEST_CASE(signed_to_int) |
427 { | 427 { |
428 /* unsigned */ | 428 BOOST_TEST(to_int("10") == 10); |
429 BOOST_REQUIRE_EQUAL(50u, string_util::to_number<std::uint8_t>("50")); | 429 BOOST_TEST(to_int<std::int8_t>("-10") == -10); |
430 BOOST_REQUIRE_EQUAL(5000u, string_util::to_number<std::uint16_t>("5000")); | 430 BOOST_TEST(to_int<std::int8_t>("10") == 10); |
431 BOOST_REQUIRE_EQUAL(50000u, string_util::to_number<std::uint32_t>("50000")); | 431 BOOST_TEST(to_int<std::int16_t>("-1000") == -1000); |
432 BOOST_REQUIRE_EQUAL(500000u, string_util::to_number<std::uint64_t>("500000")); | 432 BOOST_TEST(to_int<std::int16_t>("1000") == 1000); |
433 | 433 BOOST_TEST(to_int<std::int32_t>("-1000") == -1000); |
434 /* signed */ | 434 BOOST_TEST(to_int<std::int32_t>("1000") == 1000); |
435 BOOST_REQUIRE_EQUAL(-50, string_util::to_number<std::int8_t>("-50")); | 435 } |
436 BOOST_REQUIRE_EQUAL(-500, string_util::to_number<std::int16_t>("-500")); | 436 |
437 BOOST_REQUIRE_EQUAL(-5000, string_util::to_number<std::int32_t>("-5000")); | 437 BOOST_AUTO_TEST_CASE(signed_to_int64) |
438 BOOST_REQUIRE_EQUAL(-50000, string_util::to_number<std::int64_t>("-50000")); | 438 { |
439 } | 439 BOOST_TEST(to_int<std::int64_t>("-9223372036854775807") == -9223372036854775807LL); |
440 | 440 BOOST_TEST(to_int<std::int64_t>("9223372036854775807") == 9223372036854775807LL); |
441 BOOST_AUTO_TEST_CASE(incorrect) | 441 } |
442 { | 442 |
443 /* unsigned */ | 443 BOOST_AUTO_TEST_CASE(unsigned_to_uint) |
444 BOOST_REQUIRE_THROW(string_util::to_number<std::uint8_t>("300"), std::out_of_range); | 444 { |
445 BOOST_REQUIRE_THROW(string_util::to_number<std::uint16_t>("80000"), std::out_of_range); | 445 BOOST_TEST(to_uint("10") == 10U); |
446 BOOST_REQUIRE_THROW(string_util::to_number<std::uint8_t>("-125"), std::out_of_range); | 446 BOOST_TEST(to_uint<std::uint8_t>("10") == 10U); |
447 BOOST_REQUIRE_THROW(string_util::to_number<std::uint16_t>("-25000"), std::out_of_range); | 447 BOOST_TEST(to_uint<std::uint16_t>("1000") == 1000U); |
448 | 448 BOOST_TEST(to_uint<std::uint32_t>("1000") == 1000U); |
449 /* signed */ | 449 } |
450 BOOST_REQUIRE_THROW(string_util::to_number<std::int8_t>("300"), std::out_of_range); | 450 |
451 BOOST_REQUIRE_THROW(string_util::to_number<std::int16_t>("80000"), std::out_of_range); | 451 BOOST_AUTO_TEST_CASE(unsigned_to_uint64) |
452 BOOST_REQUIRE_THROW(string_util::to_number<std::int8_t>("-300"), std::out_of_range); | 452 { |
453 BOOST_REQUIRE_THROW(string_util::to_number<std::int16_t>("-80000"), std::out_of_range); | 453 BOOST_TEST(to_uint<std::uint64_t>("18446744073709551615") == 18446744073709551615ULL); |
454 | 454 } |
455 /* not numbers */ | 455 |
456 BOOST_REQUIRE_THROW(string_util::to_number<std::uint8_t>("nonono"), std::invalid_argument); | 456 BOOST_AUTO_TEST_SUITE_END() |
457 | 457 |
458 /* custom ranges */ | 458 BOOST_AUTO_TEST_SUITE(errors) |
459 BOOST_REQUIRE_THROW(string_util::to_number<std::uint8_t>("50", 0, 10), std::out_of_range); | 459 |
460 BOOST_REQUIRE_THROW(string_util::to_number<std::int8_t>("-50", -10, 10), std::out_of_range); | 460 BOOST_AUTO_TEST_CASE(invalid_argument) |
461 { | |
462 BOOST_REQUIRE_THROW(to_int("plopation"), std::invalid_argument); | |
463 BOOST_REQUIRE_THROW(to_uint("plopation"), std::invalid_argument); | |
464 } | |
465 | |
466 BOOST_AUTO_TEST_CASE(out_of_range) | |
467 { | |
468 BOOST_REQUIRE_THROW(to_int<std::int8_t>("1000"), std::out_of_range); | |
469 BOOST_REQUIRE_THROW(to_int<std::int8_t>("-1000"), std::out_of_range); | |
470 BOOST_REQUIRE_THROW(to_uint<std::uint8_t>("1000"), std::out_of_range); | |
471 BOOST_REQUIRE_THROW(to_uint<std::uint8_t>("-1000"), std::out_of_range); | |
461 } | 472 } |
462 | 473 |
463 BOOST_AUTO_TEST_SUITE_END() | 474 BOOST_AUTO_TEST_SUITE_END() |
464 | 475 |
465 /* | 476 /* |