From 5d5353dd1cf02e0268c887484d1cbdda06ffc48a Mon Sep 17 00:00:00 2001 From: Michele Nottoli <michele.nottoli@gmail.com> Date: Fri, 20 Oct 2023 16:42:00 +0200 Subject: [PATCH] Updated. --- grext/buffer.py | 2 +- tests/test_buffer.py | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/grext/buffer.py b/grext/buffer.py index 64c937b..bf9d8cf 100644 --- a/grext/buffer.py +++ b/grext/buffer.py @@ -32,4 +32,4 @@ class CircularBuffer: raise ValueError("`m` is larger than the stored matrices.") start_idx = (self.index - m) % self.n - return [self.buffer[i] for i in range(start_idx, start_idx + m)] + return [self.buffer[(start_idx + i) % self.n] for i in range(m)] diff --git a/tests/test_buffer.py b/tests/test_buffer.py index e2d31a9..659c5bd 100644 --- a/tests/test_buffer.py +++ b/tests/test_buffer.py @@ -10,7 +10,7 @@ def test_buffer(): shape = (5, 5) buffer_size = 10 - nframes = 100 + nframes = 20 buffer = CircularBuffer(buffer_size, shape) @@ -31,6 +31,11 @@ def test_buffer(): assert len(buffer.get(0)) == 0 + for m in [buffer_size//2, buffer_size//2-1, buffer_size//2-2]: + matrices = buffer.get(m) + for value, matrix in zip(list(range(buffer_size//2 - m, buffer_size//2)), matrices): + assert matrix[0,0] == value + # finish the loading for i in range(buffer_size // 2, nframes): matrix = np.full(shape, i) @@ -51,3 +56,15 @@ def test_buffer(): matrices = buffer.get(m) for value, matrix in zip(list(range(nframes - m, nframes)), matrices): assert matrix[0,0] == value + +def test_buffer_manual(): + shape = (5, 5) + buffer = CircularBuffer(6, shape) + + for i in range(6): + matrix = np.full(shape, i) + buffer.push(matrix) + + matrices = buffer.get(6) + for matrix, value in zip(matrices, range(6)): + assert matrix[0, 0] == value -- GitLab