mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-09-13 08:01:02 +00:00
refactor test to reduce duplication
I guess this is actually better... thanks SonarCloud!
This commit is contained in:
parent
58b4f40cdc
commit
bd3e73ba66
1 changed files with 46 additions and 47 deletions
|
|
@ -1688,64 +1688,63 @@ func TestExecutor_Execute_SetValue(t *testing.T) {
|
|||
|
||||
}
|
||||
|
||||
func TestExecutor_Execute_TopK_Set(t *testing.T) {
|
||||
c := test.MustRunCluster(t, 3)
|
||||
defer c.Close()
|
||||
|
||||
// Load some test data into a set field.
|
||||
c.CreateField(t, "i", pilosa.IndexOptions{TrackExistence: true}, "f")
|
||||
c.ImportBits(t, "i", "f", [][2]uint64{
|
||||
func TestExecutor_ExecuteTopK(t *testing.T) {
|
||||
baseBits := [][2]uint64{
|
||||
{0, 0},
|
||||
{0, 1},
|
||||
{0, ShardWidth + 2},
|
||||
{10, 2},
|
||||
{10, ShardWidth},
|
||||
{10, 2 * ShardWidth},
|
||||
{10, ShardWidth + 1},
|
||||
{20, ShardWidth},
|
||||
})
|
||||
|
||||
// Execute query.
|
||||
if result, err := c.GetNode(0).API.Query(context.Background(), &pilosa.QueryRequest{Index: "i", Query: `TopK(f, k=2)`}); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if !reflect.DeepEqual(result.Results, []interface{}{&pilosa.PairsField{
|
||||
Pairs: []pilosa.Pair{
|
||||
{ID: 10, Count: 4},
|
||||
{ID: 0, Count: 3},
|
||||
},
|
||||
Field: "f",
|
||||
}}) {
|
||||
t.Fatalf("unexpected result: %s", spew.Sdump(result))
|
||||
}
|
||||
}
|
||||
|
||||
func TestExecutor_Execute_TopK_Mutex(t *testing.T) {
|
||||
tests := []struct {
|
||||
fieldName string
|
||||
fieldOptions []pilosa.FieldOption
|
||||
bits [][2]uint64
|
||||
query string
|
||||
result []pilosa.Pair
|
||||
}{
|
||||
{
|
||||
fieldName: "f",
|
||||
bits: append(baseBits, [2]uint64{0, 1}),
|
||||
query: "TopK(f, k=2)",
|
||||
result: []pilosa.Pair{
|
||||
{ID: 10, Count: 4},
|
||||
{ID: 0, Count: 3},
|
||||
},
|
||||
},
|
||||
{
|
||||
fieldName: "fmutex",
|
||||
fieldOptions: []pilosa.FieldOption{pilosa.OptFieldTypeMutex(pilosa.CacheTypeRanked, 10)},
|
||||
bits: baseBits,
|
||||
query: "TopK(f, k=2)",
|
||||
result: []pilosa.Pair{
|
||||
{ID: 10, Count: 3},
|
||||
{ID: 0, Count: 2},
|
||||
},
|
||||
},
|
||||
}
|
||||
c := test.MustRunCluster(t, 3)
|
||||
defer c.Close()
|
||||
|
||||
// Load some test data into a mutex field.
|
||||
c.CreateField(t, "i", pilosa.IndexOptions{TrackExistence: true}, "f", pilosa.OptFieldTypeMutex(pilosa.CacheTypeRanked, 10))
|
||||
c.ImportBits(t, "i", "f", [][2]uint64{
|
||||
{0, 0},
|
||||
{0, ShardWidth + 2},
|
||||
{10, 2},
|
||||
{10, ShardWidth},
|
||||
{10, 2 * ShardWidth},
|
||||
{10, ShardWidth + 1},
|
||||
{20, ShardWidth},
|
||||
})
|
||||
|
||||
// Execute query.
|
||||
if result, err := c.GetNode(0).API.Query(context.Background(), &pilosa.QueryRequest{Index: "i", Query: `TopK(f, k=2)`}); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if !reflect.DeepEqual(result.Results, []interface{}{&pilosa.PairsField{
|
||||
Pairs: []pilosa.Pair{
|
||||
{ID: 10, Count: 3},
|
||||
{ID: 0, Count: 2},
|
||||
},
|
||||
Field: "f",
|
||||
}}) {
|
||||
t.Fatalf("unexpected result: %s", spew.Sdump(result))
|
||||
for _, tst := range tests {
|
||||
t.Run(tst.fieldName, func(t *testing.T) {
|
||||
pilosa.OptFieldTypeMutex(pilosa.CacheTypeRanked, 10)
|
||||
c.CreateField(t, "i", pilosa.IndexOptions{TrackExistence: true}, tst.fieldName)
|
||||
c.ImportBits(t, "i", tst.fieldName, tst.bits)
|
||||
if result, err := c.GetNode(0).API.Query(context.Background(), &pilosa.QueryRequest{Index: "i", Query: tst.query}); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if !reflect.DeepEqual(result.Results, []interface{}{&pilosa.PairsField{
|
||||
Pairs: []pilosa.Pair{
|
||||
{ID: 10, Count: 4},
|
||||
{ID: 0, Count: 3},
|
||||
},
|
||||
Field: "f",
|
||||
}}) {
|
||||
t.Fatalf("unexpected result: %s", spew.Sdump(result))
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue