@@ -525,6 +525,16 @@ pub fn write_summary_table(
525525 with_footnotes : bool ,
526526 result : & mut String ,
527527) {
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+
528538 fn render_stat < F : FnOnce ( ) -> Option < f64 > > ( count : usize , calculate : F ) -> String {
529539 let value = if count > 0 { calculate ( ) } else { None } ;
530540 value
@@ -627,7 +637,7 @@ pub fn write_summary_table(
627637 // This code attempts to space the table cells evenly so that the data is
628638 // easy to read for anyone who is viewing the Markdown source.
629639 let column_labels = [
630- " " . to_string ( ) , // we want at least 10 spaces to accommodate "count[^2]"
640+ format ! ( "({metric})" , ) ,
631641 format ! ( "mean{}" , if with_footnotes { "[^1]" } else { "" } ) ,
632642 "max" . to_string ( ) ,
633643 format ! ( "count{}" , if with_footnotes { "[^2]" } else { "" } ) ,
@@ -1383,8 +1393,6 @@ mod tests {
13831393 ( Category :: Primary , 1.0 , 3.0 ) ,
13841394 ] ,
13851395 r#"
1386- | | mean[^1] | max | count[^2] |
1387- |:----------:|:--------:|:---:|:---------:|
13881396| Regressions ❌ <br /> (primary) | 146.7% | 200.0% | 3 |
13891397| Regressions ❌ <br /> (secondary) | - | - | 0 |
13901398| Improvements ✅ <br /> (primary) | - | - | 0 |
@@ -1404,8 +1412,6 @@ mod tests {
14041412 ( Category :: Primary , 4.0 , 1.0 ) ,
14051413 ] ,
14061414 r#"
1407- | | mean[^1] | max | count[^2] |
1408- |:----------:|:--------:|:---:|:---------:|
14091415| Regressions ❌ <br /> (primary) | - | - | 0 |
14101416| Regressions ❌ <br /> (secondary) | - | - | 0 |
14111417| Improvements ✅ <br /> (primary) | -71.7% | -80.0% | 3 |
@@ -1425,8 +1431,6 @@ mod tests {
14251431 ( Category :: Secondary , 4.0 , 1.0 ) ,
14261432 ] ,
14271433 r#"
1428- | | mean[^1] | max | count[^2] |
1429- |:----------:|:--------:|:---:|:---------:|
14301434| Regressions ❌ <br /> (primary) | - | - | 0 |
14311435| Regressions ❌ <br /> (secondary) | - | - | 0 |
14321436| Improvements ✅ <br /> (primary) | - | - | 0 |
@@ -1446,8 +1450,6 @@ mod tests {
14461450 ( Category :: Secondary , 1.0 , 3.0 ) ,
14471451 ] ,
14481452 r#"
1449- | | mean[^1] | max | count[^2] |
1450- |:----------:|:--------:|:---:|:---------:|
14511453| Regressions ❌ <br /> (primary) | - | - | 0 |
14521454| Regressions ❌ <br /> (secondary) | 146.7% | 200.0% | 3 |
14531455| Improvements ✅ <br /> (primary) | - | - | 0 |
@@ -1468,8 +1470,6 @@ mod tests {
14681470 ( Category :: Primary , 4.0 , 1.0 ) ,
14691471 ] ,
14701472 r#"
1471- | | mean[^1] | max | count[^2] |
1472- |:----------:|:--------:|:---:|:---------:|
14731473| Regressions ❌ <br /> (primary) | 150.0% | 200.0% | 2 |
14741474| Regressions ❌ <br /> (secondary) | - | - | 0 |
14751475| Improvements ✅ <br /> (primary) | -62.5% | -75.0% | 2 |
@@ -1492,8 +1492,6 @@ mod tests {
14921492 ( Category :: Primary , 4.0 , 1.0 ) ,
14931493 ] ,
14941494 r#"
1495- | | mean[^1] | max | count[^2] |
1496- |:----------:|:--------:|:---:|:---------:|
14971495| Regressions ❌ <br /> (primary) | 150.0% | 200.0% | 2 |
14981496| Regressions ❌ <br /> (secondary) | 100.0% | 100.0% | 1 |
14991497| Improvements ✅ <br /> (primary) | -62.5% | -75.0% | 2 |
@@ -1512,8 +1510,6 @@ mod tests {
15121510 ( Category :: Primary , 5.0 , 6.0 ) ,
15131511 ] ,
15141512 r#"
1515- | | mean[^1] | max | count[^2] |
1516- |:----------:|:--------:|:---:|:---------:|
15171513| Regressions ❌ <br /> (primary) | 20.0% | 20.0% | 1 |
15181514| Regressions ❌ <br /> (secondary) | - | - | 0 |
15191515| Improvements ✅ <br /> (primary) | -50.0% | -50.0% | 1 |
@@ -1532,8 +1528,6 @@ mod tests {
15321528 ( Category :: Primary , 6.0 , 5.0 ) ,
15331529 ] ,
15341530 r#"
1535- | | mean[^1] | max | count[^2] |
1536- |:----------:|:--------:|:---:|:---------:|
15371531| Regressions ❌ <br /> (primary) | 100.0% | 100.0% | 1 |
15381532| Regressions ❌ <br /> (secondary) | - | - | 0 |
15391533| Improvements ✅ <br /> (primary) | -16.7% | -16.7% | 1 |
@@ -1588,6 +1582,7 @@ mod tests {
15881582
15891583 let mut result = String :: new ( ) ;
15901584 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}" ) ) ;
15921587 }
15931588}
0 commit comments