import numpy as np | |
import pytest | |
import pandas as pd | |
from pandas.core.arrays.integer import ( | |
Int8Dtype, | |
Int16Dtype, | |
Int32Dtype, | |
Int64Dtype, | |
UInt8Dtype, | |
UInt16Dtype, | |
UInt32Dtype, | |
UInt64Dtype, | |
) | |
def dtype(request): | |
"""Parametrized fixture returning integer 'dtype'""" | |
return request.param() | |
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, | |
) | |
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) | |
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 | |