github.com/qiuhoude/go-web@v0.0.0-20220223060959-ab545e78f20d/algorithm/datastructures/queue/queue_test.go (about) 1 package queue 2 3 import "testing" 4 5 func TestArrayQueue_Enqueue(t *testing.T) { 6 q := NewArrayQueue(5) 7 q.Enqueue(1) 8 q.Enqueue(2) 9 q.Enqueue(3) 10 q.Enqueue(4) 11 q.Enqueue(5) 12 q.Enqueue(6) 13 t.Log(q) 14 } 15 16 func TestArrayQueue_Dequeue(t *testing.T) { 17 q := NewArrayQueue(5) 18 for i := 1; i < 10; i++ { 19 if q.Enqueue(i) { 20 t.Log(q) 21 } 22 } 23 for i := 0; i < 10; i++ { 24 q.Dequeue() 25 t.Log(q) 26 } 27 28 } 29 30 func TestLinkedQueue_Dequeue(t *testing.T) { 31 q := NewLinkedQueue() 32 for i := 1; i < 10; i++ { 33 if q.Enqueue(i) { 34 t.Log(q.Len()) 35 t.Log(q) 36 } 37 } 38 for i := 0; i < 10; i++ { 39 v := q.Dequeue() 40 t.Log("v =", v) 41 t.Log(q) 42 } 43 44 } 45 46 func TestCircularQueue_Enqueue(t *testing.T) { 47 q := NewCircularQueue(5) 48 q.Enqueue(1) 49 q.Enqueue(2) 50 q.Enqueue(3) 51 q.Enqueue(4) 52 q.Enqueue(5) 53 q.Enqueue(6) 54 t.Log(q) 55 } 56 57 func TestCircularQueue_Dequeue(t *testing.T) { 58 q := NewCircularQueue(5) 59 q.Enqueue(1) 60 q.Enqueue(2) 61 q.Enqueue(3) 62 q.Enqueue(4) 63 q.Enqueue(5) 64 q.Enqueue(6) 65 t.Log(q) 66 t.Log(q.Dequeue()) 67 t.Log(q) 68 q.Enqueue(6) 69 t.Log(q) 70 q.Dequeue() 71 q.Dequeue() 72 t.Log(q) 73 q.Enqueue(7) 74 t.Log(q) 75 q.Dequeue() 76 t.Log(q) 77 q.Dequeue() 78 t.Log(q) 79 q.Dequeue() 80 t.Log(q) 81 } 82 83 func TestCircularQueue_Dynamic(t *testing.T) { 84 q := NewCircularQueue(5) 85 q.Offer(1) 86 q.Offer(2) 87 q.Offer(3) 88 q.Offer(4) 89 q.Offer(5) 90 q.Offer(6) 91 t.Log(q) 92 t.Log(q.Poll()) 93 t.Log(q) 94 q.Offer(6) 95 t.Log(q) 96 q.Poll() 97 q.Poll() 98 t.Log(q) 99 q.Offer(7) 100 t.Log(q) 101 q.Poll() 102 t.Log(q) 103 q.Poll() 104 t.Log(q) 105 q.Poll() 106 t.Log(q) 107 }