def test_different_implementations(): random_state = 1233 X_train, y_train = make_classification_problem() # Compare with chained transformations. tran1 = RandomIntervalSegmenter(n_intervals=1, random_state=random_state) tran2 = SeriesToPrimitivesRowTransformer(FunctionTransformer( func=np.mean, validate=False), check_transformer=False) A = tran2.fit_transform(tran1.fit_transform(X_train)) tran = RandomIntervalFeatureExtractor(n_intervals=1, features=[np.mean], random_state=random_state) B = tran.fit_transform(X_train) np.testing.assert_array_almost_equal(A, B)
def test_output_format_dim(n_timepoints, n_instances, n_intervals): X = _make_nested_from_array( np.ones(n_timepoints), n_instances=n_instances, n_columns=1 ) trans = RandomIntervalSegmenter(n_intervals=n_intervals) Xt = trans.fit_transform(X) # Check number of rows and output type. assert isinstance(Xt, pd.DataFrame) assert Xt.shape[0] == X.shape[0] # Check number of generated intervals/columns. if n_intervals != "random": if np.issubdtype(type(n_intervals), np.floating): assert Xt.shape[1] == np.maximum(1, int(n_timepoints * n_intervals)) elif np.issubdtype(type(n_intervals), np.integer): assert Xt.shape[1] == n_intervals elif n_intervals == "sqrt": assert Xt.shape[1] == np.maximum(1, int(np.sqrt(n_timepoints))) elif n_intervals == "log": assert Xt.shape[1] == np.maximum(1, int(np.log(n_timepoints)))