File size: 1,344 Bytes
b110593
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//                           _       _
// __      _____  __ ___   ___  __ _| |_ ___
// \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \
//  \ V  V /  __/ (_| |\ V /| | (_| | ||  __/
//   \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___|
//
//  Copyright © 2016 - 2024 Weaviate B.V. All rights reserved.
//
//  CONTACT: [email protected]
//

package inverted

import (
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestDeltaMerger(t *testing.T) {
	dm := NewDeltaMerger()

	t.Run("a simple add and delete with one prop and one doc id", func(t *testing.T) {
		dm.AddAdditions([]Property{{
			Name: "field1", Items: []Countable{
				{Data: []byte("a")},
				{Data: []byte("b")},
			},
			HasFilterableIndex: false,
			HasSearchableIndex: true,
		}}, 0)

		dm.AddDeletions([]Property{{
			Name: "field1", Items: []Countable{
				{Data: []byte("a")},
			},
		}}, 0)

		expected := DeltaMergeResult{
			Additions: []MergeProperty{
				{
					Name:               "field1",
					HasFilterableIndex: false,
					HasSearchableIndex: true,
					MergeItems: []MergeItem{
						{
							Data: []byte("b"),
							DocIDs: []MergeDocIDWithFrequency{
								{
									DocID: 0,
								},
							},
						},
					},
				},
			},
		}

		actual := dm.Merge()
		assert.Equal(t, expected, actual)
	})
}