oxits 0.1.0

Time series classification and transformation library for Rust
Documentation
"""Generate golden test data for preprocessing module."""

import numpy as np
from pyts.preprocessing import StandardScaler, MinMaxScaler, MaxAbsScaler, RobustScaler
from pyts.preprocessing import KBinsDiscretizer, InterpolationImputer


def generate():
    fixtures = []
    rng = np.random.RandomState(42)

    # StandardScaler
    X = rng.randn(4, 8)
    scaler = StandardScaler()
    result = scaler.transform(X)
    fixtures.append({
        "test_name": "standard_scaler_basic",
        "params": {"with_mean": True, "with_std": True},
        "input": {"X": X.tolist()},
        "expected": {"output": result.tolist()},
        "tolerance": 1e-10,
    })

    # StandardScaler no mean
    scaler = StandardScaler(with_mean=False)
    result = scaler.transform(X)
    fixtures.append({
        "test_name": "standard_scaler_no_mean",
        "params": {"with_mean": False, "with_std": True},
        "input": {"X": X.tolist()},
        "expected": {"output": result.tolist()},
        "tolerance": 1e-10,
    })

    # MinMaxScaler
    scaler = MinMaxScaler()
    result = scaler.transform(X)
    fixtures.append({
        "test_name": "minmax_scaler_basic",
        "params": {"sample_range": [0, 1]},
        "input": {"X": X.tolist()},
        "expected": {"output": result.tolist()},
        "tolerance": 1e-10,
    })

    # MaxAbsScaler
    scaler = MaxAbsScaler()
    result = scaler.transform(X)
    fixtures.append({
        "test_name": "maxabs_scaler_basic",
        "params": {},
        "input": {"X": X.tolist()},
        "expected": {"output": result.tolist()},
        "tolerance": 1e-10,
    })

    # RobustScaler
    scaler = RobustScaler()
    result = scaler.transform(X)
    fixtures.append({
        "test_name": "robust_scaler_basic",
        "params": {"quantile_range": [25, 75]},
        "input": {"X": X.tolist()},
        "expected": {"output": result.tolist()},
        "tolerance": 1e-10,
    })

    # KBinsDiscretizer - uniform
    disc = KBinsDiscretizer(n_bins=4, strategy="uniform")
    result = disc.transform(X)
    fixtures.append({
        "test_name": "discretizer_uniform",
        "params": {"n_bins": 4, "strategy": "uniform"},
        "input": {"X": X.tolist()},
        "expected": {"output": result.tolist()},
        "tolerance": 1e-10,
    })

    # KBinsDiscretizer - quantile
    disc = KBinsDiscretizer(n_bins=3, strategy="quantile")
    result = disc.transform(X)
    fixtures.append({
        "test_name": "discretizer_quantile",
        "params": {"n_bins": 3, "strategy": "quantile"},
        "input": {"X": X.tolist()},
        "expected": {"output": result.tolist()},
        "tolerance": 1e-10,
    })

    # KBinsDiscretizer - normal
    disc = KBinsDiscretizer(n_bins=4, strategy="normal")
    result = disc.transform(X)
    fixtures.append({
        "test_name": "discretizer_normal",
        "params": {"n_bins": 4, "strategy": "normal"},
        "input": {"X": X.tolist()},
        "expected": {"output": result.tolist()},
        "tolerance": 1e-10,
    })

    return fixtures