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