aboutsummaryrefslogtreecommitdiff
path: root/internal/priorityqueue/queue_test.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-29 14:14:21 +0000
committerGravatar Runxi Yu2026-03-29 14:14:21 +0000
commit69452f58fb0d6c1ed561df1e25efe51e5b3089fd (patch)
tree3e9cf39ffc197acca3da05bc4162581767ac2b64 /internal/priorityqueue/queue_test.go
parentcommitquery: Use internal/heap for the priority queue (diff)
signatureNo signature
internal/priorityqueue: Actually just make our own priority queue
Diffstat (limited to 'internal/priorityqueue/queue_test.go')
-rw-r--r--internal/priorityqueue/queue_test.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/internal/priorityqueue/queue_test.go b/internal/priorityqueue/queue_test.go
new file mode 100644
index 00000000..acb4f3e8
--- /dev/null
+++ b/internal/priorityqueue/queue_test.go
@@ -0,0 +1,35 @@
+package priorityqueue_test
+
+import (
+ "slices"
+ "testing"
+
+ "codeberg.org/lindenii/furgit/internal/priorityqueue"
+)
+
+func TestQueueAscending(t *testing.T) {
+ t.Parallel()
+
+ queue := priorityqueue.New(func(left, right int) bool {
+ return left < right
+ })
+
+ for _, value := range []int{5, 1, 4, 3, 2} {
+ queue.Push(value)
+ }
+
+ var got []int
+ for queue.Len() > 0 {
+ value, ok := queue.Pop()
+ if !ok {
+ t.Fatal("Pop should succeed")
+ }
+
+ got = append(got, value)
+ }
+
+ want := []int{1, 2, 3, 4, 5}
+ if !slices.Equal(got, want) {
+ t.Fatalf("pop order = %v, want %v", got, want)
+ }
+}