Я использую фреймы данных гипотез для реализации фрейма данных, в котором start_time и end_time - два столбца. Вот кусок:
import hypothesis.strategies as st
import logging
import datetime
from hypothesis import given
from hypothesis.extra.pandas import column, data_frames, range_indexes
current_time = datetime.datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)
datetime_st = st.integers(
min_value=(current_time + datetime.timedelta(hours=4)).timestamp(),
max_value=(current_time + datetime.timedelta(hours=20)).timestamp(),
)
df_columns = {
# other fields omitted
"start_time": {"elements": datetime_st, "unique": False},
"end_time": {"elements": datetime_st, "unique": False},
}
test_dfs = data_frames(
index=range_indexes(min_size=20, max_size=100),
columns=[column(key, **value) for key, value in df_columns.items()],
)
@given(df=test_dfs)
def test_hyothesis(df):
logging.info(df)
assert 1
Я не могу найти решение, чтобы утверждать, что каждое start_time должно быть больше соответствующего end_time по крайней мере на дельту. Я пробовал composite
, но не уверен, как реализовать это в каждой строке dataframes
.
Есть ли способ, которым я, как правило, применяю дельту при инициализации start_time и end_time?