You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.5 KiB
69 lines
1.5 KiB
1 year ago
|
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
|