github.com/weaviate/weaviate@v1.24.6/adapters/repos/db/inverted/delta_merger_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 inverted 13 14 import ( 15 "testing" 16 17 "github.com/stretchr/testify/assert" 18 ) 19 20 func TestDeltaMerger(t *testing.T) { 21 dm := NewDeltaMerger() 22 23 t.Run("a simple add and delete with one prop and one doc id", func(t *testing.T) { 24 dm.AddAdditions([]Property{{ 25 Name: "field1", Items: []Countable{ 26 {Data: []byte("a")}, 27 {Data: []byte("b")}, 28 }, 29 HasFilterableIndex: false, 30 HasSearchableIndex: true, 31 }}, 0) 32 33 dm.AddDeletions([]Property{{ 34 Name: "field1", Items: []Countable{ 35 {Data: []byte("a")}, 36 }, 37 }}, 0) 38 39 expected := DeltaMergeResult{ 40 Additions: []MergeProperty{ 41 { 42 Name: "field1", 43 HasFilterableIndex: false, 44 HasSearchableIndex: true, 45 MergeItems: []MergeItem{ 46 { 47 Data: []byte("b"), 48 DocIDs: []MergeDocIDWithFrequency{ 49 { 50 DocID: 0, 51 }, 52 }, 53 }, 54 }, 55 }, 56 }, 57 } 58 59 actual := dm.Merge() 60 assert.Equal(t, expected, actual) 61 }) 62 }