def test_attributes_unchanged_by_transform(self): """Test that attributes set in init are unchanged by the transform method.""" df = d.create_datediff_test_df() x = SeriesDtMethodTransformer( new_column_name="b_new", pd_method_name="to_period", column="b", pd_method_kwargs={"freq": "M"}, ) x2 = SeriesDtMethodTransformer( new_column_name="b_new", pd_method_name="to_period", column="b", pd_method_kwargs={"freq": "M"}, ) x.transform(df) assert ( x.new_column_name == x2.new_column_name ), "new_column_name changed by SeriesDtMethodTransformer.transform" assert ( x.pd_method_name == x2.pd_method_name ), "pd_method_name changed by SeriesDtMethodTransformer.transform" assert (x.columns == x2.columns ), "columns changed by SeriesDtMethodTransformer.transform" assert ( x.pd_method_kwargs == x2.pd_method_kwargs ), "pd_method_kwargs changed by SeriesDtMethodTransformer.transform"
def test_super_transform_called(self, mocker): """Test that BaseTransformer.transform called.""" df = d.create_datediff_test_df() x = SeriesDtMethodTransformer(new_column_name="a2", pd_method_name="year", column="a") expected_call_args = { 0: { "args": (d.create_datediff_test_df(), ), "kwargs": {} } } with h.assert_function_call(mocker, tubular.base.BaseTransformer, "transform", expected_call_args): x.transform(df)
def test_expected_output_callable(self, df, expected): """Test transform gives expected results, when pd_method_name is a callable.""" x = SeriesDtMethodTransformer( new_column_name="b_new", pd_method_name="to_period", column="b", pd_method_kwargs={"freq": "M"}, ) df_transformed = x.transform(df) h.assert_frame_equal_msg( actual=df_transformed, expected=expected, msg_tag= "Unexpected values in SeriesDtMethodTransformer.transform with to_period", )
def test_expected_output_overwrite(self, df, expected): """Test a single column output from transform gives expected results, when overwriting the original column.""" x = SeriesDtMethodTransformer( new_column_name="a", pd_method_name="year", column="a", pd_method_kwargs={}, ) df_transformed = x.transform(df) h.assert_frame_equal_msg( actual=df_transformed, expected=expected, msg_tag= "Unexpected values in SeriesDtMethodTransformer.transform with pad, overwriting original column", )