def test_can_create_a_series_of_any_dtype(data): dtype = np.dtype(data.draw(npst.scalar_dtypes())) assume(supported_by_pandas(dtype)) # Use raw data to work around pandas bug in repr. See # https://github.com/pandas-dev/pandas/issues/27484 series = data.conjecture_data.draw(pdst.series(dtype=dtype)) assert series.dtype == pandas.Series([], dtype=dtype).dtype
def test_generate_arbitrary_indices(data): min_size = data.draw(st.integers(0, 10), 'min_size') max_size = data.draw(st.none() | st.integers(min_size, min_size + 10), 'max_size') unique = data.draw(st.booleans(), 'unique') dtype = data.draw(npst.scalar_dtypes(), 'dtype') assume(supported_by_pandas(dtype)) # Pandas bug: https://github.com/pandas-dev/pandas/pull/14916 until 0.20; # then int64 indexes are inferred from uint64 values. assume(dtype.kind != 'u') pass_elements = data.draw(st.booleans(), 'pass_elements') converted_dtype = pandas.Index([], dtype=dtype).dtype try: inferred_dtype = pandas.Index([data.draw(npst.from_dtype(dtype)) ]).dtype if pass_elements: elements = npst.from_dtype(dtype) dtype = None else: elements = None index = data.draw( pdst.indexes( elements=elements, dtype=dtype, min_size=min_size, max_size=max_size, unique=unique, )) except Exception as e: if type(e).__name__ == 'OutOfBoundsDatetime': # See https://github.com/HypothesisWorks/hypothesis-python/pull/826 reject() else: raise if dtype is None: if pandas.__version__ >= '0.19': assert index.dtype == inferred_dtype else: assert index.dtype == converted_dtype if unique: assert len(set(index.values)) == len(index)
def test_generate_arbitrary_indices(data): min_size = data.draw(st.integers(0, 10), "min_size") max_size = data.draw(st.none() | st.integers(min_size, min_size + 10), "max_size") unique = data.draw(st.booleans(), "unique") dtype = data.draw(npst.scalar_dtypes(), "dtype") assume(supported_by_pandas(dtype)) # Pandas bug: https://github.com/pandas-dev/pandas/pull/14916 until 0.20; # then int64 indexes are inferred from uint64 values. assume(dtype.kind != "u") pass_elements = data.draw(st.booleans(), "pass_elements") converted_dtype = pandas.Index([], dtype=dtype).dtype try: inferred_dtype = pandas.Index([data.draw(npst.from_dtype(dtype))]).dtype if pass_elements: elements = npst.from_dtype(dtype) dtype = None else: elements = None index = data.draw( pdst.indexes( elements=elements, dtype=dtype, min_size=min_size, max_size=max_size, unique=unique, ) ) except Exception as e: if type(e).__name__ == "OutOfBoundsDatetime": # See https://github.com/HypothesisWorks/hypothesis-python/pull/826 reject() else: raise if dtype is None: if pandas.__version__ >= "0.19": assert index.dtype == inferred_dtype else: assert index.dtype == converted_dtype if unique: assert len(set(index.values)) == len(index)
def test_generate_arbitrary_indices(data): min_size = data.draw(st.integers(0, 10), 'min_size') max_size = data.draw( st.none() | st.integers(min_size, min_size + 10), 'max_size') unique = data.draw(st.booleans(), 'unique') dtype = data.draw(npst.scalar_dtypes(), 'dtype') assume(supported_by_pandas(dtype)) pass_elements = data.draw(st.booleans(), 'pass_elements') converted_dtype = pandas.Index([], dtype=dtype).dtype try: inferred_dtype = pandas.Index( [data.draw(npst.from_dtype(dtype))]).dtype if pass_elements: elements = npst.from_dtype(dtype) dtype = None else: elements = None index = data.draw(pdst.indexes( elements=elements, dtype=dtype, min_size=min_size, max_size=max_size, unique=unique, )) except Exception as e: if type(e).__name__ == 'OutOfBoundsDatetime': # See https://github.com/HypothesisWorks/hypothesis-python/pull/826 reject() else: raise if dtype is None: assert index.dtype == inferred_dtype else: assert index.dtype == converted_dtype if unique: assert len(set(index.values)) == len(index)
def test_can_create_a_series_of_any_dtype(data): dtype = np.dtype(data.draw(npst.scalar_dtypes())) assume(supported_by_pandas(dtype)) series = data.draw(pdst.series(dtype=dtype)) assert series.dtype == pandas.Series([], dtype=dtype).dtype
def test_can_create_a_series_of_any_dtype(data): dtype = np.dtype(data.draw(npst.scalar_dtypes())) assume(supported_by_pandas(dtype)) series = data.draw(pdst.series(dtype=dtype)) assert series.dtype == pandas.Series([], dtype=dtype).dtype