@@ -525,6 +525,16 @@ pub fn write_summary_table(
525
525
with_footnotes : bool ,
526
526
result : & mut String ,
527
527
) {
528
+ let metric = match primary
529
+ . relevant_comparisons
530
+ . first ( )
531
+ . or ( secondary. relevant_comparisons . first ( ) )
532
+ . map ( |m| m. metric . as_str ( ) )
533
+ {
534
+ Some ( m) => m,
535
+ None => return ,
536
+ } ;
537
+
528
538
fn render_stat < F : FnOnce ( ) -> Option < f64 > > ( count : usize , calculate : F ) -> String {
529
539
let value = if count > 0 { calculate ( ) } else { None } ;
530
540
value
@@ -627,7 +637,7 @@ pub fn write_summary_table(
627
637
// This code attempts to space the table cells evenly so that the data is
628
638
// easy to read for anyone who is viewing the Markdown source.
629
639
let column_labels = [
630
- " " . to_string ( ) , // we want at least 10 spaces to accommodate "count[^2]"
640
+ format ! ( "({metric})" , ) ,
631
641
format ! ( "mean{}" , if with_footnotes { "[^1]" } else { "" } ) ,
632
642
"max" . to_string ( ) ,
633
643
format ! ( "count{}" , if with_footnotes { "[^2]" } else { "" } ) ,
@@ -1383,8 +1393,6 @@ mod tests {
1383
1393
( Category :: Primary , 1.0 , 3.0 ) ,
1384
1394
] ,
1385
1395
r#"
1386
- | | mean[^1] | max | count[^2] |
1387
- |:----------:|:--------:|:---:|:---------:|
1388
1396
| Regressions ❌ <br /> (primary) | 146.7% | 200.0% | 3 |
1389
1397
| Regressions ❌ <br /> (secondary) | - | - | 0 |
1390
1398
| Improvements ✅ <br /> (primary) | - | - | 0 |
@@ -1404,8 +1412,6 @@ mod tests {
1404
1412
( Category :: Primary , 4.0 , 1.0 ) ,
1405
1413
] ,
1406
1414
r#"
1407
- | | mean[^1] | max | count[^2] |
1408
- |:----------:|:--------:|:---:|:---------:|
1409
1415
| Regressions ❌ <br /> (primary) | - | - | 0 |
1410
1416
| Regressions ❌ <br /> (secondary) | - | - | 0 |
1411
1417
| Improvements ✅ <br /> (primary) | -71.7% | -80.0% | 3 |
@@ -1425,8 +1431,6 @@ mod tests {
1425
1431
( Category :: Secondary , 4.0 , 1.0 ) ,
1426
1432
] ,
1427
1433
r#"
1428
- | | mean[^1] | max | count[^2] |
1429
- |:----------:|:--------:|:---:|:---------:|
1430
1434
| Regressions ❌ <br /> (primary) | - | - | 0 |
1431
1435
| Regressions ❌ <br /> (secondary) | - | - | 0 |
1432
1436
| Improvements ✅ <br /> (primary) | - | - | 0 |
@@ -1446,8 +1450,6 @@ mod tests {
1446
1450
( Category :: Secondary , 1.0 , 3.0 ) ,
1447
1451
] ,
1448
1452
r#"
1449
- | | mean[^1] | max | count[^2] |
1450
- |:----------:|:--------:|:---:|:---------:|
1451
1453
| Regressions ❌ <br /> (primary) | - | - | 0 |
1452
1454
| Regressions ❌ <br /> (secondary) | 146.7% | 200.0% | 3 |
1453
1455
| Improvements ✅ <br /> (primary) | - | - | 0 |
@@ -1468,8 +1470,6 @@ mod tests {
1468
1470
( Category :: Primary , 4.0 , 1.0 ) ,
1469
1471
] ,
1470
1472
r#"
1471
- | | mean[^1] | max | count[^2] |
1472
- |:----------:|:--------:|:---:|:---------:|
1473
1473
| Regressions ❌ <br /> (primary) | 150.0% | 200.0% | 2 |
1474
1474
| Regressions ❌ <br /> (secondary) | - | - | 0 |
1475
1475
| Improvements ✅ <br /> (primary) | -62.5% | -75.0% | 2 |
@@ -1492,8 +1492,6 @@ mod tests {
1492
1492
( Category :: Primary , 4.0 , 1.0 ) ,
1493
1493
] ,
1494
1494
r#"
1495
- | | mean[^1] | max | count[^2] |
1496
- |:----------:|:--------:|:---:|:---------:|
1497
1495
| Regressions ❌ <br /> (primary) | 150.0% | 200.0% | 2 |
1498
1496
| Regressions ❌ <br /> (secondary) | 100.0% | 100.0% | 1 |
1499
1497
| Improvements ✅ <br /> (primary) | -62.5% | -75.0% | 2 |
@@ -1512,8 +1510,6 @@ mod tests {
1512
1510
( Category :: Primary , 5.0 , 6.0 ) ,
1513
1511
] ,
1514
1512
r#"
1515
- | | mean[^1] | max | count[^2] |
1516
- |:----------:|:--------:|:---:|:---------:|
1517
1513
| Regressions ❌ <br /> (primary) | 20.0% | 20.0% | 1 |
1518
1514
| Regressions ❌ <br /> (secondary) | - | - | 0 |
1519
1515
| Improvements ✅ <br /> (primary) | -50.0% | -50.0% | 1 |
@@ -1532,8 +1528,6 @@ mod tests {
1532
1528
( Category :: Primary , 6.0 , 5.0 ) ,
1533
1529
] ,
1534
1530
r#"
1535
- | | mean[^1] | max | count[^2] |
1536
- |:----------:|:--------:|:---:|:---------:|
1537
1531
| Regressions ❌ <br /> (primary) | 100.0% | 100.0% | 1 |
1538
1532
| Regressions ❌ <br /> (secondary) | - | - | 0 |
1539
1533
| Improvements ✅ <br /> (primary) | -16.7% | -16.7% | 1 |
@@ -1588,6 +1582,7 @@ mod tests {
1588
1582
1589
1583
let mut result = String :: new ( ) ;
1590
1584
write_summary_table ( & primary, & secondary, true , & mut result) ;
1591
- assert_eq ! ( result, expected) ;
1585
+ let header = "| (instructions:u) | mean[^1] | max | count[^2] |\n |:----------------:|:--------:|:---:|:---------:|\n " ;
1586
+ assert_eq ! ( result, format!( "{header}{expected}" ) ) ;
1592
1587
}
1593
1588
}
0 commit comments