gitee.com/h79/goutils@v1.22.10/common/queue/queue_test.go (about) 1 package queue 2 3 import ( 4 "gitee.com/h79/goutils/common/random" 5 "testing" 6 ) 7 8 func TestPQueue(t *testing.T) { 9 10 pq := NewPriority() 11 12 pq.Add(&priorityItem{Priority: 40, Value: 40}) 13 pq.Add(&priorityItem{Priority: 20, Value: 20}) 14 pq.Add(&priorityItem{Priority: 80, Value: 80}) 15 pq.Add(&priorityItem{Priority: 33, Value: 33}) 16 pq.Add(&priorityItem{Priority: 30, Value: 30}) 17 pq.Add(&priorityItem{Priority: 30, Value: 30}) 18 pq.Add(&priorityItem{Priority: 60, Value: 60}) 19 20 //for pq.Len() > 0 { 21 22 //} 23 for pq.Len() > 0 { 24 t.Logf("%+v", pq.Peek()) 25 t.Logf("%+v", pq.Pop()) 26 t.Logf("----") 27 //t.Logf("%+v", heap.Pop(pq)) 28 //fmt.Printf("%d ", heap.Pop()) 29 } 30 //t.Logf("%+v", pq.Pop()) 31 //t.Logf("%+v", pq.Pop()) 32 //t.Logf("%+v", pq.Pop()) 33 //t.Logf("%+v", pq.Pop()) 34 //t.Logf("%+v", pq.Pop()) 35 //t.Logf("%+v", pq.Pop()) 36 //t.Logf("%+v", pq.Pop()) 37 //t.Logf("%+v", pq.Pop()) 38 } 39 40 func TestSQueue(t *testing.T) { 41 42 pq := NewCapacity(10) 43 //t.Logf("%+v", pq.Peek()) 44 45 r := random.Random() 46 for i := 0; i < 1000; i++ { 47 v := r.Int63n(10000) 48 pq.Add(&priorityItem{Priority: v, Value: v}) 49 } 50 // 51 //pq.Add(&priorityItem{Priority: 20, Value: 20}) 52 //pq.Add(&priorityItem{Priority: 30, Value: 30}) 53 //pq.Add(&priorityItem{Priority: 60, Value: 60}) 54 //pq.Add(&priorityItem{Priority: 201, Value: 201}) 55 //pq.Add(&priorityItem{Priority: 301, Value: 301}) 56 //pq.Add(&priorityItem{Priority: 601, Value: 601}) 57 //pq.Add(&priorityItem{Priority: 202, Value: 202}) 58 //pq.Add(&priorityItem{Priority: 401, Value: 401}) 59 //pq.Add(&priorityItem{Priority: 401, Value: 401}) 60 //pq.Add(&priorityItem{Priority: 401, Value: 401}) 61 //pq.Add(&priorityItem{Priority: 402, Value: 402}) 62 //pq.Add(&priorityItem{Priority: 302, Value: 302}) 63 //pq.Add(&priorityItem{Priority: 602, Value: 602}) 64 //pq.Add(&priorityItem{Priority: 203, Value: 203}) 65 //pq.Add(&priorityItem{Priority: 303, Value: 303}) 66 //pq.Add(&priorityItem{Priority: 502, Value: 202}) 67 //pq.Add(&priorityItem{Priority: 503, Value: 503}) 68 //pq.Add(&priorityItem{Priority: 504, Value: 504}) 69 //pq.Add(&priorityItem{Priority: 502, Value: 501}) 70 //pq.Add(&priorityItem{Priority: 402, Value: 402}) 71 //pq.Add(&priorityItem{Priority: 703, Value: 703}) 72 //pq.Add(&priorityItem{Priority: 302, Value: 302}) 73 //pq.Add(&priorityItem{Priority: 602, Value: 602}) 74 //pq.Add(&priorityItem{Priority: 203, Value: 203}) 75 //pq.Add(&priorityItem{Priority: 303, Value: 303}) 76 //pq.Add(&priorityItem{Priority: 603, Value: 603}) 77 i := 0 78 for pq.Len() > 0 { 79 t.Logf("%+v,%d", pq.Peek(), i) 80 t.Logf("%+v", pq.Pop()) 81 t.Logf("----") 82 i++ 83 //t.Logf("%+v", pq.Pop()) 84 //fmt.Printf("%d ", heap.Pop()) 85 } 86 //t.Logf("%+v", pq.Pop()) 87 //t.Logf("%+v", pq.Pop()) 88 //t.Logf("%+v", pq.Pop()) 89 //t.Logf("%+v", pq.Pop()) 90 }