github.com/weaviate/weaviate@v1.24.6/adapters/repos/db/vector/compressionhelpers/compression_distance_bag_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 //go:build !race 13 14 package compressionhelpers_test 15 16 import ( 17 "context" 18 "testing" 19 20 "github.com/stretchr/testify/assert" 21 "github.com/weaviate/weaviate/adapters/repos/db/vector/compressionhelpers" 22 "github.com/weaviate/weaviate/adapters/repos/db/vector/hnsw/distancer" 23 testinghelpers "github.com/weaviate/weaviate/adapters/repos/db/vector/testinghelpers" 24 ) 25 26 func Test_NoRaceQuantizedDistanceBag(t *testing.T) { 27 compressor, err := compressionhelpers.NewBQCompressor(distancer.NewCosineDistanceProvider(), 1e12, nil, testinghelpers.NewDummyStore(t)) 28 assert.Nil(t, err) 29 compressor.Preload(1, []float32{-0.5, 0.5}) 30 compressor.Preload(2, []float32{0.25, 0.7}) 31 compressor.Preload(3, []float32{0.5, 0.5}) 32 33 t.Run("returns error when id has not been loaded", func(t *testing.T) { 34 bag := compressor.NewBag() 35 _, err = bag.Distance(1, 2) 36 assert.NotNil(t, err) 37 }) 38 39 t.Run("returns error when id has not been loaded", func(t *testing.T) { 40 bag := compressor.NewBag() 41 bag.Load(context.Background(), 1) 42 bag.Load(context.Background(), 2) 43 bag.Load(context.Background(), 3) 44 45 d, err := bag.Distance(1, 2) 46 assert.Nil(t, err) 47 assert.Equal(t, float32(1), d) 48 49 d, err = bag.Distance(2, 3) 50 assert.Nil(t, err) 51 assert.Equal(t, float32(0), d) 52 }) 53 }