@@ -525,7 +525,7 @@ pub fn write_summary_table(
525525 let value = if count > 0 { calculate ( ) } else { None } ;
526526 value
527527 . map ( |value| format ! ( "{value:.1}%" ) )
528- . unwrap_or_else ( || "N/A " . to_string ( ) )
528+ . unwrap_or_else ( || "- " . to_string ( ) )
529529 }
530530
531531 // (label, mean, max, count)
@@ -555,14 +555,14 @@ pub fn write_summary_table(
555555 Some ( secondary. arithmetic_mean_of_improvements( ) )
556556 } ) ,
557557 if primary. is_empty( ) {
558- "N/A " . to_string( )
558+ "- " . to_string( )
559559 } else {
560560 format!( "{:.1}%" , primary. arithmetic_mean_of_changes( ) )
561561 } ,
562562 ] ) ;
563563
564564 let largest_change = if primary. is_empty ( ) {
565- "N/A " . to_string ( )
565+ "- " . to_string ( )
566566 } else {
567567 let largest_improvement = primary
568568 . largest_improvement ( )
@@ -620,6 +620,8 @@ pub fn write_summary_table(
620620 ( primary. num_regressions + primary. num_improvements) . to_string( ) ,
621621 ] ) ;
622622
623+ // This code attempts to space the table cells evenly so that the data is
624+ // easy to read for anyone who is viewing the Markdown source.
623625 let column_labels = [
624626 " " . to_string ( ) , // we want at least 10 spaces to accommodate "count[^2]"
625627 format ! ( "mean{}" , if with_footnotes { "[^1]" } else { "" } ) ,
@@ -636,20 +638,13 @@ pub fn write_summary_table(
636638 }
637639 result. push_str ( "|\n " ) ;
638640
639- let mut render_row = |row : Vec < String > | {
640- debug_assert_eq ! ( row. len( ) , column_labels. len( ) ) ;
641- for ( column, & count) in row. into_iter ( ) . zip ( & counts) {
641+ for row in 0 ..5 {
642+ let row_data = column_data. iter ( ) . map ( |rows| rows[ row] . clone ( ) ) ;
643+ debug_assert_eq ! ( row_data. len( ) , column_labels. len( ) ) ;
644+ for ( column, & count) in row_data. zip ( & counts) {
642645 write ! ( result, "| {:<1$} " , column, count) . unwrap ( ) ;
643646 }
644647 result. push_str ( "|\n " ) ;
645- } ;
646-
647- for row in 0 ..5 {
648- let row_data = column_data
649- . iter ( )
650- . map ( |rows| rows[ row] . clone ( ) )
651- . collect :: < Vec < _ > > ( ) ;
652- render_row ( row_data) ;
653648 }
654649}
655650
@@ -1376,9 +1371,9 @@ mod tests {
13761371| | mean[^1] | max | count[^2] |
13771372|:----------:|:--------:|:---:|:---------:|
13781373| Regressions ❌ <br /> (primary) | 146.7% | 200.0% | 3 |
1379- | Regressions ❌ <br /> (secondary) | N/A | N/A | 0 |
1380- | Improvements ✅ <br /> (primary) | N/A | N/A | 0 |
1381- | Improvements ✅ <br /> (secondary) | N/A | N/A | 0 |
1374+ | Regressions ❌ <br /> (secondary) | - | - | 0 |
1375+ | Improvements ✅ <br /> (primary) | - | - | 0 |
1376+ | Improvements ✅ <br /> (secondary) | - | - | 0 |
13821377| All ❌✅ (primary) | 146.7% | 200.0% | 3 |
13831378"#
13841379 . trim_start ( ) ,
@@ -1396,10 +1391,10 @@ mod tests {
13961391 r#"
13971392| | mean[^1] | max | count[^2] |
13981393|:----------:|:--------:|:---:|:---------:|
1399- | Regressions ❌ <br /> (primary) | N/A | N/A | 0 |
1400- | Regressions ❌ <br /> (secondary) | N/A | N/A | 0 |
1394+ | Regressions ❌ <br /> (primary) | - | - | 0 |
1395+ | Regressions ❌ <br /> (secondary) | - | - | 0 |
14011396| Improvements ✅ <br /> (primary) | -71.7% | -80.0% | 3 |
1402- | Improvements ✅ <br /> (secondary) | N/A | N/A | 0 |
1397+ | Improvements ✅ <br /> (secondary) | - | - | 0 |
14031398| All ❌✅ (primary) | -71.7% | -80.0% | 3 |
14041399"#
14051400 . trim_start ( ) ,
@@ -1417,11 +1412,11 @@ mod tests {
14171412 r#"
14181413| | mean[^1] | max | count[^2] |
14191414|:----------:|:--------:|:---:|:---------:|
1420- | Regressions ❌ <br /> (primary) | N/A | N/A | 0 |
1421- | Regressions ❌ <br /> (secondary) | N/A | N/A | 0 |
1422- | Improvements ✅ <br /> (primary) | N/A | N/A | 0 |
1415+ | Regressions ❌ <br /> (primary) | - | - | 0 |
1416+ | Regressions ❌ <br /> (secondary) | - | - | 0 |
1417+ | Improvements ✅ <br /> (primary) | - | - | 0 |
14231418| Improvements ✅ <br /> (secondary) | -71.7% | -80.0% | 3 |
1424- | All ❌✅ (primary) | N/A | N/A | 0 |
1419+ | All ❌✅ (primary) | - | - | 0 |
14251420"#
14261421 . trim_start ( ) ,
14271422 ) ;
@@ -1438,11 +1433,11 @@ mod tests {
14381433 r#"
14391434| | mean[^1] | max | count[^2] |
14401435|:----------:|:--------:|:---:|:---------:|
1441- | Regressions ❌ <br /> (primary) | N/A | N/A | 0 |
1436+ | Regressions ❌ <br /> (primary) | - | - | 0 |
14421437| Regressions ❌ <br /> (secondary) | 146.7% | 200.0% | 3 |
1443- | Improvements ✅ <br /> (primary) | N/A | N/A | 0 |
1444- | Improvements ✅ <br /> (secondary) | N/A | N/A | 0 |
1445- | All ❌✅ (primary) | N/A | N/A | 0 |
1438+ | Improvements ✅ <br /> (primary) | - | - | 0 |
1439+ | Improvements ✅ <br /> (secondary) | - | - | 0 |
1440+ | All ❌✅ (primary) | - | - | 0 |
14461441"#
14471442 . trim_start ( ) ,
14481443 ) ;
@@ -1461,9 +1456,9 @@ mod tests {
14611456| | mean[^1] | max | count[^2] |
14621457|:----------:|:--------:|:---:|:---------:|
14631458| Regressions ❌ <br /> (primary) | 150.0% | 200.0% | 2 |
1464- | Regressions ❌ <br /> (secondary) | N/A | N/A | 0 |
1459+ | Regressions ❌ <br /> (secondary) | - | - | 0 |
14651460| Improvements ✅ <br /> (primary) | -62.5% | -75.0% | 2 |
1466- | Improvements ✅ <br /> (secondary) | N/A | N/A | 0 |
1461+ | Improvements ✅ <br /> (secondary) | - | - | 0 |
14671462| All ❌✅ (primary) | 43.8% | 200.0% | 4 |
14681463"#
14691464 . trim_start ( ) ,
@@ -1505,9 +1500,9 @@ mod tests {
15051500| | mean[^1] | max | count[^2] |
15061501|:----------:|:--------:|:---:|:---------:|
15071502| Regressions ❌ <br /> (primary) | 20.0% | 20.0% | 1 |
1508- | Regressions ❌ <br /> (secondary) | N/A | N/A | 0 |
1503+ | Regressions ❌ <br /> (secondary) | - | - | 0 |
15091504| Improvements ✅ <br /> (primary) | -50.0% | -50.0% | 1 |
1510- | Improvements ✅ <br /> (secondary) | N/A | N/A | 0 |
1505+ | Improvements ✅ <br /> (secondary) | - | - | 0 |
15111506| All ❌✅ (primary) | -15.0% | -50.0% | 2 |
15121507"#
15131508 . trim_start ( ) ,
@@ -1525,9 +1520,9 @@ mod tests {
15251520| | mean[^1] | max | count[^2] |
15261521|:----------:|:--------:|:---:|:---------:|
15271522| Regressions ❌ <br /> (primary) | 100.0% | 100.0% | 1 |
1528- | Regressions ❌ <br /> (secondary) | N/A | N/A | 0 |
1523+ | Regressions ❌ <br /> (secondary) | - | - | 0 |
15291524| Improvements ✅ <br /> (primary) | -16.7% | -16.7% | 1 |
1530- | Improvements ✅ <br /> (secondary) | N/A | N/A | 0 |
1525+ | Improvements ✅ <br /> (secondary) | - | - | 0 |
15311526| All ❌✅ (primary) | 41.7% | 100.0% | 2 |
15321527"#
15331528 . trim_start ( ) ,
0 commit comments