.gitignore added
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / tools@v0.1.0 / cmd / benchcmp / benchcmp_test.go
1 // Copyright 2014 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
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 }