github.com/weaviate/weaviate@v1.24.6/adapters/repos/db/vector/hnsw/config_test.go (about) 1 // _ _ 2 // __ _____ __ ___ ___ __ _| |_ ___ 3 // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ 4 // \ V V / __/ (_| |\ V /| | (_| | || __/ 5 // \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| 6 // 7 // Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. 8 // 9 // CONTACT: hello@weaviate.io 10 // 11 12 package hnsw 13 14 import ( 15 "context" 16 "testing" 17 18 "github.com/pkg/errors" 19 "github.com/stretchr/testify/assert" 20 "github.com/weaviate/weaviate/adapters/repos/db/vector/hnsw/distancer" 21 ) 22 23 func Test_ValidConfig(t *testing.T) { 24 err := validConfig().Validate() 25 assert.Nil(t, err) 26 } 27 28 func Test_InValidConfig(t *testing.T) { 29 type test struct { 30 config func() Config 31 expectedErr error 32 } 33 34 tests := []test{ 35 { 36 config: func() Config { 37 v := validConfig() 38 v.ID = "" 39 return v 40 }, 41 expectedErr: errors.Errorf("id cannot be empty"), 42 }, 43 { 44 config: func() Config { 45 v := validConfig() 46 v.RootPath = "" 47 return v 48 }, 49 expectedErr: errors.Errorf("rootPath cannot be empty"), 50 }, 51 { 52 config: func() Config { 53 v := validConfig() 54 v.MakeCommitLoggerThunk = nil 55 return v 56 }, 57 expectedErr: errors.Errorf("makeCommitLoggerThunk cannot be nil"), 58 }, 59 { 60 config: func() Config { 61 v := validConfig() 62 v.VectorForIDThunk = nil 63 return v 64 }, 65 expectedErr: errors.Errorf("vectorForIDThunk cannot be nil"), 66 }, 67 } 68 69 for _, test := range tests { 70 t.Run(test.expectedErr.Error(), func(t *testing.T) { 71 err := test.config().Validate() 72 assert.Equal(t, test.expectedErr.Error(), err.Error()) 73 }) 74 } 75 } 76 77 func validConfig() Config { 78 return Config{ 79 RootPath: "some path", 80 ID: "someid", 81 MakeCommitLoggerThunk: func() (CommitLogger, error) { return nil, nil }, 82 VectorForIDThunk: func(context.Context, uint64) ([]float32, error) { return nil, nil }, 83 DistanceProvider: distancer.NewCosineDistanceProvider(), 84 } 85 }