Generate benchmarks for all test fixtures
1use criterion::{criterion_group, criterion_main, Criterion};
2mod absolute_layout_align_items_and_justify_content_center;
3mod absolute_layout_align_items_and_justify_content_center_and_bottom_position;
4mod absolute_layout_align_items_and_justify_content_center_and_left_position;
5mod absolute_layout_align_items_and_justify_content_center_and_right_position;
6mod absolute_layout_align_items_and_justify_content_center_and_top_position;
7mod absolute_layout_align_items_and_justify_content_flex_end;
8mod absolute_layout_align_items_center;
9mod absolute_layout_align_items_center_on_child_only;
10mod absolute_layout_child_order;
11mod absolute_layout_in_wrap_reverse_column_container;
12mod absolute_layout_in_wrap_reverse_column_container_flex_end;
13mod absolute_layout_in_wrap_reverse_row_container;
14mod absolute_layout_in_wrap_reverse_row_container_flex_end;
15mod absolute_layout_justify_content_center;
16mod absolute_layout_no_size;
17mod absolute_layout_percentage_bottom_based_on_parent_height;
18mod absolute_layout_start_top_end_bottom;
19mod absolute_layout_width_height_end_bottom;
20mod absolute_layout_width_height_start_top;
21mod absolute_layout_width_height_start_top_end_bottom;
22mod absolute_layout_within_border;
23mod align_baseline;
24mod align_baseline_child_multiline;
25mod align_baseline_nested_child;
26mod align_center_should_size_based_on_content;
27mod align_flex_start_with_shrinking_children;
28mod align_flex_start_with_shrinking_children_with_stretch;
29mod align_flex_start_with_stretching_children;
30mod align_items_center;
31mod align_items_center_child_with_margin_bigger_than_parent;
32mod align_items_center_child_without_margin_bigger_than_parent;
33mod align_items_center_with_child_margin;
34mod align_items_center_with_child_top;
35mod align_items_flex_end;
36mod align_items_flex_end_child_with_margin_bigger_than_parent;
37mod align_items_flex_end_child_without_margin_bigger_than_parent;
38mod align_items_flex_start;
39mod align_items_min_max;
40mod align_items_stretch;
41mod align_self_baseline;
42mod align_self_center;
43mod align_self_flex_end;
44mod align_self_flex_end_override_flex_start;
45mod align_self_flex_start;
46mod align_strech_should_size_based_on_parent;
47mod border_center_child;
48mod border_flex_child;
49mod border_no_child;
50mod border_stretch_child;
51mod child_min_max_width_flexing;
52mod container_with_unsized_child;
53mod display_none;
54mod display_none_fixed_size;
55mod display_none_with_child;
56mod display_none_with_margin;
57mod display_none_with_position;
58mod flex_basis_and_main_dimen_set_when_flexing;
59mod flex_basis_flex_grow_column;
60mod flex_basis_flex_grow_row;
61mod flex_basis_flex_shrink_column;
62mod flex_basis_flex_shrink_row;
63mod flex_basis_larger_than_content_column;
64mod flex_basis_larger_than_content_row;
65mod flex_basis_overrides_main_size;
66mod flex_basis_slightly_smaller_then_content_with_flex_grow_large_size;
67mod flex_basis_smaller_than_content_column;
68mod flex_basis_smaller_than_content_row;
69mod flex_basis_smaller_than_main_dimen_column;
70mod flex_basis_smaller_than_main_dimen_row;
71mod flex_basis_smaller_then_content_with_flex_grow_large_size;
72mod flex_basis_smaller_then_content_with_flex_grow_small_size;
73mod flex_basis_smaller_then_content_with_flex_grow_unconstraint_size;
74mod flex_basis_smaller_then_content_with_flex_grow_very_large_size;
75mod flex_basis_unconstraint_column;
76mod flex_basis_unconstraint_row;
77mod flex_direction_column;
78mod flex_direction_column_no_height;
79mod flex_direction_column_reverse;
80mod flex_direction_row;
81mod flex_direction_row_no_width;
82mod flex_direction_row_reverse;
83mod flex_grow_child;
84mod flex_grow_flex_basis_percent_min_max;
85mod flex_grow_height_maximized;
86mod flex_grow_in_at_most_container;
87mod flex_grow_less_than_factor_one;
88mod flex_grow_root_minimized;
89mod flex_grow_shrink_at_most;
90mod flex_grow_to_min;
91mod flex_grow_within_constrained_max_column;
92mod flex_grow_within_constrained_max_row;
93mod flex_grow_within_constrained_max_width;
94mod flex_grow_within_constrained_min_column;
95mod flex_grow_within_constrained_min_max_column;
96mod flex_grow_within_constrained_min_row;
97mod flex_grow_within_max_width;
98mod flex_root_ignored;
99mod flex_shrink_by_outer_margin_with_max_size;
100mod flex_shrink_flex_grow_child_flex_shrink_other_child;
101mod flex_shrink_flex_grow_row;
102mod flex_shrink_to_zero;
103mod flex_wrap_align_stretch_fits_one_row;
104mod flex_wrap_children_with_min_main_overriding_flex_basis;
105mod flex_wrap_wrap_to_child_height;
106mod justify_content_column_center;
107mod justify_content_column_flex_end;
108mod justify_content_column_flex_start;
109mod justify_content_column_min_height_and_margin_bottom;
110mod justify_content_column_min_height_and_margin_top;
111mod justify_content_column_space_around;
112mod justify_content_column_space_between;
113mod justify_content_column_space_evenly;
114mod justify_content_min_max;
115mod justify_content_min_width_with_padding_child_width_greater_than_parent;
116mod justify_content_min_width_with_padding_child_width_lower_than_parent;
117mod justify_content_overflow_min_max;
118mod justify_content_row_center;
119mod justify_content_row_flex_end;
120mod justify_content_row_flex_start;
121mod justify_content_row_max_width_and_margin;
122mod justify_content_row_min_width_and_margin;
123mod justify_content_row_space_around;
124mod justify_content_row_space_between;
125mod justify_content_row_space_evenly;
126mod margin_and_flex_column;
127mod margin_and_flex_row;
128mod margin_and_stretch_column;
129mod margin_and_stretch_row;
130mod margin_auto_bottom;
131mod margin_auto_bottom_and_top;
132mod margin_auto_bottom_and_top_justify_center;
133mod margin_auto_left;
134mod margin_auto_left_and_right;
135mod margin_auto_left_and_right_column;
136mod margin_auto_left_and_right_column_and_center;
137mod margin_auto_left_and_right_strech;
138mod margin_auto_left_child_bigger_than_parent;
139mod margin_auto_left_fix_right_child_bigger_than_parent;
140mod margin_auto_left_right_child_bigger_than_parent;
141mod margin_auto_left_stretching_child;
142mod margin_auto_mutiple_children_column;
143mod margin_auto_mutiple_children_row;
144mod margin_auto_right;
145mod margin_auto_top;
146mod margin_auto_top_and_bottom_strech;
147mod margin_auto_top_stretching_child;
148mod margin_bottom;
149mod margin_fix_left_auto_right_child_bigger_than_parent;
150mod margin_left;
151mod margin_right;
152mod margin_should_not_be_part_of_max_height;
153mod margin_should_not_be_part_of_max_width;
154mod margin_top;
155mod margin_with_sibling_column;
156mod margin_with_sibling_row;
157mod max_height;
158mod max_height_overrides_height;
159mod max_height_overrides_height_on_root;
160mod max_width;
161mod max_width_overrides_width;
162mod max_width_overrides_width_on_root;
163mod min_height;
164mod min_height_overrides_height;
165mod min_height_overrides_height_on_root;
166mod min_max_percent_no_width_height;
167mod min_width;
168mod min_width_overrides_width;
169mod min_width_overrides_width_on_root;
170mod nested_overflowing_child;
171mod nested_overflowing_child_in_constraint_parent;
172mod overflow_cross_axis;
173mod overflow_main_axis;
174mod padding_align_end_child;
175mod padding_center_child;
176mod padding_flex_child;
177mod padding_no_child;
178mod padding_stretch_child;
179mod parent_wrap_child_size_overflowing_parent;
180mod percent_absolute_position;
181mod percent_within_flex_grow;
182mod percentage_absolute_position;
183mod percentage_container_in_wrapping_container;
184mod percentage_flex_basis;
185mod percentage_flex_basis_cross;
186mod percentage_flex_basis_cross_max_height;
187mod percentage_flex_basis_cross_max_width;
188mod percentage_flex_basis_cross_min_height;
189mod percentage_flex_basis_cross_min_width;
190mod percentage_flex_basis_main_max_height;
191mod percentage_flex_basis_main_max_width;
192mod percentage_flex_basis_main_min_width;
193mod percentage_margin_should_calculate_based_only_on_width;
194mod percentage_multiple_nested_with_padding_margin_and_percentage_values;
195mod percentage_padding_should_calculate_based_only_on_width;
196mod percentage_position_bottom_right;
197mod percentage_position_left_top;
198mod percentage_size_based_on_parent_inner_size;
199mod percentage_size_of_flex_basis;
200mod percentage_width_height;
201mod percentage_width_height_undefined_parent_size;
202mod relative_position_should_not_nudge_siblings;
203mod rounding_flex_basis_flex_grow_row_prime_number_width;
204mod rounding_flex_basis_flex_grow_row_width_of_100;
205mod rounding_flex_basis_flex_shrink_row;
206mod rounding_flex_basis_overrides_main_size;
207mod rounding_fractial_input_1;
208mod rounding_fractial_input_2;
209mod rounding_fractial_input_3;
210mod rounding_fractial_input_4;
211mod rounding_total_fractial;
212mod rounding_total_fractial_nested;
213mod size_defined_by_child;
214mod size_defined_by_child_with_border;
215mod size_defined_by_child_with_padding;
216mod size_defined_by_grand_child;
217mod width_smaller_then_content_with_flex_grow_large_size;
218mod width_smaller_then_content_with_flex_grow_small_size;
219mod width_smaller_then_content_with_flex_grow_unconstraint_size;
220mod width_smaller_then_content_with_flex_grow_very_large_size;
221mod wrap_column;
222mod wrap_nodes_with_content_sizing_margin_cross;
223mod wrap_nodes_with_content_sizing_overflowing_margin;
224mod wrap_reverse_column;
225mod wrap_reverse_column_fixed_size;
226mod wrap_reverse_row;
227mod wrap_reverse_row_align_content_center;
228mod wrap_reverse_row_align_content_flex_start;
229mod wrap_reverse_row_align_content_space_around;
230mod wrap_reverse_row_align_content_stretch;
231mod wrap_reverse_row_single_line_different_size;
232mod wrap_row;
233mod wrap_row_align_items_center;
234mod wrap_row_align_items_flex_end;
235mod wrapped_column_max_height;
236mod wrapped_column_max_height_flex;
237mod wrapped_row_within_align_items_center;
238mod wrapped_row_within_align_items_flex_end;
239mod wrapped_row_within_align_items_flex_start;
240fn benchmark(c: &mut Criterion) {
241 c.bench_function("generated benchmarks", |b| {
242 b.iter(|| {
243 absolute_layout_align_items_and_justify_content_center::compute();
244 absolute_layout_align_items_and_justify_content_center_and_bottom_position::compute();
245 absolute_layout_align_items_and_justify_content_center_and_left_position::compute();
246 absolute_layout_align_items_and_justify_content_center_and_right_position::compute();
247 absolute_layout_align_items_and_justify_content_center_and_top_position::compute();
248 absolute_layout_align_items_and_justify_content_flex_end::compute();
249 absolute_layout_align_items_center::compute();
250 absolute_layout_align_items_center_on_child_only::compute();
251 absolute_layout_child_order::compute();
252 absolute_layout_in_wrap_reverse_column_container::compute();
253 absolute_layout_in_wrap_reverse_column_container_flex_end::compute();
254 absolute_layout_in_wrap_reverse_row_container::compute();
255 absolute_layout_in_wrap_reverse_row_container_flex_end::compute();
256 absolute_layout_justify_content_center::compute();
257 absolute_layout_no_size::compute();
258 absolute_layout_percentage_bottom_based_on_parent_height::compute();
259 absolute_layout_start_top_end_bottom::compute();
260 absolute_layout_width_height_end_bottom::compute();
261 absolute_layout_width_height_start_top::compute();
262 absolute_layout_width_height_start_top_end_bottom::compute();
263 absolute_layout_within_border::compute();
264 align_baseline::compute();
265 align_baseline_child_multiline::compute();
266 align_baseline_nested_child::compute();
267 align_center_should_size_based_on_content::compute();
268 align_flex_start_with_shrinking_children::compute();
269 align_flex_start_with_shrinking_children_with_stretch::compute();
270 align_flex_start_with_stretching_children::compute();
271 align_items_center::compute();
272 align_items_center_child_with_margin_bigger_than_parent::compute();
273 align_items_center_child_without_margin_bigger_than_parent::compute();
274 align_items_center_with_child_margin::compute();
275 align_items_center_with_child_top::compute();
276 align_items_flex_end::compute();
277 align_items_flex_end_child_with_margin_bigger_than_parent::compute();
278 align_items_flex_end_child_without_margin_bigger_than_parent::compute();
279 align_items_flex_start::compute();
280 align_items_min_max::compute();
281 align_items_stretch::compute();
282 align_self_baseline::compute();
283 align_self_center::compute();
284 align_self_flex_end::compute();
285 align_self_flex_end_override_flex_start::compute();
286 align_self_flex_start::compute();
287 align_strech_should_size_based_on_parent::compute();
288 border_center_child::compute();
289 border_flex_child::compute();
290 border_no_child::compute();
291 border_stretch_child::compute();
292 child_min_max_width_flexing::compute();
293 container_with_unsized_child::compute();
294 display_none::compute();
295 display_none_fixed_size::compute();
296 display_none_with_child::compute();
297 display_none_with_margin::compute();
298 display_none_with_position::compute();
299 flex_basis_and_main_dimen_set_when_flexing::compute();
300 flex_basis_flex_grow_column::compute();
301 flex_basis_flex_grow_row::compute();
302 flex_basis_flex_shrink_column::compute();
303 flex_basis_flex_shrink_row::compute();
304 flex_basis_larger_than_content_column::compute();
305 flex_basis_larger_than_content_row::compute();
306 flex_basis_overrides_main_size::compute();
307 flex_basis_slightly_smaller_then_content_with_flex_grow_large_size::compute();
308 flex_basis_smaller_than_content_column::compute();
309 flex_basis_smaller_than_content_row::compute();
310 flex_basis_smaller_than_main_dimen_column::compute();
311 flex_basis_smaller_than_main_dimen_row::compute();
312 flex_basis_smaller_then_content_with_flex_grow_large_size::compute();
313 flex_basis_smaller_then_content_with_flex_grow_small_size::compute();
314 flex_basis_smaller_then_content_with_flex_grow_unconstraint_size::compute();
315 flex_basis_smaller_then_content_with_flex_grow_very_large_size::compute();
316 flex_basis_unconstraint_column::compute();
317 flex_basis_unconstraint_row::compute();
318 flex_direction_column::compute();
319 flex_direction_column_no_height::compute();
320 flex_direction_column_reverse::compute();
321 flex_direction_row::compute();
322 flex_direction_row_no_width::compute();
323 flex_direction_row_reverse::compute();
324 flex_grow_child::compute();
325 flex_grow_flex_basis_percent_min_max::compute();
326 flex_grow_height_maximized::compute();
327 flex_grow_in_at_most_container::compute();
328 flex_grow_less_than_factor_one::compute();
329 flex_grow_root_minimized::compute();
330 flex_grow_shrink_at_most::compute();
331 flex_grow_to_min::compute();
332 flex_grow_within_constrained_max_column::compute();
333 flex_grow_within_constrained_max_row::compute();
334 flex_grow_within_constrained_max_width::compute();
335 flex_grow_within_constrained_min_column::compute();
336 flex_grow_within_constrained_min_max_column::compute();
337 flex_grow_within_constrained_min_row::compute();
338 flex_grow_within_max_width::compute();
339 flex_root_ignored::compute();
340 flex_shrink_by_outer_margin_with_max_size::compute();
341 flex_shrink_flex_grow_child_flex_shrink_other_child::compute();
342 flex_shrink_flex_grow_row::compute();
343 flex_shrink_to_zero::compute();
344 flex_wrap_align_stretch_fits_one_row::compute();
345 flex_wrap_children_with_min_main_overriding_flex_basis::compute();
346 flex_wrap_wrap_to_child_height::compute();
347 justify_content_column_center::compute();
348 justify_content_column_flex_end::compute();
349 justify_content_column_flex_start::compute();
350 justify_content_column_min_height_and_margin_bottom::compute();
351 justify_content_column_min_height_and_margin_top::compute();
352 justify_content_column_space_around::compute();
353 justify_content_column_space_between::compute();
354 justify_content_column_space_evenly::compute();
355 justify_content_min_max::compute();
356 justify_content_min_width_with_padding_child_width_greater_than_parent::compute();
357 justify_content_min_width_with_padding_child_width_lower_than_parent::compute();
358 justify_content_overflow_min_max::compute();
359 justify_content_row_center::compute();
360 justify_content_row_flex_end::compute();
361 justify_content_row_flex_start::compute();
362 justify_content_row_max_width_and_margin::compute();
363 justify_content_row_min_width_and_margin::compute();
364 justify_content_row_space_around::compute();
365 justify_content_row_space_between::compute();
366 justify_content_row_space_evenly::compute();
367 margin_and_flex_column::compute();
368 margin_and_flex_row::compute();
369 margin_and_stretch_column::compute();
370 margin_and_stretch_row::compute();
371 margin_auto_bottom::compute();
372 margin_auto_bottom_and_top::compute();
373 margin_auto_bottom_and_top_justify_center::compute();
374 margin_auto_left::compute();
375 margin_auto_left_and_right::compute();
376 margin_auto_left_and_right_column::compute();
377 margin_auto_left_and_right_column_and_center::compute();
378 margin_auto_left_and_right_strech::compute();
379 margin_auto_left_child_bigger_than_parent::compute();
380 margin_auto_left_fix_right_child_bigger_than_parent::compute();
381 margin_auto_left_right_child_bigger_than_parent::compute();
382 margin_auto_left_stretching_child::compute();
383 margin_auto_mutiple_children_column::compute();
384 margin_auto_mutiple_children_row::compute();
385 margin_auto_right::compute();
386 margin_auto_top::compute();
387 margin_auto_top_and_bottom_strech::compute();
388 margin_auto_top_stretching_child::compute();
389 margin_bottom::compute();
390 margin_fix_left_auto_right_child_bigger_than_parent::compute();
391 margin_left::compute();
392 margin_right::compute();
393 margin_should_not_be_part_of_max_height::compute();
394 margin_should_not_be_part_of_max_width::compute();
395 margin_top::compute();
396 margin_with_sibling_column::compute();
397 margin_with_sibling_row::compute();
398 max_height::compute();
399 max_height_overrides_height::compute();
400 max_height_overrides_height_on_root::compute();
401 max_width::compute();
402 max_width_overrides_width::compute();
403 max_width_overrides_width_on_root::compute();
404 min_height::compute();
405 min_height_overrides_height::compute();
406 min_height_overrides_height_on_root::compute();
407 min_max_percent_no_width_height::compute();
408 min_width::compute();
409 min_width_overrides_width::compute();
410 min_width_overrides_width_on_root::compute();
411 nested_overflowing_child::compute();
412 nested_overflowing_child_in_constraint_parent::compute();
413 overflow_cross_axis::compute();
414 overflow_main_axis::compute();
415 padding_align_end_child::compute();
416 padding_center_child::compute();
417 padding_flex_child::compute();
418 padding_no_child::compute();
419 padding_stretch_child::compute();
420 parent_wrap_child_size_overflowing_parent::compute();
421 percent_absolute_position::compute();
422 percent_within_flex_grow::compute();
423 percentage_absolute_position::compute();
424 percentage_container_in_wrapping_container::compute();
425 percentage_flex_basis::compute();
426 percentage_flex_basis_cross::compute();
427 percentage_flex_basis_cross_max_height::compute();
428 percentage_flex_basis_cross_max_width::compute();
429 percentage_flex_basis_cross_min_height::compute();
430 percentage_flex_basis_cross_min_width::compute();
431 percentage_flex_basis_main_max_height::compute();
432 percentage_flex_basis_main_max_width::compute();
433 percentage_flex_basis_main_min_width::compute();
434 percentage_margin_should_calculate_based_only_on_width::compute();
435 percentage_multiple_nested_with_padding_margin_and_percentage_values::compute();
436 percentage_padding_should_calculate_based_only_on_width::compute();
437 percentage_position_bottom_right::compute();
438 percentage_position_left_top::compute();
439 percentage_size_based_on_parent_inner_size::compute();
440 percentage_size_of_flex_basis::compute();
441 percentage_width_height::compute();
442 percentage_width_height_undefined_parent_size::compute();
443 relative_position_should_not_nudge_siblings::compute();
444 rounding_flex_basis_flex_grow_row_prime_number_width::compute();
445 rounding_flex_basis_flex_grow_row_width_of_100::compute();
446 rounding_flex_basis_flex_shrink_row::compute();
447 rounding_flex_basis_overrides_main_size::compute();
448 rounding_fractial_input_1::compute();
449 rounding_fractial_input_2::compute();
450 rounding_fractial_input_3::compute();
451 rounding_fractial_input_4::compute();
452 rounding_total_fractial::compute();
453 rounding_total_fractial_nested::compute();
454 size_defined_by_child::compute();
455 size_defined_by_child_with_border::compute();
456 size_defined_by_child_with_padding::compute();
457 size_defined_by_grand_child::compute();
458 width_smaller_then_content_with_flex_grow_large_size::compute();
459 width_smaller_then_content_with_flex_grow_small_size::compute();
460 width_smaller_then_content_with_flex_grow_unconstraint_size::compute();
461 width_smaller_then_content_with_flex_grow_very_large_size::compute();
462 wrap_column::compute();
463 wrap_nodes_with_content_sizing_margin_cross::compute();
464 wrap_nodes_with_content_sizing_overflowing_margin::compute();
465 wrap_reverse_column::compute();
466 wrap_reverse_column_fixed_size::compute();
467 wrap_reverse_row::compute();
468 wrap_reverse_row_align_content_center::compute();
469 wrap_reverse_row_align_content_flex_start::compute();
470 wrap_reverse_row_align_content_space_around::compute();
471 wrap_reverse_row_align_content_stretch::compute();
472 wrap_reverse_row_single_line_different_size::compute();
473 wrap_row::compute();
474 wrap_row_align_items_center::compute();
475 wrap_row_align_items_flex_end::compute();
476 wrapped_column_max_height::compute();
477 wrapped_column_max_height_flex::compute();
478 wrapped_row_within_align_items_center::compute();
479 wrapped_row_within_align_items_flex_end::compute();
480 wrapped_row_within_align_items_flex_start::compute();
481 })
482 });
483}
484criterion_group!(benches, benchmark);
485criterion_main!(benches);