Skip to content

Commit 0a41680

Browse files
committed
Add more unit tests for gaps
Signed-off-by: cwasicki <[email protected]>
1 parent 8da8583 commit 0a41680

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

tests/timeseries/test_ringbuffer.py

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,67 @@ def test_timestamp_ringbuffer_missing_parameter(
192192
assert len(buffer.gaps) == 1
193193

194194

195+
def dt(i: int) -> datetime: # pylint: disable=invalid-name
196+
"""Create datetime objects from indices.
197+
198+
Args:
199+
i: Index to create datetime from.
200+
201+
Returns:
202+
Datetime object.
203+
"""
204+
return datetime.fromtimestamp(i, tz=timezone.utc)
205+
206+
207+
def test_gaps() -> None:
208+
"""Test gap treatment in ordered ring buffer."""
209+
buffer = OrderedRingBuffer([0.0] * 5, ONE_SECOND)
210+
assert len(buffer) == 0
211+
assert len(buffer.gaps) == 0
212+
213+
buffer.update(Sample(dt(0), Quantity(0)))
214+
assert len(buffer) == 1
215+
assert len(buffer.gaps) == 1
216+
217+
buffer.update(Sample(dt(6), Quantity(0)))
218+
assert len(buffer) == 1
219+
assert len(buffer.gaps) == 1
220+
221+
buffer.update(Sample(dt(2), Quantity(2)))
222+
buffer.update(Sample(dt(3), Quantity(3)))
223+
buffer.update(Sample(dt(4), Quantity(4)))
224+
assert len(buffer) == 4
225+
assert len(buffer.gaps) == 1
226+
227+
buffer.update(Sample(dt(3), None))
228+
assert len(buffer) == 3
229+
assert len(buffer.gaps) == 2
230+
231+
buffer.update(Sample(dt(3), Quantity(np.nan)))
232+
assert len(buffer) == 4 # should be 3
233+
assert len(buffer.gaps) == 1 # should be 2
234+
235+
buffer.update(Sample(dt(2), Quantity(np.nan)))
236+
assert len(buffer) == 4 # should be 2
237+
assert len(buffer.gaps) == 1 # should be 2
238+
239+
buffer.update(Sample(dt(3), Quantity(3)))
240+
assert len(buffer) == 4 # should be 3
241+
assert len(buffer.gaps) == 1 # should be 2
242+
243+
buffer.update(Sample(dt(2), Quantity(2)))
244+
assert len(buffer) == 4
245+
assert len(buffer.gaps) == 1
246+
247+
buffer.update(Sample(dt(5), Quantity(5)))
248+
assert len(buffer) == 5
249+
assert len(buffer.gaps) == 0
250+
251+
buffer.update(Sample(dt(99), None))
252+
assert len(buffer) == 4 # bug: should be 0 (whole range gap)
253+
assert len(buffer.gaps) == 1
254+
255+
195256
@pytest.mark.parametrize(
196257
"buffer",
197258
[

0 commit comments

Comments
 (0)