【发布时间】:2021-01-13 17:56:41
【问题描述】:
我正在处理很多 pandas 数据帧,我想使用 pytest 对其进行测试,并且我正在使用假设来生成测试数据。
我遇到的问题是它在每一列中生成相同的数据值。
我其实不知道如何生成真实数据来测试..
这是我正在尝试的:
from hypothesis.extra.pandas import data_frames , column, range_indexes
from hypothesis import given, settings, strategies as st
import pandas as pd
from datetime import datetime
data = data_frames(columns=[column(name='key', elements=st.floats(allow_nan=True)),
column(name='fbms_start_date', elements=st.datetimes(min_value=datetime(2020, 7, 1),
max_value=datetime.now())),
column(name='breakdown_type', elements=st.just("Total")),
column(name='breakdown_one', elements=st.just(float('nan'))),
column(name='adset_id', elements=st.floats(allow_nan=True)),
column(name='adset_name', elements=st.text()),
column(name='campaign_id', elements=st.floats(allow_nan=True, )),
column(name='campaign_name', elements=st.text()),
column(name='reach', elements=st.text()),
column(name='impressions', elements=st.just(float('nan'))),
column(name='spend', elements=st.floats(allow_nan=False)),
column(name='page_likes', elements=st.floats(allow_nan=False)),
column(name='post_engagement', elements=st.sampled_from(['LINK_CLICKS',
'POST_ENGAGEMENT',
'PAGE_LIKES'])),
column(name='objective', elements=st.floats(allow_nan=False)),
column(name='ads_run', elements=st.sampled_from([True, False]))],
index=range_indexes(min_size=100)
)
@given(df=data)
@settings(max_examples=5)
def test_hyothesis(df):
print(df)
assert 1
这总是生成以下数据集
key fbms_start_date breakdown_type breakdown_one adset_id adset_name campaign_id campaign_name reach impressions spend page_likes post_engagement objective ads_run
0 0.0 2020-07-01 Total 0.0 0.0 0.0 0.0 LINK_CLICKS 0.0 True
1 0.0 2020-07-01 Total 0.0 0.0 0.0 0.0 LINK_CLICKS 0.0 True
2 0.0 2020-07-01 Total 0.0 0.0 0.0 0.0 LINK_CLICKS 0.0 True
3 0.0 2020-07-01 Total 0.0 0.0 0.0 0.0 LINK_CLICKS 0.0 True
4 0.0 2020-07-01 Total 0.0 0.0 0.0 0.0 LINK_CLICKS 0.0 True
5 0.0 2020-07-01 Total 0.0 0.0 0.0 0.0 LINK_CLICKS 0.0 True
6 0.0 2020-07-01 Total 0.0 0.0 0.0 0.0 LINK_CLICKS 0.0 True
7 0.0 2020-07-01 Total 0.0 0.0 0.0 0.0 LINK_CLICKS 0.0 True
8 0.0 2020-07-01 Total 0.0 0.0 0.0 0.0 LINK_CLICKS 0.0 True
9 0.0 2020-07-01 Total 0.0 0.0 0.0 0.0 LINK_CLICKS 0.0 True
正如您所看到的,每个列都有一个值而不是唯一值,我不知道如何生成可以用来测试的真实值..
任何帮助都会有所帮助...
【问题讨论】:
-
感谢您的评论,我想过,但问题是这些日期不应该是唯一的
标签: python pandas python-hypothesis