| Index: perf/go/parser/parser_test.go
|
| diff --git a/perf/go/parser/parser_test.go b/perf/go/parser/parser_test.go
|
| index 71fbebf5790e8fea8292a02584a59d684212c3ad..2bc39bbe33da244ce528cd2393ad3dda3d60f94e 100644
|
| --- a/perf/go/parser/parser_test.go
|
| +++ b/perf/go/parser/parser_test.go
|
| @@ -131,6 +131,27 @@ func TestAve(t *testing.T) {
|
| }
|
| }
|
|
|
| +func TestRatio(t *testing.T) {
|
| + ctx := newTestContext()
|
| + ctx.Tile.Traces["t1"].(*types.PerfTrace).Values = []float64{10, 4, 100, 50, 9999, 0}
|
| + ctx.Tile.Traces["t2"].(*types.PerfTrace).Values = []float64{5, 2, 4, 5, 0, 1000}
|
| +
|
| + traces, err := ctx.Eval(`ratio(
|
| + ave(fill(filter("config=gpu"))),
|
| + ave(fill(filter("config=8888"))))`)
|
| + if err != nil {
|
| + t.Fatalf("Failed to eval ratio() test: %s", err)
|
| + }
|
| + if got, want := len(traces), 1; got != want {
|
| + t.Errorf("ratio() returned wrong length: Got %v Want %v", got, want)
|
| + }
|
| + for i, want := range []float64{0.5, 0.5, 0.04, 0.1, 0, 1e+100} {
|
| + if got := traces[0].Values[i]; got != want {
|
| + t.Errorf("Ratio mismatch: Got %v Want %v", got, want)
|
| + }
|
| + }
|
| +}
|
| +
|
| func TestFill(t *testing.T) {
|
| ctx := newTestContext()
|
| ctx.Tile.Traces["t1"].(*types.PerfTrace).Values = []float64{1e100, 1e100, 2, 3, 1e100, 5}
|
|
|