import pytest from ding.utils.autolog import TimeRangedData, NaturalTime, TickTime @pytest.mark.unittest class TestAutologRangedData: def test_expire(self): data = TimeRangedData(NaturalTime(), expire=5) assert data.expire == 5 with pytest.raises(ValueError): TimeRangedData(NaturalTime(), expire=-1) with pytest.raises(TypeError): TimeRangedData(NaturalTime(), expire='5') def test_bool(self): data = TimeRangedData(TickTime(), expire=5) assert not data data.append(233) assert data data.time.step() data.extend([2, 3, 5, 7]) assert data data.time.step(4) assert data data.time.step(1) assert data data.time.step(1) assert data data.time.step(1) assert data data.time.step(10) assert data def test_current(self): data = TimeRangedData(TickTime(), expire=5) with pytest.raises(ValueError): _ = data.current() data.append(233) assert data.current() == 233 data.time.step() data.extend([2, 3, 5, 7]) assert data.current() == 7 data.time.step(4) assert data.current() == 7 data.time.step(1) assert data.current() == 7 data.time.step(1) assert data.current() == 7 data.time.step(1) assert data.current() == 7 data.time.step(10) assert data.current() == 7 def test_history(self): data = TimeRangedData(TickTime(), expire=5) assert data.history() == [] data.append(233) assert data.history() == [(0, 233)] data.time.step() data.extend([2, 3, 5, 7]) assert data.history() == [(0, 233), (1, 2), (1, 3), (1, 5), (1, 7)] data.time.step(4) assert data.history() == [(0, 233), (1, 2), (1, 3), (1, 5), (1, 7), (5, 7)] data.time.step(1) assert data.history() == [(1, 233), (1, 2), (1, 3), (1, 5), (1, 7), (6, 7)] data.time.step(1) assert data.history() == [(2, 7), (7, 7)] data.time.step(1) assert data.history() == [(3, 7), (8, 7)] data.time.step(10) assert data.history() == [(13, 7), (18, 7)]