| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 | package kcp_testimport (	"testing"	"github.com/v2ray/v2ray-core/testing/assert"	. "github.com/v2ray/v2ray-core/transport/internet/kcp")func TestSendingQueue(t *testing.T) {	assert := assert.On(t)	queue := NewSendingQueue(3)	seg0 := &DataSegment{}	seg1 := &DataSegment{}	seg2 := &DataSegment{}	seg3 := &DataSegment{}	assert.Bool(queue.IsEmpty()).IsTrue()	assert.Bool(queue.IsFull()).IsFalse()	queue.Push(seg0)	assert.Bool(queue.IsEmpty()).IsFalse()	queue.Push(seg1)	queue.Push(seg2)	assert.Bool(queue.IsFull()).IsTrue()	assert.Pointer(queue.Pop()).Equals(seg0)	queue.Push(seg3)	assert.Bool(queue.IsFull()).IsTrue()	assert.Pointer(queue.Pop()).Equals(seg1)	assert.Pointer(queue.Pop()).Equals(seg2)	assert.Pointer(queue.Pop()).Equals(seg3)	assert.Int(int(queue.Len())).Equals(0)}func TestSendingQueueClear(t *testing.T) {	assert := assert.On(t)	queue := NewSendingQueue(3)	seg0 := &DataSegment{}	seg1 := &DataSegment{}	seg2 := &DataSegment{}	seg3 := &DataSegment{}	queue.Push(seg0)	assert.Bool(queue.IsEmpty()).IsFalse()	queue.Clear()	assert.Bool(queue.IsEmpty()).IsTrue()	queue.Push(seg1)	queue.Push(seg2)	queue.Push(seg3)	queue.Clear()	assert.Bool(queue.IsEmpty()).IsTrue()}func TestSendingWindow(t *testing.T) {	assert := assert.On(t)	window := NewSendingWindow(5, 5, nil, nil)	window.Push(&DataSegment{		Number: 0,	})	window.Push(&DataSegment{		Number: 1,	})	window.Push(&DataSegment{		Number: 2,	})	assert.Int(window.Len()).Equals(3)	window.Remove(1)	assert.Int(window.Len()).Equals(3)	assert.Uint32(window.First().Number).Equals(0)	window.Remove(0)	assert.Int(window.Len()).Equals(1)	assert.Uint32(window.First().Number).Equals(2)	window.Remove(0)	assert.Int(window.Len()).Equals(0)	window.Push(&DataSegment{		Number: 4,	})	assert.Int(window.Len()).Equals(1)	assert.Uint32(window.First().Number).Equals(4)	window.Push(&DataSegment{		Number: 5,	})	assert.Int(window.Len()).Equals(2)	window.Remove(1)	assert.Int(window.Len()).Equals(2)	window.Remove(0)	assert.Int(window.Len()).Equals(0)}
 |