| package main |
| |
| import ( |
| "reflect" |
| "testing" |
| |
| "golang.org/x/tools/benchmark/parse" |
| ) |
| |
| func TestSelectBest(t *testing.T) { |
| have := parse.Set{ |
| "Benchmark1": []*parse.Benchmark{ |
| { |
| Name: "Benchmark1", |
| N: 10, NsPerOp: 100, Measured: parse.NsPerOp, |
| Ord: 0, |
| }, |
| { |
| Name: "Benchmark1", |
| N: 10, NsPerOp: 50, Measured: parse.NsPerOp, |
| Ord: 3, |
| }, |
| }, |
| "Benchmark2": []*parse.Benchmark{ |
| { |
| Name: "Benchmark2", |
| N: 10, NsPerOp: 60, Measured: parse.NsPerOp, |
| Ord: 1, |
| }, |
| { |
| Name: "Benchmark2", |
| N: 10, NsPerOp: 500, Measured: parse.NsPerOp, |
| Ord: 2, |
| }, |
| }, |
| } |
| |
| want := parse.Set{ |
| "Benchmark1": []*parse.Benchmark{ |
| { |
| Name: "Benchmark1", |
| N: 10, NsPerOp: 50, Measured: parse.NsPerOp, |
| Ord: 0, |
| }, |
| }, |
| "Benchmark2": []*parse.Benchmark{ |
| { |
| Name: "Benchmark2", |
| N: 10, NsPerOp: 60, Measured: parse.NsPerOp, |
| Ord: 1, |
| }, |
| }, |
| } |
| |
| selectBest(have) |
| if !reflect.DeepEqual(want, have) { |
| t.Errorf("filtered bench set incorrectly, want %v have %v", want, have) |
| } |
| } |
| |
| func TestFormatNs(t *testing.T) { |
| tests := []struct { |
| input float64 |
| expected string |
| }{ |
| {input: 0, expected: "0.00"}, |
| {input: 0.2, expected: "0.20"}, |
| {input: 2, expected: "2.00"}, |
| {input: 2.2, expected: "2.20"}, |
| {input: 4, expected: "4.00"}, |
| {input: 16, expected: "16.0"}, |
| {input: 16.08, expected: "16.1"}, |
| {input: 128, expected: "128"}, |
| {input: 256.2, expected: "256"}, |
| } |
| |
| for _, tt := range tests { |
| actual := formatNs(tt.input) |
| if actual != tt.expected { |
| t.Fatalf("%f. got %q, want %q", tt.input, actual, tt.expected) |
| } |
| } |
| } |