1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
| 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
|
|