def __init__( self, input: ScheduleInputSpec, output: ScheduleOutputSpec, stride: Union[int, str, timedelta], window_size: Union[int, str, timedelta], start: Union[int, str, datetime] = "now", slack: Union[int, str, timedelta] = 0, ): self.input = input self.output = output self.stride = time_interval_to_ms(stride) self.window_size = time_interval_to_ms(window_size) self.start = self._get_start(start, input) self.slack = time_interval_to_ms(slack, allow_zero=True, allow_inf=True) self.validate()
def test_ms(self): assert 60000 == time_interval_to_ms(60000) assert 123456789 == time_interval_to_ms(123456789)
def test_invalid_type(self, t): with pytest.raises(TypeError, match="must be"): time_interval_to_ms(t)
def test_allow_zero_and_inf(self): time_interval_to_ms(0, allow_zero=True, allow_inf=True) time_interval_to_ms("0h", allow_zero=True, allow_inf=True) time_interval_to_ms(timedelta(hours=0), allow_zero=True, allow_inf=True) time_interval_to_ms(-1, allow_zero=True, allow_inf=True) time_interval_to_ms(timedelta(hours=0), allow_zero=True, allow_inf=True) with pytest.raises(ValueError, match="positive"): time_interval_to_ms(-2)
def test_allow_inf(self): time_interval_to_ms(-1, allow_inf=True) time_interval_to_ms(timedelta(milliseconds=-1), allow_inf=True) with pytest.raises(ValueError, match="positive"): time_interval_to_ms(0)
def test_allow_zero(self): time_interval_to_ms(0, allow_zero=True) time_interval_to_ms("0h", allow_zero=True) time_interval_to_ms(timedelta(), allow_zero=True) with pytest.raises(ValueError, match="positive"): time_interval_to_ms(-1)
def test_non_positive_intervals(self, time_interval): with pytest.raises(ValueError, match="positive"): time_interval_to_ms(time_interval)
def test_time_interval_string_invalid(self, time_interval_string): with pytest.raises(ValueError, match=time_interval_string): time_interval_to_ms(time_interval_string)
def test_time_interval_string(self, time_interval_string, expected_ms): assert time_interval_to_ms(time_interval_string) == expected_ms
def test_timedelta(self): assert 2 * 60 * 1000 == time_interval_to_ms(timedelta(minutes=2)) assert 3 * 60 * 60 * 1000 == time_interval_to_ms(timedelta(hours=3))