@@ -22,7 +22,14 @@ int main(int argc, char* argv[])
22
22
if (optarg)
23
23
{
24
24
istringstream iss (optarg);
25
+ string s = optarg;
26
+ if (s.at (0 ) == ' -' )
27
+ {
28
+ display_help ();
29
+ exit (-1 );
30
+ }
25
31
iss >> args.entry_at ;
32
+ args.entry_at_provided = true ;
26
33
args_provided = true ;
27
34
}
28
35
break ;
@@ -158,7 +165,7 @@ static const void display_help(void)
158
165
<< " -v Display version number" << " \n " ;
159
166
}
160
167
161
- static const void generate_all (const long &max_size, const generation_args &args)
168
+ static const void generate_all (const unsigned long long &max_size, const generation_args &args)
162
169
{
163
170
if (!args.display_json )
164
171
{
@@ -171,8 +178,8 @@ static const void generate_all(const long &max_size, const generation_args &args
171
178
{
172
179
cout << " [\n " ;
173
180
}
174
- const long last = max_size - 1 ;
175
- for (long i = 0 ; i < max_size; ++i)
181
+ const unsigned long long last = max_size - 1 ;
182
+ for (unsigned long long i = 0 ; i < max_size; ++i)
176
183
{
177
184
vector<string> result = lazy_cartesian_product::entry_at (args.pc .combinations , i);
178
185
output_result (result, args, true );
@@ -187,7 +194,7 @@ static const void generate_all(const long &max_size, const generation_args &args
187
194
}
188
195
}
189
196
190
- static const void generate_random_samples (const vector<long > &range, const generation_args &args)
197
+ static const void generate_random_samples (const vector<unsigned long long > &range, const generation_args &args)
191
198
{
192
199
if (!args.display_json )
193
200
{
@@ -200,7 +207,7 @@ static const void generate_random_samples(const vector<long> &range, const gener
200
207
{
201
208
cout << " [\n " ;
202
209
}
203
- for (const long &i: range)
210
+ for (const unsigned long long &i: range)
204
211
{
205
212
vector<string> result = lazy_cartesian_product::entry_at (args.pc .combinations , i);
206
213
output_result (result, args, true );
@@ -215,7 +222,7 @@ static const void generate_random_samples(const vector<long> &range, const gener
215
222
}
216
223
}
217
224
218
- static const void generate_random_samples_performance_mode ( const generation_args &args)
225
+ static const void generate_random_samples_performance_mode (const generation_args &args)
219
226
{
220
227
const vector<vector<string>> results = lazy_cartesian_product::generate_samples (args.pc .combinations , args.sample_size );
221
228
@@ -267,13 +274,13 @@ static const void output_result(const vector<string> &result, const generation_a
267
274
}
268
275
else
269
276
{
270
- const long key_size = args.pc .keys .size ();
277
+ const unsigned long long key_size = args.pc .keys .size ();
271
278
if (!for_optimization)
272
279
{
273
280
cout << " [\n " ;
274
281
}
275
282
json entry;
276
- for (long j = 0 ; j < key_size; ++j)
283
+ for (unsigned long long j = 0 ; j < key_size; ++j)
277
284
{
278
285
entry[args.pc .keys [j]] = result[j];
279
286
}
@@ -287,23 +294,23 @@ static const void output_result(const vector<string> &result, const generation_a
287
294
288
295
static const void parse_args (const generation_args &args)
289
296
{
290
- long max_size = lazy_cartesian_product::compute_max_size (args.pc .combinations );
297
+ unsigned long long max_size = lazy_cartesian_product::compute_max_size (args.pc .combinations );
291
298
if (args.generate_all_combinations )
292
299
{
293
300
generate_all (max_size, args);
294
301
exit (0 );
295
302
}
296
303
else
297
304
{
298
- if (args.sample_size == 0 && args.entry_at > - 1 && !args.generate_all_combinations )
305
+ if (args.sample_size == 0 && args.entry_at_provided && !args.generate_all_combinations )
299
306
{
300
307
vector<string> result = lazy_cartesian_product::entry_at (args.pc .combinations , args.entry_at );
301
308
output_result (result, args, false );
302
309
exit (0 );
303
310
}
304
- else if (args.sample_size > 0 )
311
+ else if (args.sample_size >= 0 )
305
312
{
306
- const long n = args.sample_size ;
313
+ const unsigned long long n = args.sample_size ;
307
314
if (n > max_size)
308
315
{
309
316
cerr << " ERROR: Sample size cannot be greater than maximum possible combinations\n " ;
@@ -315,7 +322,7 @@ static const void parse_args(const generation_args &args)
315
322
}
316
323
else
317
324
{
318
- vector<long > range = lazy_cartesian_product::generate_random_indices (n, max_size);
325
+ vector<unsigned long long > range = lazy_cartesian_product::generate_random_indices (n, max_size);
319
326
generate_random_samples (range, args);
320
327
}
321
328
exit (0 );
0 commit comments