Skip to content

Commit e6e6ad5

Browse files
adds additional unit test for dataset builder object
1 parent aacd12b commit e6e6ad5

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

tests/unit/sagemaker/feature_store/test_dataset_builder.py

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,65 @@ def test_with_feature_group(sagemaker_session_mock):
144144
)
145145

146146

147+
def test_with_feature_group_with_additional_params(sagemaker_session_mock):
148+
feature_group = FeatureGroup(name="MyFeatureGroup", sagemaker_session=sagemaker_session_mock)
149+
dataframe = pd.DataFrame({"feature-1": [420, 380, 390], "feature-2": [50, 40, 45]})
150+
feature_group.load_feature_definitions(dataframe)
151+
dataset_builder = DatasetBuilder(
152+
sagemaker_session=sagemaker_session_mock,
153+
base=feature_group,
154+
output_path="file/to/path",
155+
record_identifier_feature_name="target-feature",
156+
)
157+
sagemaker_session_mock.describe_feature_group.return_value = {
158+
"OfflineStoreConfig": {"DataCatalogConfig": {"TableName": "table", "Database": "database"}},
159+
"RecordIdentifierFeatureName": "feature-1",
160+
"EventTimeFeatureName": "feature-2",
161+
"FeatureDefinitions": [
162+
{"FeatureName": "feature-1", "FeatureType": "String"},
163+
{"FeatureName": "feature-2", "FeatureType": "String"},
164+
],
165+
}
166+
dataset_builder.with_feature_group(feature_group, "target-feature", [
167+
"feature-1", "feature-2"], join_comparator=JoinComparatorEnum.LESS_THAN, join_type=JoinTypeEnum.LEFT_JOIN, feature_name_in_target='feature-2')
168+
169+
assert len(dataset_builder._feature_groups_to_be_merged) == 1
170+
assert dataset_builder._feature_groups_to_be_merged[0].features == [
171+
"feature-1",
172+
"feature-2",
173+
]
174+
assert dataset_builder._feature_groups_to_be_merged[0].included_feature_names == [
175+
"feature-1",
176+
"feature-2",
177+
]
178+
assert dataset_builder._feature_groups_to_be_merged[0].database == "database"
179+
assert dataset_builder._feature_groups_to_be_merged[0].table_name == "table"
180+
assert (
181+
dataset_builder._feature_groups_to_be_merged[0].record_identifier_feature_name
182+
== "feature-1"
183+
)
184+
assert (
185+
dataset_builder._feature_groups_to_be_merged[0].event_time_identifier_feature.feature_name
186+
== "feature-2"
187+
)
188+
assert (
189+
dataset_builder._feature_groups_to_be_merged[0].event_time_identifier_feature.feature_type
190+
== FeatureTypeEnum.STRING
191+
)
192+
assert (
193+
dataset_builder._feature_groups_to_be_merged[0].join_type
194+
== JoinTypeEnum.LEFT_JOIN
195+
)
196+
assert (
197+
dataset_builder._feature_groups_to_be_merged[0].join_comparator
198+
== JoinComparatorEnum.LESS_THAN
199+
)
200+
assert (
201+
dataset_builder._feature_groups_to_be_merged[0].target_feature_name_in_base
202+
== "target-feature"
203+
)
204+
205+
147206
def test_point_in_time_accurate_join(sagemaker_session_mock, feature_group_mock):
148207
dataset_builder = DatasetBuilder(
149208
sagemaker_session=sagemaker_session_mock,

0 commit comments

Comments
 (0)