1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- import numpy as np
- import pytest
- import pandas as pd
- from pandas.core.arrays.integer import (
- Int8Dtype,
- Int16Dtype,
- Int32Dtype,
- Int64Dtype,
- UInt8Dtype,
- UInt16Dtype,
- UInt32Dtype,
- UInt64Dtype,
- )
- @pytest.fixture(
- params=[
- Int8Dtype,
- Int16Dtype,
- Int32Dtype,
- Int64Dtype,
- UInt8Dtype,
- UInt16Dtype,
- UInt32Dtype,
- UInt64Dtype,
- ]
- )
- def dtype(request):
- """Parametrized fixture returning integer 'dtype'"""
- return request.param()
- @pytest.fixture
- def data(dtype):
- """
- Fixture returning 'data' array with valid and missing values according to
- parametrized integer 'dtype'.
- Used to test dtype conversion with and without missing values.
- """
- return pd.array(
- list(range(8)) + [np.nan] + list(range(10, 98)) + [np.nan] + [99, 100],
- dtype=dtype,
- )
- @pytest.fixture
- def data_missing(dtype):
- """
- Fixture returning array with exactly one NaN and one valid integer,
- according to parametrized integer 'dtype'.
- Used to test dtype conversion with and without missing values.
- """
- return pd.array([np.nan, 1], dtype=dtype)
- @pytest.fixture(params=["data", "data_missing"])
- def all_data(request, data, data_missing):
- """Parametrized fixture returning 'data' or 'data_missing' integer arrays.
- Used to test dtype conversion with and without missing values.
- """
- if request.param == "data":
- return data
- elif request.param == "data_missing":
- return data_missing
|