class TestTimeIndexSeriesToPeriodIndexSeries: @settings(suppress_health_check=(HealthCheck.too_slow, )) @given(series_with_period_index()) def test_only_period_index_as_input(self, period_index_series: pd.Series): computed_series = transform_time_index_series_into_period_index_series( period_index_series) expected_series = period_index_series assert_series_equal(computed_series, expected_series) @given(series_with_period_index(), available_freqs()) def test_period_index_and_freq_as_input(self, period_index_series: pd.Series, freq: pd.Timedelta): computed_series = transform_time_index_series_into_period_index_series( period_index_series, freq) expected_series = period_index_series assert_series_equal(computed_series, expected_series) @given(series_with_datetime_index()) def test_only_datetime_index_as_input(self, datetime_index_series: pd.Series): computed_series = transform_time_index_series_into_period_index_series( datetime_index_series) expected_series = datetime_index_series_to_period_index_series( datetime_index_series) assert_series_equal(computed_series, expected_series) @given(series_with_datetime_index(), available_freqs()) def test_datetime_index_and_freq_as_input(self, datetime_index_series: pd.Series, freq: pd.Timedelta): computed_series = transform_time_index_series_into_period_index_series( datetime_index_series, freq=freq) expected_series = datetime_index_series_to_period_index_series( datetime_index_series, freq) assert_series_equal(computed_series, expected_series) @given(series_with_timedelta_index()) def test_only_timedelta_index_as_input(self, timedelta_index_series: pd.Series): computed_series = transform_time_index_series_into_period_index_series( timedelta_index_series) expected_series = timedelta_index_series_to_period_index_series( timedelta_index_series) assert_series_equal(computed_series, expected_series) def test_basic_timedelta_index_as_input(self): timedelta_index_series = pd.Series( index=pd.timedelta_range(start=pd.Timedelta(days=1), freq="10D", periods=3), data=[1, 2, 3], ) expected_series = pd.Series( index=pd.PeriodIndex(["1970-01-02", "1970-01-12", "1970-01-22"], freq="D"), data=[1, 2, 3], ) computed_series = transform_time_index_series_into_period_index_series( timedelta_index_series) assert_series_equal(computed_series, expected_series) @given(series_with_timedelta_index(), available_freqs()) def test_timedelta_index_and_freq_as_input( self, timedelta_index_series: pd.Series, freq: pd.Timedelta): computed_series = transform_time_index_series_into_period_index_series( timedelta_index_series, freq=freq) expected_series = timedelta_index_series_to_period_index_series( timedelta_index_series, freq=freq) assert_series_equal(computed_series, expected_series) @given(pd_series(dtype=float)) def test_non_time_index_input(self, series: pd.Series): with pytest.raises(ValueError): transform_time_index_series_into_period_index_series(series)
class TestPandasSeriesToTimeIndexSeries: @given(pd_series(dtype=float), datetimes(DEFAULT_START, DEFAULT_END), available_freqs()) def test_series_start_freq_as_input( self, series: pd.Series, start: pd.Timestamp, freq: str, ): compare_output_of_input_series_to_expected_one( series, start=start, end=None, freq=freq, ) @given(pd_series(dtype=float), datetimes(DEFAULT_START, DEFAULT_END), available_freqs()) def test_series_end_freq_as_input( self, series: pd.Series, end: pd.Timestamp, freq: str, ): compare_output_of_input_series_to_expected_one(series, start=None, end=end, freq=freq) @given(pd_series(dtype=float), pair_of_ordered_dates()) def test_error_with_start_end_as_input( self, series: pd.Series, start_end: Tuple[pd.Timestamp, pd.Timestamp], ): with pytest.raises(ValueError): compare_output_of_input_series_to_expected_one( series, *start_end, freq=None, ) @given(pd_series(dtype=float), pair_of_ordered_dates(), available_freqs()) def test_too_many_parameters( self, series: pd.Series, start_end: Tuple[pd.Timestamp, pd.Timestamp], freq: str, ): with pytest.raises(ValueError): compare_output_of_input_series_to_expected_one( series, *start_end, freq=freq, ) @given(pd_series(dtype=float), datetimes(DEFAULT_START, DEFAULT_END)) def test_series_and_only_start( self, series: pd.Series, start: pd.Timestamp, ): compare_output_of_input_series_to_expected_one(series, start=start, end=None, freq=None) @given(pd_series(dtype=float), datetimes(DEFAULT_START, DEFAULT_END)) def test_series_and_only_end( self, series: pd.Series, end: pd.Timestamp, ): compare_output_of_input_series_to_expected_one(series, start=None, end=end, freq=None) @given(pd_series(dtype=float), available_freqs()) def test_series_and_only_freq( self, series: pd.Series, freq: pd.Timedelta, ): compare_output_of_input_series_to_expected_one(series, start=None, end=None, freq=freq) @given(pd_series(dtype=float)) def test_only_series( self, series: pd.Series, ): compare_output_of_input_series_to_expected_one(series, start=None, end=None, freq=None) @given(series_with_timedelta_index()) def test_timedelta_index_as_input(self, timedelta_index_series: pd.Series): computed_series = transform_series_into_time_index_series( timedelta_index_series) expected_series = timedelta_index_series assert_series_equal(computed_series, expected_series) @given(series_with_datetime_index()) def test_datetime_index_as_input(self, datetime_index_series: pd.Series): computed_series = transform_series_into_time_index_series( datetime_index_series) expected_series = datetime_index_series assert_series_equal(computed_series, expected_series) @given(series_with_period_index()) def test_period_index_as_input(self, period_index_series: pd.Series): computed_series = transform_series_into_time_index_series( period_index_series) expected_series = period_index_series assert_series_equal(computed_series, expected_series)