49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 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
 |