@@ -144,6 +144,65 @@ def test_with_feature_group(sagemaker_session_mock):
144
144
)
145
145
146
146
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
+
147
206
def test_point_in_time_accurate_join (sagemaker_session_mock , feature_group_mock ):
148
207
dataset_builder = DatasetBuilder (
149
208
sagemaker_session = sagemaker_session_mock ,
0 commit comments