@@ -7,44 +7,70 @@ TEST_CASE( "bind", "[ProgramOptions]" ) {
77 parser.silent ();
88
99 std::string a;
10- std::int32_t b{};
11- std::int64_t c{};
12- std::uint32_t d{};
13- std::uint64_t e{};
14- // float f{};
15- // double g{};
16- std::vector< std::int32_t > h;
17- std::deque< std::string > i;
18-
1910 auto && a_opt = parser[ " a" ].bind ( a );
20- auto && b_opt = parser[ " b" ].bind ( b );
21- auto && c_opt = parser[ " c" ].bind ( c );
22- auto && d_opt = parser[ " d" ].bind ( d );
23- auto && e_opt = parser[ " e" ].bind ( e );
24- // auto&& f_opt = parser[ "f" ].bind( f );
25- // auto&& g_opt = parser[ "g" ].bind( g );
26- auto && h_opt = parser[ " h" ].bind ( h );
27- auto && i_opt = parser[ " i" ].bind ( i );
28-
2911 REQUIRE ( a_opt.is_single () );
3012 REQUIRE ( a_opt.get_type () == po::string );
13+
14+ std::int32_t b{};
15+ auto && b_opt = parser[ " b" ].bind ( b );
3116 REQUIRE ( b_opt.is_single () );
3217 REQUIRE ( b_opt.get_type () == po::i32 );
18+
19+ std::int64_t c{};
20+ auto && c_opt = parser[ " c" ].bind ( c );
3321 REQUIRE ( c_opt.is_single () );
3422 REQUIRE ( c_opt.get_type () == po::i64 );
23+
24+ std::uint32_t d{};
25+ auto && d_opt = parser[ " d" ].bind ( d );
3526 REQUIRE ( d_opt.is_single () );
3627 REQUIRE ( d_opt.get_type () == po::u32 );
28+
29+ std::uint64_t e{};
30+ auto && e_opt = parser[ " e" ].bind ( e );
3731 REQUIRE ( e_opt.is_single () );
3832 REQUIRE ( e_opt.get_type () == po::u64 );
33+
34+ // float f{};
35+ // auto&& f_opt = parser[ "f" ].bind( f );
3936 // REQUIRE( f_opt.is_single() );
4037 // REQUIRE( f_opt.get_type() == po::f32 );
38+
39+ // double g{};
40+ // auto&& g_opt = parser[ "g" ].bind( g );
4141 // REQUIRE( g_opt.is_single() );
4242 // REQUIRE( g_opt.get_type() == po::f64 );
43+
44+ std::vector< std::int32_t > h;
45+ auto && h_opt = parser[ " h" ].bind ( h );
4346 REQUIRE ( h_opt.is_multi () );
4447 REQUIRE ( h_opt.get_type () == po::i32 );
48+
49+ std::deque< std::string > i;
50+ auto && i_opt = parser[ " i" ].bind ( i );
4551 REQUIRE ( i_opt.is_multi () );
4652 REQUIRE ( i_opt.get_type () == po::string );
4753
54+ std::list< std::int32_t > j;
55+ auto && j_opt = parser[ " j" ].bind ( j );
56+ REQUIRE ( j_opt.is_multi () );
57+ REQUIRE ( j_opt.get_type () == po::i32 );
58+
59+ std::stack< std::int64_t > k;
60+ auto && k_opt = parser[ " k" ].bind ( k );
61+ REQUIRE ( k_opt.is_multi () );
62+ REQUIRE ( k_opt.get_type () == po::i64 );
63+
64+ std::queue< std::uint32_t > l;
65+ auto && l_opt = parser[ " l" ].bind ( l );
66+ REQUIRE ( l_opt.is_multi () );
67+ REQUIRE ( l_opt.get_type () == po::u32 );
68+
69+ std::priority_queue< std::uint64_t > m;
70+ auto && m_opt = parser[ " m" ].bind ( m );
71+ REQUIRE ( m_opt.is_multi () );
72+ REQUIRE ( m_opt.get_type () == po::u64 );
73+
4874 SECTION ( " good scenario" ) {
4975 const arg_provider A {
5076 " /Test" ,
@@ -53,8 +79,10 @@ TEST_CASE( "bind", "[ProgramOptions]" ) {
5379 " -h 42" ,
5480 " -i" " foo" ,
5581 " -i" " bar" ,
56- " -b 36" ,
57- " -b 42" ,
82+ " -k 2" ,
83+ " -k 7" ,
84+ " -b 3" ,
85+ " -b 4" ,
5886 };
5987
6088 CHECK ( parser ( A.argc , A.argv ) );
@@ -63,7 +91,7 @@ TEST_CASE( "bind", "[ProgramOptions]" ) {
6391 CHECK ( a == " hello" );
6492
6593 REQUIRE ( b_opt.count () == 1 );
66- CHECK ( b == 42 );
94+ CHECK ( b == 4 );
6795
6896 REQUIRE ( h_opt.count () == 2 );
6997 REQUIRE ( h.size () == 2 );
@@ -75,5 +103,9 @@ TEST_CASE( "bind", "[ProgramOptions]" ) {
75103 REQUIRE ( i.size () == 2 );
76104 CHECK ( i[ 0 ] == " foo" );
77105 CHECK ( i[ 1 ] == " bar" );
106+
107+ REQUIRE ( k_opt.count () == 2 );
108+ REQUIRE ( k.size () == 2 );
109+ CHECK ( k.top () == 7 );
78110 }
79111}
0 commit comments