t/perf: factor out percent calculations

This will let us reuse the code when we add new values to aggregate besides times. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jeff King committed Aug 17, 2018 at 16:55 UTC 5a924a62bb0fc5524101aeec9086aee530c2244d
1 file changed +12 -9
t/perf/aggregate.perl
+12 -9
@@ -19,21 +19,24 @@ sub get_times {
19 return ($rt, $4, $5);
20 }
21
22 +sub relative_change {
23 + my ($r, $firstr) = @_;
24 + if ($firstr > 0) {
25 + return sprintf "%+.1f%%", 100.0*($r-$firstr)/$firstr;
26 + } elsif ($r == 0) {
27 + return "=";
28 + } else {
29 + return "+inf";
30 + }
31 +}
32 +
33 sub format_times {
34 my ($r, $u, $s, $firstr) = @_;
35 if (!defined $r) {
36 return "<missing>";
37 }
38 my $out = sprintf "%.2f(%.2f+%.2f)", $r, $u, $s;
28 - if (defined $firstr) {
29 - if ($firstr > 0) {
30 - $out .= sprintf " %+.1f%%", 100.0*($r-$firstr)/$firstr;
31 - } elsif ($r == 0) {
32 - $out .= " =";
33 - } else {
34 - $out .= " +inf";
35 - }
36 - }
39 + $out .= ' ' . relative_change($r, $firstr) if defined $firstr;
40 return $out;
41 }
42