Updated script that can be controled by Nodejs web app
This commit is contained in:
@ -0,0 +1,72 @@
|
||||
import itertools
|
||||
|
||||
import numpy as np
|
||||
import pytest
|
||||
|
||||
from pandas import (
|
||||
DataFrame,
|
||||
Series,
|
||||
notna,
|
||||
)
|
||||
|
||||
|
||||
def create_series():
|
||||
return [
|
||||
Series(dtype=np.float64, name="a"),
|
||||
Series([np.nan] * 5),
|
||||
Series([1.0] * 5),
|
||||
Series(range(5, 0, -1)),
|
||||
Series(range(5)),
|
||||
Series([np.nan, 1.0, np.nan, 1.0, 1.0]),
|
||||
Series([np.nan, 1.0, np.nan, 2.0, 3.0]),
|
||||
Series([np.nan, 1.0, np.nan, 3.0, 2.0]),
|
||||
]
|
||||
|
||||
|
||||
def create_dataframes():
|
||||
return [
|
||||
DataFrame(columns=["a", "a"]),
|
||||
DataFrame(np.arange(15).reshape((5, 3)), columns=["a", "a", 99]),
|
||||
] + [DataFrame(s) for s in create_series()]
|
||||
|
||||
|
||||
def is_constant(x):
|
||||
values = x.values.ravel("K")
|
||||
return len(set(values[notna(values)])) == 1
|
||||
|
||||
|
||||
@pytest.fixture(
|
||||
params=(
|
||||
obj
|
||||
for obj in itertools.chain(create_series(), create_dataframes())
|
||||
if is_constant(obj)
|
||||
),
|
||||
)
|
||||
def consistent_data(request):
|
||||
return request.param
|
||||
|
||||
|
||||
@pytest.fixture(params=create_series())
|
||||
def series_data(request):
|
||||
return request.param
|
||||
|
||||
|
||||
@pytest.fixture(params=itertools.chain(create_series(), create_dataframes()))
|
||||
def all_data(request):
|
||||
"""
|
||||
Test:
|
||||
- Empty Series / DataFrame
|
||||
- All NaN
|
||||
- All consistent value
|
||||
- Monotonically decreasing
|
||||
- Monotonically increasing
|
||||
- Monotonically consistent with NaNs
|
||||
- Monotonically increasing with NaNs
|
||||
- Monotonically decreasing with NaNs
|
||||
"""
|
||||
return request.param
|
||||
|
||||
|
||||
@pytest.fixture(params=[0, 2])
|
||||
def min_periods(request):
|
||||
return request.param
|
Reference in New Issue
Block a user