pdst.columns(['A'], dtype=bool),
      rows=st.tuples(st.booleans(), st.booleans())),
    e(pdst.data_frames,
      pdst.columns(1, elements=st.booleans()),
      rows=st.tuples(st.booleans())),
    e(pdst.data_frames, rows=st.integers(), index=pdst.range_indexes(0, 0)),
    e(pdst.data_frames, rows=st.integers(), index=pdst.range_indexes(1, 1)),
    e(pdst.data_frames, pdst.columns(1, dtype=int), rows=st.integers()),
    e(pdst.indexes),
    e(pdst.indexes, dtype='category'),
    e(pdst.indexes, dtype='not a dtype'),
    e(pdst.indexes, elements='not a strategy'),
    e(pdst.indexes, elements=st.text(), dtype=float),
    e(pdst.indexes, elements=st.none(), dtype=int),
    e(pdst.indexes, dtype=int, max_size=0, min_size=1),
    e(pdst.indexes, dtype=int, unique='true'),
    e(pdst.indexes, dtype=int, min_size='0'),
    e(pdst.indexes, dtype=int, max_size='1'),
    e(pdst.range_indexes, 1, 0),
    e(pdst.range_indexes, min_size='0'),
    e(pdst.range_indexes, max_size='1'),
    e(pdst.series),
    e(pdst.series, dtype='not a dtype'),
    e(pdst.series, elements='not a strategy'),
    e(pdst.series, elements=st.none(), dtype=int),
    e(pdst.series, dtype='category'),
    e(pdst.series, index='not a strategy'),
]

test_raise_invalid_argument = argument_validation_test(BAD_ARGS)
import hypothesis.strategies as st
from tests.common.arguments import argument_validation_test, e

BAD_ARGS = []


def adjust(ex, **kwargs):
    f, a, b = ex
    b = dict(b)
    b.update(kwargs)
    BAD_ARGS.append((f, a, b))


for ex in [
    e(st.lists, st.integers()),
    e(st.sets, st.integers()),
    e(st.frozensets, st.integers()),
    e(st.dictionaries, st.integers(), st.integers()),
    e(st.text),
    e(st.binary),
]:
    adjust(ex, min_size=-1)
    adjust(ex, max_size=-1)
    adjust(ex, min_size="no")
    adjust(ex, max_size="no")


BAD_ARGS.extend([e(st.lists, st.nothing(), unique=True, min_size=1)])

test_raise_invalid_argument = argument_validation_test(BAD_ARGS)