| """ |
| Hypothesis data generator helpers. |
| """ |
| from datetime import datetime |
|
|
| from hypothesis import strategies as st |
| from hypothesis.extra.dateutil import timezones as dateutil_timezones |
| from hypothesis.extra.pytz import timezones as pytz_timezones |
|
|
| from pandas.compat import is_platform_windows |
|
|
| import pandas as pd |
|
|
| from pandas.tseries.offsets import ( |
| BMonthBegin, |
| BMonthEnd, |
| BQuarterBegin, |
| BQuarterEnd, |
| BYearBegin, |
| BYearEnd, |
| MonthBegin, |
| MonthEnd, |
| QuarterBegin, |
| QuarterEnd, |
| YearBegin, |
| YearEnd, |
| ) |
|
|
| OPTIONAL_INTS = st.lists(st.one_of(st.integers(), st.none()), max_size=10, min_size=3) |
|
|
| OPTIONAL_FLOATS = st.lists(st.one_of(st.floats(), st.none()), max_size=10, min_size=3) |
|
|
| OPTIONAL_TEXT = st.lists(st.one_of(st.none(), st.text()), max_size=10, min_size=3) |
|
|
| OPTIONAL_DICTS = st.lists( |
| st.one_of(st.none(), st.dictionaries(st.text(), st.integers())), |
| max_size=10, |
| min_size=3, |
| ) |
|
|
| OPTIONAL_LISTS = st.lists( |
| st.one_of(st.none(), st.lists(st.text(), max_size=10, min_size=3)), |
| max_size=10, |
| min_size=3, |
| ) |
|
|
| OPTIONAL_ONE_OF_ALL = st.one_of( |
| OPTIONAL_DICTS, OPTIONAL_FLOATS, OPTIONAL_INTS, OPTIONAL_LISTS, OPTIONAL_TEXT |
| ) |
|
|
| if is_platform_windows(): |
| DATETIME_NO_TZ = st.datetimes(min_value=datetime(1900, 1, 1)) |
| else: |
| DATETIME_NO_TZ = st.datetimes() |
|
|
| DATETIME_JAN_1_1900_OPTIONAL_TZ = st.datetimes( |
| min_value=pd.Timestamp( |
| 1900, 1, 1 |
| ).to_pydatetime(), |
| max_value=pd.Timestamp( |
| 1900, 1, 1 |
| ).to_pydatetime(), |
| timezones=st.one_of(st.none(), dateutil_timezones(), pytz_timezones()), |
| ) |
|
|
| DATETIME_IN_PD_TIMESTAMP_RANGE_NO_TZ = st.datetimes( |
| min_value=pd.Timestamp.min.to_pydatetime(warn=False), |
| max_value=pd.Timestamp.max.to_pydatetime(warn=False), |
| ) |
|
|
| INT_NEG_999_TO_POS_999 = st.integers(-999, 999) |
|
|
| |
| |
| YQM_OFFSET = st.one_of( |
| *map( |
| st.from_type, |
| [ |
| MonthBegin, |
| MonthEnd, |
| BMonthBegin, |
| BMonthEnd, |
| QuarterBegin, |
| QuarterEnd, |
| BQuarterBegin, |
| BQuarterEnd, |
| YearBegin, |
| YearEnd, |
| BYearBegin, |
| BYearEnd, |
| ], |
| ) |
| ) |
|
|