github.com/MerlinKodo/quic-go@v0.39.2/internal/utils/ringbuffer/ringbuffer_test.go (about) 1 package ringbuffer 2 3 import ( 4 . "github.com/onsi/ginkgo/v2" 5 . "github.com/onsi/gomega" 6 ) 7 8 var _ = Describe("RingBuffer", func() { 9 It("push and pop", func() { 10 r := RingBuffer[int]{} 11 Expect(len(r.ring)).To(Equal(0)) 12 Expect(func() { r.PopFront() }).To(Panic()) 13 r.PushBack(1) 14 r.PushBack(2) 15 r.PushBack(3) 16 Expect(r.PopFront()).To(Equal(1)) 17 Expect(r.PopFront()).To(Equal(2)) 18 r.PushBack(4) 19 r.PushBack(5) 20 Expect(r.Len()).To(Equal(3)) 21 r.PushBack(6) 22 Expect(r.Len()).To(Equal(4)) 23 Expect(r.PopFront()).To(Equal(3)) 24 Expect(r.PopFront()).To(Equal(4)) 25 Expect(r.PopFront()).To(Equal(5)) 26 Expect(r.PopFront()).To(Equal(6)) 27 }) 28 It("clear", func() { 29 r := RingBuffer[int]{} 30 r.Init(2) 31 r.PushBack(1) 32 r.PushBack(2) 33 Expect(r.full).To(BeTrue()) 34 r.Clear() 35 Expect(r.full).To(BeFalse()) 36 Expect(r.Len()).To(Equal(0)) 37 }) 38 })