@@ -204,51 +204,73 @@ def dt(i: int) -> datetime:  # pylint: disable=invalid-name
204204    return  datetime .fromtimestamp (i , tz = timezone .utc )
205205
206206
207- def  test_gaps () ->  None :
207+ def  test_gaps () ->  None :   # pylint: disable=too-many-statements 
208208    """Test gap treatment in ordered ring buffer.""" 
209209    buffer  =  OrderedRingBuffer ([0.0 ] *  5 , ONE_SECOND )
210+     assert  buffer .oldest_timestamp  is  None 
211+     assert  buffer .newest_timestamp  is  None 
210212    assert  len (buffer ) ==  0 
211213    assert  len (buffer .gaps ) ==  0 
212214
213215    buffer .update (Sample (dt (0 ), Quantity (0 )))
216+     assert  buffer .oldest_timestamp  ==  dt (0 )
217+     assert  buffer .newest_timestamp  ==  dt (0 )
214218    assert  len (buffer ) ==  1 
215219    assert  len (buffer .gaps ) ==  1 
216220
217221    buffer .update (Sample (dt (6 ), Quantity (0 )))
222+     assert  buffer .oldest_timestamp  ==  dt (6 )
223+     assert  buffer .newest_timestamp  ==  dt (6 )
218224    assert  len (buffer ) ==  1 
219225    assert  len (buffer .gaps ) ==  1 
220226
221227    buffer .update (Sample (dt (2 ), Quantity (2 )))
222228    buffer .update (Sample (dt (3 ), Quantity (3 )))
223229    buffer .update (Sample (dt (4 ), Quantity (4 )))
230+     assert  buffer .oldest_timestamp  ==  dt (2 )
231+     assert  buffer .newest_timestamp  ==  dt (6 )
224232    assert  len (buffer ) ==  4 
225233    assert  len (buffer .gaps ) ==  1 
226234
227235    buffer .update (Sample (dt (3 ), None ))
236+     assert  buffer .oldest_timestamp  ==  dt (2 )
237+     assert  buffer .newest_timestamp  ==  dt (6 )
228238    assert  len (buffer ) ==  3 
229239    assert  len (buffer .gaps ) ==  2 
230240
231241    buffer .update (Sample (dt (3 ), Quantity (np .nan )))
242+     assert  buffer .oldest_timestamp  ==  dt (2 )
243+     assert  buffer .newest_timestamp  ==  dt (6 )
232244    assert  len (buffer ) ==  3 
233245    assert  len (buffer .gaps ) ==  2 
234246
235247    buffer .update (Sample (dt (2 ), Quantity (np .nan )))
248+     assert  buffer .oldest_timestamp  ==  dt (4 )
249+     assert  buffer .newest_timestamp  ==  dt (6 )
236250    assert  len (buffer ) ==  2 
237251    assert  len (buffer .gaps ) ==  2 
238252
239253    buffer .update (Sample (dt (3 ), Quantity (3 )))
254+     assert  buffer .oldest_timestamp  ==  dt (3 )
255+     assert  buffer .newest_timestamp  ==  dt (6 )
240256    assert  len (buffer ) ==  3 
241257    assert  len (buffer .gaps ) ==  2 
242258
243259    buffer .update (Sample (dt (2 ), Quantity (2 )))
260+     assert  buffer .oldest_timestamp  ==  dt (2 )
261+     assert  buffer .newest_timestamp  ==  dt (6 )
244262    assert  len (buffer ) ==  4 
245263    assert  len (buffer .gaps ) ==  1 
246264
247265    buffer .update (Sample (dt (5 ), Quantity (5 )))
266+     assert  buffer .oldest_timestamp  ==  dt (2 )
267+     assert  buffer .newest_timestamp  ==  dt (6 )
248268    assert  len (buffer ) ==  5 
249269    assert  len (buffer .gaps ) ==  0 
250270
251271    buffer .update (Sample (dt (99 ), None ))
272+     assert  buffer .oldest_timestamp  ==  dt (95 )  # bug: should be None 
273+     assert  buffer .newest_timestamp  ==  dt (99 )  # bug: should be None 
252274    assert  len (buffer ) ==  4   # bug: should be 0 (whole range gap) 
253275    assert  len (buffer .gaps ) ==  1 
254276
0 commit comments