| // Copyright 2014 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| 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) | |
| } | |
| } | |
| } |