1 use criterion::{black_box, criterion_group, criterion_main, Criterion};
2 use itertools::Itertools;
3 
comb_replacement_n10_k5(c: &mut Criterion)4 fn comb_replacement_n10_k5(c: &mut Criterion) {
5     c.bench_function("comb replacement n10k5", move |b| {
6         b.iter(|| {
7             for i in (0..10).combinations_with_replacement(5) {
8                 black_box(i);
9             }
10         })
11     });
12 }
13 
comb_replacement_n5_k10(c: &mut Criterion)14 fn comb_replacement_n5_k10(c: &mut Criterion) {
15     c.bench_function("comb replacement n5 k10", move |b| {
16         b.iter(|| {
17             for i in (0..5).combinations_with_replacement(10) {
18                 black_box(i);
19             }
20         })
21     });
22 }
23 
comb_replacement_n10_k10(c: &mut Criterion)24 fn comb_replacement_n10_k10(c: &mut Criterion) {
25     c.bench_function("comb replacement n10 k10", move |b| {
26         b.iter(|| {
27             for i in (0..10).combinations_with_replacement(10) {
28                 black_box(i);
29             }
30         })
31     });
32 }
33 
34 criterion_group!(
35     benches,
36     comb_replacement_n10_k5,
37     comb_replacement_n5_k10,
38     comb_replacement_n10_k10,
39 );
40 criterion_main!(benches);
41