@@ -65,6 +65,11 @@ TEST_CASE("Benchmark broad phase", "[!benchmark][broad_phase]")
6565 F_stack.bottomRows (F.rows ()) = F.array () + n;
6666 F = F_stack;
6767
68+ Eigen::MatrixXi E_stack (2 * E.rows (), E.cols ());
69+ E_stack.topRows (E.rows ()) = E;
70+ E_stack.bottomRows (E.rows ()) = E.array () + n;
71+ E = E_stack;
72+
6873 testcase_name = fmt::format (" Interobject dx={}" , dx);
6974 }
7075
@@ -75,13 +80,15 @@ TEST_CASE("Benchmark broad phase", "[!benchmark][broad_phase]")
7580 V0 = mesh.vertices (V0);
7681 V1 = mesh.vertices (V1);
7782
78- const auto broad_phase = GENERATE ( tests::BroadPhaseGenerator::create () );
83+ const auto broad_phases = tests::broad_phases ( );
7984
80- BENCHMARK (fmt::format (" BP {} ({})" , testcase_name, broad_phase->name ()))
81- {
82- Candidates candidates;
83- candidates.build (mesh, V0, V1, inflation_radius, broad_phase);
84- };
85+ for (const auto & broad_phase : broad_phases) {
86+ BENCHMARK (fmt::format (" BP {} ({})" , testcase_name, broad_phase->name ()))
87+ {
88+ Candidates candidates;
89+ candidates.build (mesh, V0, V1, inflation_radius, broad_phase);
90+ };
91+ }
8592}
8693
8794TEST_CASE (
@@ -125,14 +132,17 @@ TEST_CASE(
125132 V0 = mesh.vertices (V0);
126133 V1 = mesh.vertices (V1);
127134
128- const auto broad_phase = GENERATE (tests::BroadPhaseGenerator::create ());
129- if (broad_phase->name () == " BruteForce" ) {
130- SKIP (" Not benchmarking brute force" );
131- }
135+ const auto broad_phases = tests::broad_phases ();
132136
133- BENCHMARK (fmt::format (" BP Real Data ({})" , broad_phase->name ()))
134- {
135- Candidates candidates;
136- candidates.build (mesh, V0, V1, inflation_radius, broad_phase);
137- };
137+ for (const auto & broad_phase : broad_phases) {
138+ if (broad_phase->name () == " BruteForce" ) {
139+ continue ;
140+ }
141+
142+ BENCHMARK (fmt::format (" BP Real Data ({})" , broad_phase->name ()))
143+ {
144+ Candidates candidates;
145+ candidates.build (mesh, V0, V1, inflation_radius, broad_phase);
146+ };
147+ }
138148}
0 commit comments