diff --git a/test/unittest/test_parsing_optional.cpp b/test/unittest/test_parsing_optional.cpp index f5e98c2..4b6e0d1 100644 --- a/test/unittest/test_parsing_optional.cpp +++ b/test/unittest/test_parsing_optional.cpp @@ -2808,3 +2808,83 @@ TEST_CASE("Parsing joined flags does not affect long options") CHECK(args.get_value("a") == true); CHECK(args.get_value("r") == true); } + +TEST_CASE("Parsing an optional argument yields correct value for positive number") +{ + auto parser = argparse::ArgumentParser(); + parser.add_argument("-n").type(); + + auto const args = parser.parse_args(3, cstr_arr{"prog", "-n", "65"}); + + CHECK(args.get_value("n") == 65); +} + +TEST_CASE("Parsing an optional argument yields correct value for positive number") +{ + auto parser = argparse::ArgumentParser(); + parser.add_argument("-n").type(); + + auto const args = parser.parse_args(2, cstr_arr{"prog", "-n65"}); + + CHECK(args.get_value("n") == 65); +} + +TEST_CASE("Parsing an optional argument yields correct value for positive number") +{ + auto parser = argparse::ArgumentParser(); + parser.add_argument("--number").type(); + + auto const args = parser.parse_args(3, cstr_arr{"prog", "--number", "65"}); + + CHECK(args.get_value("number") == 65); +} + +TEST_CASE("Parsing an optional argument yields correct value for positive number") +{ + auto parser = argparse::ArgumentParser(); + parser.add_argument("--number").type(); + + auto const args = parser.parse_args(2, cstr_arr{"prog", "--number=65"}); + + CHECK(args.get_value("number") == 65); +} + +TEST_CASE("Parsing an optional argument yields correct value for negative number" * doctest::skip()) +{ + auto parser = argparse::ArgumentParser(); + parser.add_argument("-n").type(); + + auto const args = parser.parse_args(3, cstr_arr{"prog", "-n", "-65"}); + + CHECK(args.get_value("n") == -65); +} + +TEST_CASE("Parsing an optional argument yields correct value for negative number") +{ + auto parser = argparse::ArgumentParser(); + parser.add_argument("-n").type(); + + auto const args = parser.parse_args(2, cstr_arr{"prog", "-n-65"}); + + CHECK(args.get_value("n") == -65); +} + +TEST_CASE("Parsing an optional argument yields correct value for negative number" * doctest::skip()) +{ + auto parser = argparse::ArgumentParser(); + parser.add_argument("--number").type(); + + auto const args = parser.parse_args(3, cstr_arr{"prog", "--number", "-65"}); + + CHECK(args.get_value("number") == -65); +} + +TEST_CASE("Parsing an optional argument yields correct value for negative number") +{ + auto parser = argparse::ArgumentParser(); + parser.add_argument("--number").type(); + + auto const args = parser.parse_args(2, cstr_arr{"prog", "--number=-65"}); + + CHECK(args.get_value("number") == -65); +}