KevinStephenson
Adding in weaviate code
b110593
raw
history blame
5.02 kB
// _ _
// __ _____ __ ___ ___ __ _| |_ ___
// \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \
// \ V V / __/ (_| |\ V /| | (_| | || __/
// \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___|
//
// Copyright © 2016 - 2024 Weaviate B.V. All rights reserved.
//
// CONTACT: [email protected]
//
package nearText
import (
"testing"
)
func Test_validateNearText(t *testing.T) {
tests := []struct {
name string
param NearTextParams
wantErr bool
}{
{
"May be empty",
NearTextParams{},
false,
},
{
"With just values",
NearTextParams{
Values: []string{"foobar"},
},
false,
},
{
"With values, distance, limit",
NearTextParams{
Values: []string{"foobar"},
Limit: 100,
Distance: 0.9,
WithDistance: true,
},
false,
},
{
"With values, certainty, limit",
NearTextParams{
Values: []string{"foobar"},
Limit: 100,
Certainty: 0.9,
},
false,
},
{
"With certainty and distance",
NearTextParams{
Values: []string{"foobar"},
Certainty: 0.9,
Distance: 0.1,
WithDistance: true,
},
true,
},
{
"When moveTo with force must also provide either values or objects (with distance)",
NearTextParams{
Values: []string{"foobar"},
Limit: 100,
Distance: 0.9,
WithDistance: true,
MoveTo: ExploreMove{
Force: 0.9,
},
},
true,
},
{
"When moveTo with force must also provide either values or objects (with certainty)",
NearTextParams{
Values: []string{"foobar"},
Limit: 100,
Certainty: 0.9,
MoveTo: ExploreMove{
Force: 0.9,
},
},
true,
},
{
"When moveAway with force must also provide either values or objects (with distance)",
NearTextParams{
Values: []string{"foobar"},
Limit: 100,
Distance: 0.9,
WithDistance: true,
MoveAwayFrom: ExploreMove{
Force: 0.9,
},
},
true,
},
{
"When moveAway with force must also provide either values or objects (with certainty)",
NearTextParams{
Values: []string{"foobar"},
Limit: 100,
Certainty: 0.9,
MoveAwayFrom: ExploreMove{
Force: 0.9,
},
},
true,
},
{
"When moveTo and moveAway with force must also provide either values or objects (with distance)",
NearTextParams{
Values: []string{"foobar"},
Limit: 100,
Distance: 0.9,
WithDistance: true,
MoveTo: ExploreMove{
Force: 0.9,
},
MoveAwayFrom: ExploreMove{
Force: 0.9,
},
},
true,
},
{
"When moveTo and moveAway with force must also provide either values or objects (with certainty)",
NearTextParams{
Values: []string{"foobar"},
Limit: 100,
Certainty: 0.9,
MoveTo: ExploreMove{
Force: 0.9,
},
MoveAwayFrom: ExploreMove{
Force: 0.9,
},
},
true,
},
{
"When moveTo or moveAway is with force must also provide either values or objects (with distance)",
NearTextParams{
Values: []string{"foobar"},
Limit: 100,
Distance: 0.9,
WithDistance: true,
MoveTo: ExploreMove{
Values: []string{"move to"},
Force: 0.9,
},
MoveAwayFrom: ExploreMove{
Force: 0.9,
},
},
true,
},
{
"When moveTo or moveAway is with force must also provide either values or objects (with certainty)",
NearTextParams{
Values: []string{"foobar"},
Limit: 100,
Certainty: 0.9,
MoveTo: ExploreMove{
Values: []string{"move to"},
Force: 0.9,
},
MoveAwayFrom: ExploreMove{
Force: 0.9,
},
},
true,
},
{
"When moveTo or moveAway is with force must provide values or objects (with distance)",
NearTextParams{
Values: []string{"foobar"},
Limit: 100,
Distance: 0.9,
WithDistance: true,
MoveTo: ExploreMove{
Values: []string{"move to"},
Force: 0.9,
},
MoveAwayFrom: ExploreMove{
Objects: []ObjectMove{
{ID: "some-uuid"},
},
Force: 0.9,
},
},
false,
},
{
"When moveTo or moveAway is with force must provide values or objects (with certainty)",
NearTextParams{
Values: []string{"foobar"},
Limit: 100,
Certainty: 0.9,
MoveTo: ExploreMove{
Values: []string{"move to"},
Force: 0.9,
},
MoveAwayFrom: ExploreMove{
Objects: []ObjectMove{
{ID: "some-uuid"},
},
Force: 0.9,
},
},
false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if err := tt.param.Validate(); (err != nil) != tt.wantErr {
t.Errorf("validateNearText() error = %v, wantErr %v", err, tt.wantErr)
}
})
}
}