@@ -525,7 +525,7 @@ pub fn write_summary_table(
525
525
let value = if count > 0 { calculate ( ) } else { None } ;
526
526
value
527
527
. map ( |value| format ! ( "{value:.1}%" ) )
528
- . unwrap_or_else ( || "N/A " . to_string ( ) )
528
+ . unwrap_or_else ( || "- " . to_string ( ) )
529
529
}
530
530
531
531
// (label, mean, max, count)
@@ -555,14 +555,14 @@ pub fn write_summary_table(
555
555
Some ( secondary. arithmetic_mean_of_improvements( ) )
556
556
} ) ,
557
557
if primary. is_empty( ) {
558
- "N/A " . to_string( )
558
+ "- " . to_string( )
559
559
} else {
560
560
format!( "{:.1}%" , primary. arithmetic_mean_of_changes( ) )
561
561
} ,
562
562
] ) ;
563
563
564
564
let largest_change = if primary. is_empty ( ) {
565
- "N/A " . to_string ( )
565
+ "- " . to_string ( )
566
566
} else {
567
567
let largest_improvement = primary
568
568
. largest_improvement ( )
@@ -620,6 +620,8 @@ pub fn write_summary_table(
620
620
( primary. num_regressions + primary. num_improvements) . to_string( ) ,
621
621
] ) ;
622
622
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.
623
625
let column_labels = [
624
626
" " . to_string ( ) , // we want at least 10 spaces to accommodate "count[^2]"
625
627
format ! ( "mean{}" , if with_footnotes { "[^1]" } else { "" } ) ,
@@ -636,20 +638,13 @@ pub fn write_summary_table(
636
638
}
637
639
result. push_str ( "|\n " ) ;
638
640
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) {
642
645
write ! ( result, "| {:<1$} " , column, count) . unwrap ( ) ;
643
646
}
644
647
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) ;
653
648
}
654
649
}
655
650
@@ -1376,9 +1371,9 @@ mod tests {
1376
1371
| | mean[^1] | max | count[^2] |
1377
1372
|:----------:|:--------:|:---:|:---------:|
1378
1373
| 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 |
1382
1377
| All ❌✅ (primary) | 146.7% | 200.0% | 3 |
1383
1378
"#
1384
1379
. trim_start ( ) ,
@@ -1396,10 +1391,10 @@ mod tests {
1396
1391
r#"
1397
1392
| | mean[^1] | max | count[^2] |
1398
1393
|:----------:|:--------:|:---:|:---------:|
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 |
1401
1396
| Improvements ✅ <br /> (primary) | -71.7% | -80.0% | 3 |
1402
- | Improvements ✅ <br /> (secondary) | N/A | N/A | 0 |
1397
+ | Improvements ✅ <br /> (secondary) | - | - | 0 |
1403
1398
| All ❌✅ (primary) | -71.7% | -80.0% | 3 |
1404
1399
"#
1405
1400
. trim_start ( ) ,
@@ -1417,11 +1412,11 @@ mod tests {
1417
1412
r#"
1418
1413
| | mean[^1] | max | count[^2] |
1419
1414
|:----------:|:--------:|:---:|:---------:|
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 |
1423
1418
| Improvements ✅ <br /> (secondary) | -71.7% | -80.0% | 3 |
1424
- | All ❌✅ (primary) | N/A | N/A | 0 |
1419
+ | All ❌✅ (primary) | - | - | 0 |
1425
1420
"#
1426
1421
. trim_start ( ) ,
1427
1422
) ;
@@ -1438,11 +1433,11 @@ mod tests {
1438
1433
r#"
1439
1434
| | mean[^1] | max | count[^2] |
1440
1435
|:----------:|:--------:|:---:|:---------:|
1441
- | Regressions ❌ <br /> (primary) | N/A | N/A | 0 |
1436
+ | Regressions ❌ <br /> (primary) | - | - | 0 |
1442
1437
| 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 |
1446
1441
"#
1447
1442
. trim_start ( ) ,
1448
1443
) ;
@@ -1461,9 +1456,9 @@ mod tests {
1461
1456
| | mean[^1] | max | count[^2] |
1462
1457
|:----------:|:--------:|:---:|:---------:|
1463
1458
| Regressions ❌ <br /> (primary) | 150.0% | 200.0% | 2 |
1464
- | Regressions ❌ <br /> (secondary) | N/A | N/A | 0 |
1459
+ | Regressions ❌ <br /> (secondary) | - | - | 0 |
1465
1460
| Improvements ✅ <br /> (primary) | -62.5% | -75.0% | 2 |
1466
- | Improvements ✅ <br /> (secondary) | N/A | N/A | 0 |
1461
+ | Improvements ✅ <br /> (secondary) | - | - | 0 |
1467
1462
| All ❌✅ (primary) | 43.8% | 200.0% | 4 |
1468
1463
"#
1469
1464
. trim_start ( ) ,
@@ -1505,9 +1500,9 @@ mod tests {
1505
1500
| | mean[^1] | max | count[^2] |
1506
1501
|:----------:|:--------:|:---:|:---------:|
1507
1502
| Regressions ❌ <br /> (primary) | 20.0% | 20.0% | 1 |
1508
- | Regressions ❌ <br /> (secondary) | N/A | N/A | 0 |
1503
+ | Regressions ❌ <br /> (secondary) | - | - | 0 |
1509
1504
| Improvements ✅ <br /> (primary) | -50.0% | -50.0% | 1 |
1510
- | Improvements ✅ <br /> (secondary) | N/A | N/A | 0 |
1505
+ | Improvements ✅ <br /> (secondary) | - | - | 0 |
1511
1506
| All ❌✅ (primary) | -15.0% | -50.0% | 2 |
1512
1507
"#
1513
1508
. trim_start ( ) ,
@@ -1525,9 +1520,9 @@ mod tests {
1525
1520
| | mean[^1] | max | count[^2] |
1526
1521
|:----------:|:--------:|:---:|:---------:|
1527
1522
| Regressions ❌ <br /> (primary) | 100.0% | 100.0% | 1 |
1528
- | Regressions ❌ <br /> (secondary) | N/A | N/A | 0 |
1523
+ | Regressions ❌ <br /> (secondary) | - | - | 0 |
1529
1524
| Improvements ✅ <br /> (primary) | -16.7% | -16.7% | 1 |
1530
- | Improvements ✅ <br /> (secondary) | N/A | N/A | 0 |
1525
+ | Improvements ✅ <br /> (secondary) | - | - | 0 |
1531
1526
| All ❌✅ (primary) | 41.7% | 100.0% | 2 |
1532
1527
"#
1533
1528
. trim_start ( ) ,
0 commit comments