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  }