/ tests / features / test_custom_feature.py
test_custom_feature.py
 1  import pandas as pd
 2  
 3  from evidently.legacy.features.custom_feature import CustomSingleColumnFeature
 4  from evidently.legacy.pipeline.column_mapping import ColumnMapping
 5  from evidently.legacy.utils.data_preprocessing import create_data_definition
 6  
 7  
 8  def test_custom_feature():
 9      def add_two(data: pd.Series) -> pd.Series:
10          return data + 2
11  
12      feature_generator = CustomSingleColumnFeature(column_name="column_1", display_name="cl", func=add_two, name="cf")
13      data = pd.DataFrame(dict(column_1=[1, 2, 3]))
14      result = feature_generator.generate_feature(
15          data=data,
16          data_definition=create_data_definition(None, data, ColumnMapping()),
17      )
18  
19      pd.testing.assert_frame_equal(result, pd.DataFrame(dict(cf=[3, 4, 5])))
20      assert feature_generator.as_column().display_name == "cl"