#include <catch2/catch_test_macros.hpp>
#include <catch2/internal/catch_parse_numbers.hpp>
TEST_CASE(
"Parse uints"
,
"[parse-numbers]"
) {
using
Catch::parseUInt;
using
Catch::Optional;
SECTION(
"proper inputs"
) {
REQUIRE( parseUInt(
"0"
) == Optional<unsigned
int
>{ 0 } );
REQUIRE( parseUInt(
"100"
) == Optional<unsigned
int
>{ 100 } );
REQUIRE( parseUInt(
"4294967295"
) ==
Optional<unsigned
int
>{ 4294967295 } );
REQUIRE( parseUInt(
"0xFF"
, 16 ) == Optional<unsigned
int
>{ 255 } );
}
SECTION(
"Bad inputs"
) {
REQUIRE_FALSE( parseUInt(
""
) );
REQUIRE_FALSE( parseUInt(
"!!KJHF*#"
) );
REQUIRE_FALSE( parseUInt(
"-1"
) );
REQUIRE_FALSE( parseUInt(
"4294967296"
) );
REQUIRE_FALSE( parseUInt(
"42949672964294967296429496729642949672964294967296"
) );
REQUIRE_FALSE( parseUInt(
"2 4"
) );
REQUIRE_FALSE( parseUInt(
"0xFF"
, 10 ) );
}
}