示例#1
0
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)
示例#2
0
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)