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
| import numpy as np
| import pytest
|
| import pandas as pd
| from pandas.core.arrays.floating import (
| Float32Dtype,
| Float64Dtype,
| )
|
|
| @pytest.fixture(params=[Float32Dtype, Float64Dtype])
| def dtype(request):
| """Parametrized fixture returning a float 'dtype'"""
| return request.param()
|
|
| @pytest.fixture
| def data(dtype):
| """Fixture returning 'data' array according to parametrized float 'dtype'"""
| return pd.array(
| list(np.arange(0.1, 0.9, 0.1))
| + [pd.NA]
| + list(np.arange(1, 9.8, 0.1))
| + [pd.NA]
| + [9.9, 10.0],
| dtype=dtype,
| )
|
|
| @pytest.fixture
| def data_missing(dtype):
| """
| Fixture returning array with missing data according to parametrized float
| 'dtype'.
| """
| return pd.array([np.nan, 0.1], dtype=dtype)
|
|
| @pytest.fixture(params=["data", "data_missing"])
| def all_data(request, data, data_missing):
| """Parametrized fixture returning 'data' or 'data_missing' float 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
|
|