github.com/weaviate/weaviate@v1.24.6/adapters/repos/db/priorityqueue/queue_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 priorityqueue 13 14 import ( 15 "testing" 16 17 "github.com/stretchr/testify/assert" 18 ) 19 20 func TestPriorityQueueMin(t *testing.T) { 21 values := map[uint64]float32{ 22 0: 0.0, 23 1: 0.23, 24 2: 0.8, 25 3: 0.222, 26 4: 0.88, 27 5: 1, 28 } 29 expectedResults := []Item[any]{ 30 {Dist: 0, ID: 0}, 31 {Dist: 0.222, ID: 3}, 32 {Dist: 0.23, ID: 1}, 33 {Dist: 0.8, ID: 2}, 34 {Dist: 0.88, ID: 4}, 35 {Dist: 1, ID: 5}, 36 } 37 38 pq := NewMin[any](6) 39 40 for id, dist := range values { 41 pq.Insert(id, dist) 42 } 43 44 var results []Item[any] 45 for pq.Len() > 0 { 46 results = append(results, pq.Pop()) 47 } 48 49 assert.Equal(t, expectedResults, results) 50 } 51 52 func TestPriorityQueueMax(t *testing.T) { 53 values := map[uint64]float32{ 54 0: 0.0, 55 1: 0.23, 56 2: 0.8, 57 3: 0.222, 58 4: 0.88, 59 5: 1, 60 } 61 expectedResults := []Item[any]{ 62 {Dist: 1, ID: 5}, 63 {Dist: 0.88, ID: 4}, 64 {Dist: 0.8, ID: 2}, 65 {Dist: 0.23, ID: 1}, 66 {Dist: 0.222, ID: 3}, 67 {Dist: 0, ID: 0}, 68 } 69 70 pq := NewMax[any](6) 71 72 for id, dist := range values { 73 pq.Insert(id, dist) 74 } 75 76 var results []Item[any] 77 for pq.Len() > 0 { 78 results = append(results, pq.Pop()) 79 } 80 81 assert.Equal(t, expectedResults, results) 82 }