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  }