Skip to content

Commit

Permalink
introduce MockTransformer to be a placeholder during deprecation
Browse files Browse the repository at this point in the history
  • Loading branch information
TonyBagnall committed May 18, 2024
1 parent 6d4e126 commit b42f4e3
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 3 deletions.
2 changes: 2 additions & 0 deletions aeon/testing/mock_estimators/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
"MockMultivariateSeriesTransformer",
"MockSeriesTransformerNoFit",
"MockUnivariateSeriesTransformer",
"MockTransformer",
]

from aeon.testing.mock_estimators._mock_classifiers import (
Expand All @@ -41,3 +42,4 @@
MockSeriesTransformerNoFit,
MockUnivariateSeriesTransformer,
)
from aeon.testing.mock_estimators._mock_transformers import MockTransformer
53 changes: 53 additions & 0 deletions aeon/testing/mock_estimators/_mock_transformers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
from aeon.transformations.base import BaseTransformer


class MockTransformer(BaseTransformer):
"""Mock transformer to alter data.
Parameters
----------
power : int or float, default=0.5
The power to raise the input timeseries to.
Attributes
----------
power : int or float
User supplied power.
offset : int or float, or iterable.
User supplied offset value.
Scalar or 1D iterable with as many values as X columns in transform.
"""

_tags = {
"input_data_type": "Series",
# what is the abstract type of X: Series, or Panel
"output_data_type": "Series",
"X_inner_type": ["pd.DataFrame", "pd.Series"],
"fit_is_empty": True,
"transform-returns-same-time-index": True,
"capability:multivariate": True,
"capability:inverse_transform": True,
}

def __init__(self, power=0.5):
self.power = power

if not isinstance(self.power, (int, float)):
raise ValueError(
f"Expected `power` to be int or float, but found {type(self.power)}."
)
super().__init__()

def _transform(self, X, y=None):
"""Transform X and return a transformed version."""
return X.pow(self.power)

def _inverse_transform(self, X, y=None):
"""Reverse transformation on `X`."""
return X.pow(1.0 / self.power)

@classmethod
def get_test_params(cls, parameter_set="default"):
"""Return testing parameter settings for the estimator."""
return {"power": 2.5, "offset": 1}
6 changes: 3 additions & 3 deletions aeon/transformations/compose.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,9 +102,9 @@ class TransformerPipeline(_HeterogenousMetaEstimator, BaseTransformer):
Examples
--------
>>> from aeon.transformations.exponent import ExponentTransformer
>>> t1 = ExponentTransformer(power=2)
>>> t2 = ExponentTransformer(power=0.5)
>>> from aeon.testing.mock_estimators import MockTransformer
>>> t1 = MockTransformer(power=2)
>>> t2 = MockTransformer(power=0.5)
Example 1, option A: construct without strings (unique names are generated for
the two components t1 and t2)
Expand Down

0 comments on commit b42f4e3

Please sign in to comment.