oxits 0.1.0

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

import numpy as np
from pyts.multivariate.image import JointRecurrencePlot
from pyts.multivariate.transformation import MultivariateTransformer
from pyts.image import RecurrencePlot


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

    # Multivariate data: (n_samples, n_features, n_timestamps)
    X = rng.randn(3, 2, 10)

    # JointRecurrencePlot (default)
    jrp = JointRecurrencePlot()
    result = jrp.transform(X)
    fixtures.append({
        "test_name": "jrp_basic",
        "params": {},
        "input": {"X": X.tolist()},
        "expected": {"output_3d": result.tolist()},
        "tolerance": 1e-10,
    })

    # JointRecurrencePlot with threshold
    jrp = JointRecurrencePlot(threshold=1.0)
    result = jrp.transform(X)
    fixtures.append({
        "test_name": "jrp_threshold",
        "params": {"threshold": 1.0},
        "input": {"X": X.tolist()},
        "expected": {"output_3d": result.tolist()},
        "tolerance": 1e-10,
    })

    # MultivariateTransformer with RecurrencePlot
    mt = MultivariateTransformer(RecurrencePlot(), flatten=False)
    mt.fit(X)
    result = mt.transform(X)
    fixtures.append({
        "test_name": "multivariate_rp",
        "params": {"estimator": "RecurrencePlot"},
        "input": {"X": X.tolist()},
        "expected": {"output_4d": result.tolist()},
        "tolerance": 1e-10,
    })

    return fixtures