Skip to content

Commit 53bec97

Browse files
committed
fix: make GreedyEncoder.get_test_params a classmethod
Align GreedyEncoder with skbase estimator testing expectations by making get_test_params callable on the class. Add a small regression test to ensure returned parameter sets instantiate and run fit_transform. Closes #568 Made-with: Cursor
1 parent d2b2777 commit 53bec97

3 files changed

Lines changed: 28 additions & 1 deletion

File tree

pyaptamer/trafos/encode/_greedy.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,8 @@ def _transform(self, X):
132132

133133
return result_df
134134

135-
def get_test_params(self):
135+
@classmethod
136+
def get_test_params(cls, parameter_set="default"):
136137
"""Get test parameters for GreedyEncoder.
137138
138139
Returns
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
"""Tests for encoding transformers."""
2+
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import inspect
2+
3+
import pandas as pd
4+
5+
from pyaptamer.trafos.encode import GreedyEncoder
6+
7+
8+
def test_get_test_params_is_classmethod_and_callable():
9+
descriptor = inspect.getattr_static(GreedyEncoder, "get_test_params")
10+
assert isinstance(descriptor, classmethod)
11+
12+
params = GreedyEncoder.get_test_params()
13+
assert isinstance(params, list)
14+
assert len(params) >= 1
15+
assert all(isinstance(p, dict) for p in params)
16+
17+
18+
def test_greedy_encoder_can_construct_from_test_params():
19+
for params in GreedyEncoder.get_test_params():
20+
enc = GreedyEncoder(**params)
21+
X = pd.DataFrame([["ACGU"], ["A"]])
22+
Xt = enc.fit_transform(X)
23+
assert Xt.shape[0] == X.shape[0]
24+

0 commit comments

Comments
 (0)