1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
/*******************************************************************\
Module: Unit tests for string2int.h
Author: Diffblue Ltd.
\*******************************************************************/
#include <testing-utils/use_catch.h>
#include <util/string2int.h>
TEST_CASE(
"converting optionally to a valid integer should succeed",
"[core][util][string2int]")
{
REQUIRE(string2optional_int("13") == 13);
REQUIRE(string2optional_int("-5") == -5);
REQUIRE(string2optional_int("c0fefe", 16) == 0xc0fefe);
}
TEST_CASE(
"optionally converting invalid string to integer should return nullopt",
"[core][util][string2int]")
{
REQUIRE(!string2optional_int("thirteen").has_value());
REQUIRE(!string2optional_int("c0fefe").has_value());
}
TEST_CASE(
"optionally converting string out of range to integer should return nullopt",
"[core][util][string2int]")
{
REQUIRE(
!string2optional_int("0xfffffffffffffffffffffffffffffffffffffffffff", 16)
.has_value());
}
TEST_CASE(
"converting optionally to a valid unsigned should succeed",
"[core][util][string2int]")
{
REQUIRE(string2optional_unsigned("13") == 13u);
REQUIRE(string2optional_unsigned("c0fefe", 16) == 0xc0fefeu);
}
TEST_CASE(
"optionally converting invalid string to unsigned should return nullopt",
"[core][util][string2int]")
{
REQUIRE(!string2optional_unsigned("thirteen").has_value());
REQUIRE(!string2optional_unsigned("c0fefe").has_value());
}
TEST_CASE(
"optionally converting string out of range to unsigned should return nullopt",
"[core][util][string2int]")
{
REQUIRE(!string2optional_unsigned(
"0xfffffffffffffffffffffffffffffffffffffffffff", 16)
.has_value());
REQUIRE(!string2optional_unsigned("-5").has_value());
}
TEST_CASE(
"converting optionally to a valid size_t should succeed",
"[core][util][string2int]")
{
REQUIRE(string2optional_size_t("13") == std::size_t{13});
REQUIRE(string2optional_size_t("c0fefe", 16) == std::size_t{0xc0fefe});
}
TEST_CASE(
"optionally converting invalid string to size_t should return nullopt",
"[core][util][string2int]")
{
REQUIRE(!string2optional_size_t("thirteen").has_value());
REQUIRE(!string2optional_size_t("c0fefe").has_value());
}
TEST_CASE(
"optionally converting string out of range to size_t should return nullopt",
"[core][util][string2int]")
{
REQUIRE(
!string2optional_size_t("0xfffffffffffffffffffffffffffffffffffffffffff", 16)
.has_value());
REQUIRE(!string2optional_size_t("-5").has_value());
}
|