blob: 5c18b08ba4e3f0681d525af428d4556cb9af8cb1 [file] [log] [blame]
package paramsets
import (
"testing"
"github.com/stretchr/testify/assert"
"go.skia.org/infra/go/testutils"
"go.skia.org/infra/go/tiling"
"go.skia.org/infra/go/util"
"go.skia.org/infra/golden/go/tally"
"go.skia.org/infra/golden/go/types"
)
func TestParamset(t *testing.T) {
testutils.SmallTest(t)
tile := &tiling.Tile{
Traces: map[string]tiling.Trace{
"a": &types.GoldenTrace{
Values: []string{"aaa", "bbb"},
Params_: map[string]string{
"name": "foo",
"config": "8888",
types.CORPUS_FIELD: "gm"},
},
"b": &types.GoldenTrace{
Values: []string{"ccc", "ddd", "aaa"},
Params_: map[string]string{
"name": "foo",
"config": "565",
types.CORPUS_FIELD: "gm"},
},
"c": &types.GoldenTrace{
Values: []string{"eee", types.MISSING_DIGEST},
Params_: map[string]string{
"name": "foo",
"config": "gpu",
types.CORPUS_FIELD: "gm"},
},
"e": &types.GoldenTrace{
Values: []string{"xxx", "yyy", "yyy"},
Params_: map[string]string{
"name": "bar",
"config": "565",
types.CORPUS_FIELD: "gm"},
},
"f": &types.GoldenTrace{
Values: []string{"xxx", types.MISSING_DIGEST},
Params_: map[string]string{
"name": "bar",
"config": "gpu",
types.CORPUS_FIELD: "gm"},
},
},
}
tallies := map[string]tally.Tally{
"a": {
"aaa": 1,
"bbb": 1,
},
"b": {
"ccc": 1,
"ddd": 1,
"aaa": 1,
},
"c": {
"eee": 1,
},
"e": {
"xxx": 1,
"yyy": 2,
},
"f": {
"xxx": 1,
},
"unknown": {
"ccc": 1,
"ddd": 1,
"aaa": 1,
},
}
byTrace := byTraceForTile(tile, tallies)
// Test that we are robust to traces appearing in tallies, but not in the tile, and vice-versa.
assert.Equal(t, byTrace["foo"]["bbb"]["config"], []string{"8888"})
assert.Equal(t, byTrace["foo"]["aaa"]["name"], []string{"foo"})
assert.Equal(t, byTrace["bar"]["yyy"]["config"], []string{"565"})
assert.Equal(t, util.NewStringSet([]string{"565", "gpu"}), util.NewStringSet(byTrace["bar"]["xxx"]["config"]))
assert.Equal(t, util.NewStringSet([]string{"565", "8888"}), util.NewStringSet(byTrace["foo"]["aaa"]["config"]))
assert.Nil(t, byTrace["bar:fff"])
}