@@ -27,186 +27,192 @@ struct result {
2727 return {true , 0 , " " , " " , " " }; \
2828 }
2929
30- TEST (
31- no_args, {
32- try {
33- parser.parse (argc, argv);
34- } catch (const ArgumentParser::ArgumentNotFound& ex) {
35- TASSERT (false , ex.what ())
36- }
37- }, )
30+ TEST (no_args, {
31+ try {
32+ parser.parse (argc, argv);
33+ } catch (const ArgumentParser::ArgumentNotFound& ex) {
34+ TASSERT (false , ex.what ())
35+ }
36+ }, )
3837
39- TEST(
40- short_optional_flag_exists,
41- {
42- parser.add_argument (" -f" , " a flag" , false );
43- try {
44- parser.parse (argc, argv);
45- } catch (const ArgumentParser::ArgumentNotFound& ex) {
46- TASSERT (false , ex.what ())
47- }
48- TASSERT (parser.exists (" f" ), " flag not found" )
49- },
50- " -f" )
38+ TEST(short_optional_flag_exists,
39+ {
40+ parser.add_argument (" -f" , " a flag" , false );
41+ try {
42+ parser.parse (argc, argv);
43+ } catch (const ArgumentParser::ArgumentNotFound& ex) {
44+ TASSERT (false , ex.what ())
45+ }
46+ TASSERT (parser.exists (" f" ), " flag not found" )
47+ },
48+ " -f" )
5149
52- TEST(
53- short_optional_flag_does_not_exist, {
54- parser.add_argument (" -f" , " a flag" , false );
55- try {
56- parser.parse (argc, argv);
57- } catch (const ArgumentParser::ArgumentNotFound& ex) {
58- TASSERT (false , ex.what ())
59- }
60- TASSERT (!parser.exists (" f" ), " flag found" )
61- }, )
50+ TEST(short_optional_flag_does_not_exist, {
51+ parser.add_argument (" -f" , " a flag" , false );
52+ try {
53+ parser.parse (argc, argv);
54+ } catch (const ArgumentParser::ArgumentNotFound& ex) {
55+ TASSERT (false , ex.what ())
56+ }
57+ TASSERT (!parser.exists (" f" ), " flag found" )
58+ }, )
6259
63- TEST(
64- short_required_flag_exists,
65- {
66- parser.add_argument (" -f" , " a flag" , true );
67- try {
68- parser.parse (argc, argv);
69- } catch (const ArgumentParser::ArgumentNotFound& ex) {
70- TASSERT (false , ex.what ())
71- }
72- TASSERT (parser.exists (" f" ), " required flag not found" )
73- },
74- " -f" )
60+ TEST(short_required_flag_exists,
61+ {
62+ parser.add_argument (" -f" , " a flag" , true );
63+ try {
64+ parser.parse (argc, argv);
65+ } catch (const ArgumentParser::ArgumentNotFound& ex) {
66+ TASSERT (false , ex.what ())
67+ }
68+ TASSERT (parser.exists (" f" ), " required flag not found" )
69+ },
70+ " -f" )
7571
76- TEST(
77- short_required_flag_does_not_exist, {
78- parser.add_argument (" -f" , " a flag" , true );
79- bool failed = false ;
80- try {
81- parser.parse (argc, argv);
82- } catch (const ArgumentParser::ArgumentNotFound&) {
83- failed = true ;
84- }
85- TASSERT (failed, " required flag found" )
86- }, )
72+ TEST(short_required_flag_does_not_exist, {
73+ parser.add_argument (" -f" , " a flag" , true );
74+ bool failed = false ;
75+ try {
76+ parser.parse (argc, argv);
77+ } catch (const ArgumentParser::ArgumentNotFound&) {
78+ failed = true ;
79+ }
80+ TASSERT (failed, " required flag found" )
81+ }, )
8782
88- TEST(
89- long_optional_flag_exists,
90- {
91- parser.add_argument (" --flag" , " a flag" , false );
92- try {
93- parser.parse (argc, argv);
94- } catch (const ArgumentParser::ArgumentNotFound& ex) {
95- TASSERT (false , ex.what ())
96- }
97- TASSERT (parser.exists (" flag" ), " flag not found" )
98- },
99- " --flag" )
83+ TEST(long_optional_flag_exists,
84+ {
85+ parser.add_argument (" --flag" , " a flag" , false );
86+ try {
87+ parser.parse (argc, argv);
88+ } catch (const ArgumentParser::ArgumentNotFound& ex) {
89+ TASSERT (false , ex.what ())
90+ }
91+ TASSERT (parser.exists (" flag" ), " flag not found" )
92+ },
93+ " --flag" )
10094
101- TEST(
102- long_short_optional_flag_pair_exists,
103- {
104- parser.add_argument (" -f" , " --flag" , " a flag" , false );
105- parser.add_argument (" -t" , " --test" , " a flag" , false );
106- try {
107- parser.parse (argc, argv);
108- } catch (const ArgumentParser::ArgumentNotFound& ex) {
109- TASSERT (false , ex.what ())
110- }
111- TASSERT (parser.exists (" flag" ), " flag not found" )
112- TASSERT (parser.exists (" f" ), " flag not found" )
113- TASSERT (parser.exists (" test" ), " flag not found" )
114- TASSERT (parser.exists (" t" ), " flag not found" )
115- },
116- " --flag" , " -t" )
95+ TEST(long_short_optional_flag_pair_exists,
96+ {
97+ parser.add_argument (" -f" , " --flag" , " a flag" , false );
98+ parser.add_argument (" -t" , " --test" , " a flag" , false );
99+ try {
100+ parser.parse (argc, argv);
101+ } catch (const ArgumentParser::ArgumentNotFound& ex) {
102+ TASSERT (false , ex.what ())
103+ }
104+ TASSERT (parser.exists (" flag" ), " flag not found" )
105+ TASSERT (parser.exists (" f" ), " flag not found" )
106+ TASSERT (parser.exists (" test" ), " flag not found" )
107+ TASSERT (parser.exists (" t" ), " flag not found" )
108+ },
109+ " --flag" , " -t" )
117110
118- TEST(
119- short_combined_flags,
120- {
121- parser.add_argument (" -f" , " a flag" , false );
122- parser.add_argument (" -g" , " a flag" , false );
111+ TEST(short_combined_flags,
112+ {
113+ parser.add_argument (" -f" , " a flag" , false );
114+ parser.add_argument (" -g" , " a flag" , false );
123115
124- parser.add_argument (" -i" , " a flag" , false );
125- parser.add_argument (" -j" , " a flag" , false );
126- try {
127- parser.parse (argc, argv);
128- } catch (const ArgumentParser::ArgumentNotFound& ex) {
129- TASSERT (false , ex.what ())
130- }
131- TASSERT (parser.exists (" f" ), " f flag not found" )
132- TASSERT (parser.exists (" g" ), " g flag not found" )
133- TASSERT (parser.exists (" i" ), " f flag not found" )
134- TASSERT (parser.exists (" j" ), " g flag not found" )
135- },
136- " -fg" , " -ji" )
116+ parser.add_argument (" -i" , " a flag" , false );
117+ parser.add_argument (" -j" , " a flag" , false );
118+ try {
119+ parser.parse (argc, argv);
120+ } catch (const ArgumentParser::ArgumentNotFound& ex) {
121+ TASSERT (false , ex.what ())
122+ }
123+ TASSERT (parser.exists (" f" ), " f flag not found" )
124+ TASSERT (parser.exists (" g" ), " g flag not found" )
125+ TASSERT (parser.exists (" i" ), " f flag not found" )
126+ TASSERT (parser.exists (" j" ), " g flag not found" )
127+ },
128+ " -fg" , " -ji" )
137129
138- TEST(
139- vector_flag_empty,
140- {
141- parser.add_argument (" -v" , " a flag" , false );
142- try {
143- parser.parse (argc, argv);
144- } catch (const ArgumentParser::ArgumentNotFound& ex) {
145- TASSERT (false , ex.what ())
146- }
147- TASSERT (parser.exists (" v" ), " flag not found" )
148- auto v = parser.getv <int >(" v" );
149- TASSERT (v.size () == 0 , " wrong vector values" )
150- },
151- " -v" )
130+ TEST(vector_flag_empty,
131+ {
132+ parser.add_argument (" -v" , " a flag" , false );
133+ try {
134+ parser.parse (argc, argv);
135+ } catch (const ArgumentParser::ArgumentNotFound& ex) {
136+ TASSERT (false , ex.what ())
137+ }
138+ TASSERT (parser.exists (" v" ), " flag not found" )
139+ auto v = parser.getv <int >(" v" );
140+ TASSERT (v.size () == 0 , " wrong vector values" )
141+ },
142+ " -v" )
152143
153- TEST(
154- vector_flag,
155- {
156- parser.add_argument (" -v" , " a flag" , false );
157- try {
158- parser.parse (argc, argv);
159- } catch (const ArgumentParser::ArgumentNotFound& ex) {
160- TASSERT (false , ex.what ())
161- }
162- TASSERT (parser.exists (" v" ), " flag not found" )
163- auto v = parser.getv <int >(" v" );
164- TASSERT (v.size () == 5 , " wrong vector values" )
165- },
166- " -v" , " 1" , " 2" , " 3" , " 4" , " 5" )
144+ TEST(vector_flag,
145+ {
146+ parser.add_argument (" -v" , " a flag" , false );
147+ try {
148+ parser.parse (argc, argv);
149+ } catch (const ArgumentParser::ArgumentNotFound& ex) {
150+ TASSERT (false , ex.what ())
151+ }
152+ TASSERT (parser.exists (" v" ), " flag not found" )
153+ auto v = parser.getv <int >(" v" );
154+ TASSERT (v.size () == 5 , " wrong vector values" )
155+ },
156+ " -v" , " 1" , " 2" , " 3" , " 4" , " 5" )
167157
168- TEST(
169- short_and_vector_flag,
170- {
171- parser.add_argument (" -v" , " a flag" , false );
172- parser.add_argument (" -b" , " a flag" , false );
173- parser.add_argument (" -f" , " a flag" , false );
174- try {
175- parser.parse (argc, argv);
176- } catch (const ArgumentParser::ArgumentNotFound& ex) {
177- TASSERT (false , ex.what ())
178- }
179- TASSERT (parser.exists (" b" ), " flag not found" )
180- TASSERT (parser.exists (" v" ), " flag not found" )
181- TASSERT (parser.exists (" f" ), " flag not found" )
182- auto v = parser.getv <int >(" v" );
183- TASSERT (v.size () == 5 , " wrong vector values" )
184- },
185- " -b" , " 0" , " -v" , " 1" , " 2" , " 3" , " 4" , " 5" , " -f" , " 6" , " 7" , " 8" )
158+ TEST(short_and_vector_flag,
159+ {
160+ parser.add_argument (" -v" , " a flag" , false );
161+ parser.add_argument (" -b" , " a flag" , false );
162+ parser.add_argument (" -f" , " a flag" , false );
163+ try {
164+ parser.parse (argc, argv);
165+ } catch (const ArgumentParser::ArgumentNotFound& ex) {
166+ TASSERT (false , ex.what ())
167+ }
168+ TASSERT (parser.exists (" b" ), " flag not found" )
169+ TASSERT (parser.exists (" v" ), " flag not found" )
170+ TASSERT (parser.exists (" f" ), " flag not found" )
171+ auto v = parser.getv <int >(" v" );
172+ TASSERT (v.size () == 5 , " wrong vector values" )
173+ },
174+ " -b" , " 0" , " -v" , " 1" , " 2" , " 3" , " 4" , " 5" , " -f" , " 6" , " 7" , " 8" )
186175
187- TEST(
188- short_help_flag,
189- {
190- try {
191- parser.parse (argc, argv);
192- } catch (const ArgumentParser::ArgumentNotFound& ex) {
193- TASSERT (false , ex.what ())
194- }
195- TASSERT (parser.is_help (), " help not found" )
196- },
197- " -h" )
176+ TEST(short_help_flag,
177+ {
178+ try {
179+ parser.parse (argc, argv);
180+ } catch (const ArgumentParser::ArgumentNotFound& ex) {
181+ TASSERT (false , ex.what ())
182+ }
183+ TASSERT (parser.is_help (), " help not found" )
184+ },
185+ " -h" )
198186
199- TEST(
200- long_help_flag,
201- {
202- try {
203- parser.parse (argc, argv);
204- } catch (const ArgumentParser::ArgumentNotFound& ex) {
205- TASSERT (false , ex.what ())
206- }
207- TASSERT (parser.is_help (), " help not found" )
208- },
209- " --help" )
187+ TEST(long_help_flag,
188+ {
189+ try {
190+ parser.parse (argc, argv);
191+ } catch (const ArgumentParser::ArgumentNotFound& ex) {
192+ TASSERT (false , ex.what ())
193+ }
194+ TASSERT (parser.is_help (), " help not found" )
195+ },
196+ " --help" )
197+
198+ TEST(flag_values,
199+ {
200+ parser.add_argument (" -f" , " --flag" , " a flag" , false );
201+ parser.add_argument (" -t" , " --test" , " a flag" , false );
202+ parser.add_argument (" -g" , " a flag" , false );
203+ try {
204+ parser.parse (argc, argv);
205+ } catch (const ArgumentParser::ArgumentNotFound& ex) {
206+ TASSERT (false , ex.what ())
207+ }
208+ TASSERT (parser.exists (" flag" ), " flag not found" )
209+ TASSERT (parser.get <int >(" flag" ) == 2 , " wrong flag value" )
210+ TASSERT (parser.exists (" t" ), " flag not found" )
211+ TASSERT (parser.get <int >(" t" ) == 3 , " wrong flag value" )
212+ TASSERT (parser.exists (" g" ), " flag not found" )
213+ TASSERT (parser.get <double >(" g" ) == 0.125 , " wrong flag value" )
214+ },
215+ " -f" , " 2" , " --test" , " 3" , " -g" , " 0.125" )
210216
211217#define TT (name ) \
212218 { #name, name }
@@ -223,7 +229,8 @@ std::map<std::string, test> tests{TT(no_args),
223229 TT (vector_flag),
224230 TT (short_and_vector_flag),
225231 TT (short_help_flag),
226- TT (long_help_flag)};
232+ TT (long_help_flag),
233+ TT (flag_values)};
227234
228235int main (int argc, const char * argv[]) {
229236 std::vector<result> results;
@@ -257,4 +264,4 @@ int main(int argc, const char* argv[]) {
257264 }
258265 std::cout << " Passed: " << passed << " /" << results.size () << std::endl;
259266 return static_cast <int >(results.size () - passed);
260- }
267+ }
0 commit comments