I am trying to create a pandas DataFrame
with the hypothesis
library for code testing purporses with the following code:
from hypothesis.extra.pandas import columns, data_frames
from hypothesis.extra.numpy import datetime64_dtypes
@given(data_frames(index=datetime64_dtypes(max_period='Y', min_period='s'),
columns=columns("A B C".split(), dtype=int)))
The error I receive is the following:
E TypeError: 'numpy.dtype' object is not iterable
I suspect that this is because when I construct the DataFrame
for index=
I only pass a datetime
element and not a ps.Series
all with type datetime
for example. Even if this is the case (I am not sure), still I am not sure how to work with the hypothesis
library in order to achieve my goal.
Can anyone tell me what's wrong with the code and what the solution would be?
The reason for the above error was because, data_frames
requires an index containing a strategy elements inside such as indexes
for an index=
input. Instead, the above datetime64_dtypes
only provides a strategy element, but not in an index format.
To fix this we provide the index first and then the strategy element inside the index like so:
from hypothesis import given, strategies
@given(data_frames(index=indexes(strategies.datetimes()),
columns=columns("A B C".split(), dtype=int)))
Note that in order to get datetime
we use datetimes()
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With