+ expect(circularBuffer.size).toBe(4)
+ })
+
+ it('Verify that circular buffer get() works as intended', () => {
+ const circularBuffer = new CircularBuffer(4)
+ circularBuffer.put(1)
+ circularBuffer.put(2)
+ circularBuffer.put(3)
+ circularBuffer.put(4)
+ expect(circularBuffer.get()).toBe(1)
+ expect(circularBuffer.readIdx).toBe(1)
+ expect(circularBuffer.size).toBe(3)
+ expect(circularBuffer.get()).toBe(2)
+ expect(circularBuffer.readIdx).toBe(2)
+ expect(circularBuffer.size).toBe(2)
+ circularBuffer.put(5)
+ circularBuffer.put(6)
+ expect(circularBuffer.get()).toBe(3)
+ expect(circularBuffer.readIdx).toBe(3)
+ expect(circularBuffer.size).toBe(3)
+ expect(circularBuffer.get()).toBe(4)
+ expect(circularBuffer.readIdx).toBe(0)
+ expect(circularBuffer.size).toBe(2)
+ expect(circularBuffer.get()).toBe(5)
+ expect(circularBuffer.readIdx).toBe(1)
+ expect(circularBuffer.size).toBe(1)
+ expect(circularBuffer.get()).toBe(6)
+ expect(circularBuffer.readIdx).toBe(2)
+ expect(circularBuffer.size).toBe(0)
+ expect(circularBuffer.get()).toBe(undefined)
+ expect(circularBuffer.readIdx).toBe(2)
+ expect(circularBuffer.size).toBe(0)
+ })
+
+ it('Verify that circular buffer empty() works as intended', () => {
+ const circularBuffer = new CircularBuffer(4)
+ expect(circularBuffer.empty()).toBe(true)
+ circularBuffer.put(1)
+ expect(circularBuffer.empty()).toBe(false)
+ circularBuffer.put(2)
+ expect(circularBuffer.empty()).toBe(false)
+ circularBuffer.put(3)
+ expect(circularBuffer.empty()).toBe(false)
+ circularBuffer.put(4)
+ expect(circularBuffer.empty()).toBe(false)
+ circularBuffer.get()
+ expect(circularBuffer.empty()).toBe(false)
+ circularBuffer.get()
+ expect(circularBuffer.empty()).toBe(false)
+ circularBuffer.get()
+ expect(circularBuffer.empty()).toBe(false)
+ circularBuffer.get()
+ expect(circularBuffer.empty()).toBe(true)
+ })
+
+ it('Verify that circular buffer full() works as intended', () => {
+ const circularBuffer = new CircularBuffer(4)
+ expect(circularBuffer.full()).toBe(false)
+ circularBuffer.put(1)
+ expect(circularBuffer.full()).toBe(false)
+ circularBuffer.put(2)
+ expect(circularBuffer.full()).toBe(false)
+ circularBuffer.put(3)
+ expect(circularBuffer.full()).toBe(false)
+ circularBuffer.put(4)
+ expect(circularBuffer.full()).toBe(true)
+ circularBuffer.get()
+ expect(circularBuffer.full()).toBe(false)
+ circularBuffer.put(5)
+ expect(circularBuffer.full()).toBe(true)
+ circularBuffer.get()
+ expect(circularBuffer.full()).toBe(false)
+ circularBuffer.get()
+ expect(circularBuffer.full()).toBe(false)
+ circularBuffer.get()
+ expect(circularBuffer.full()).toBe(false)
+ circularBuffer.get()
+ expect(circularBuffer.full()).toBe(false)
+ expect(circularBuffer.empty()).toBe(true)