1
2
3
4
5 package main
6
7 import (
8 "reflect"
9 "testing"
10
11 "golang.org/x/tools/benchmark/parse"
12 )
13
14 func TestSelectBest(t *testing.T) {
15 have := parse.Set{
16 "Benchmark1": []*parse.Benchmark{
17 {
18 Name: "Benchmark1",
19 N: 10, NsPerOp: 100, Measured: parse.NsPerOp,
20 Ord: 0,
21 },
22 {
23 Name: "Benchmark1",
24 N: 10, NsPerOp: 50, Measured: parse.NsPerOp,
25 Ord: 3,
26 },
27 },
28 "Benchmark2": []*parse.Benchmark{
29 {
30 Name: "Benchmark2",
31 N: 10, NsPerOp: 60, Measured: parse.NsPerOp,
32 Ord: 1,
33 },
34 {
35 Name: "Benchmark2",
36 N: 10, NsPerOp: 500, Measured: parse.NsPerOp,
37 Ord: 2,
38 },
39 },
40 }
41
42 want := parse.Set{
43 "Benchmark1": []*parse.Benchmark{
44 {
45 Name: "Benchmark1",
46 N: 10, NsPerOp: 50, Measured: parse.NsPerOp,
47 Ord: 0,
48 },
49 },
50 "Benchmark2": []*parse.Benchmark{
51 {
52 Name: "Benchmark2",
53 N: 10, NsPerOp: 60, Measured: parse.NsPerOp,
54 Ord: 1,
55 },
56 },
57 }
58
59 selectBest(have)
60 if !reflect.DeepEqual(want, have) {
61 t.Errorf("filtered bench set incorrectly, want %v have %v", want, have)
62 }
63 }
64
65 func TestFormatNs(t *testing.T) {
66 tests := []struct {
67 input float64
68 expected string
69 }{
70 {input: 0, expected: "0.00"},
71 {input: 0.2, expected: "0.20"},
72 {input: 2, expected: "2.00"},
73 {input: 2.2, expected: "2.20"},
74 {input: 4, expected: "4.00"},
75 {input: 16, expected: "16.0"},
76 {input: 16.08, expected: "16.1"},
77 {input: 128, expected: "128"},
78 {input: 256.2, expected: "256"},
79 }
80
81 for _, tt := range tests {
82 actual := formatNs(tt.input)
83 if actual != tt.expected {
84 t.Fatalf("%f. got %q, want %q", tt.input, actual, tt.expected)
85 }
86 }
87 }
88
View as plain text