@@ -192,6 +192,35 @@ 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 .gaps ) ==  0 
211+     for  i , d  in  enumerate (range (5 )):  # pylint: disable=invalid-name 
212+         buffer .update (Sample (dt (i ), Quantity (d )))
213+     assert  len (buffer .gaps ) ==  0 
214+     buffer .update (Sample (dt (6 ), Quantity (0 )))
215+     assert  len (buffer .gaps ) ==  1 
216+     buffer .update (Sample (dt (3 ), None ))
217+     assert  len (buffer .gaps ) ==  2 
218+     buffer .update (Sample (dt (3 ), Quantity (np .nan )))
219+     assert  len (buffer .gaps ) ==  1   # should be 2 
220+     buffer .update (Sample (dt (3 ), Quantity (3 )))
221+     assert  len (buffer .gaps ) ==  1 
222+ 
223+ 
195224@pytest .mark .parametrize ( 
196225    "buffer" , 
197226    [ 
0 commit comments