#include "argh.h" #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN #include "doctest.h" using namespace argh; TEST_CASE("Test empty cmdl") { parser cmdl; cmdl.parse(0, nullptr); CHECK(0 == cmdl.pos_args().size()); CHECK(0 == cmdl.size()); CHECK(cmdl[0].empty()); CHECK(cmdl(0).str().empty()); CHECK(cmdl[10].empty()); CHECK(cmdl(10).str().empty()); CHECK(!cmdl["xxx"]); CHECK(cmdl("xxx").str().empty()); } TEST_CASE("Test parsing ctor") { const char* argv[] = { "0", "-a", "1", "-b", "2", "3", "4" }; int argc = sizeof(argv) / sizeof(argv[0]); { parser cmdl(argc, argv); CHECK(2 == cmdl.flags().size()); CHECK(5 == cmdl.pos_args().size()); CHECK(5 == cmdl.size()); CHECK(cmdl["a"]);