@@ -281,14 +281,24 @@ def create_causal_test(self, test: dict, base_test: BaseTestCase) -> CausalTestC
281
281
if estimator_class is None :
282
282
raise ValueError (f"Unknown estimator: { test ['estimator' ]} " )
283
283
284
- # Filter the data if a test-specific query exists, otherwise use the original data
285
- test_query = test .get ("query" , self .query )
286
-
287
- if test_query :
288
- logger .info (f"Applying test-specific query for '{ test ['name' ]} ': { test_query } " )
289
- filtered_df = self .data .query (test_query )
290
- else :
291
- filtered_df = self .data
284
+ # Handle combined queries (global and test-specific)
285
+ test_query = test .get ("query" )
286
+ combined_query = None
287
+
288
+ if self .query and test_query :
289
+ combined_query = f"({ self .query } ) and ({ test_query } )"
290
+ logger .info (
291
+ f"Combining global query '{ self .query } ' with test-specific query "
292
+ f"'{ test_query } ' for test '{ test ['name' ]} '"
293
+ )
294
+ elif test_query :
295
+ combined_query = test_query
296
+ logger .info (f"Using test-specific query for '{ test ['name' ]} ': { test_query } " )
297
+ elif self .query :
298
+ combined_query = self .query
299
+ logger .info (f"Using global query for '{ test ['name' ]} ': { self .query } " )
300
+
301
+ filtered_df = self .data .query (combined_query ) if combined_query else self .data
292
302
293
303
# Create the estimator with correct parameters
294
304
estimator = estimator_class (
@@ -300,7 +310,7 @@ def create_causal_test(self, test: dict, base_test: BaseTestCase) -> CausalTestC
300
310
effect_modifiers = None ,
301
311
formula = test .get ("formula" ),
302
312
alpha = test .get ("alpha" , 0.05 ),
303
- query = test_query ,
313
+ query = combined_query ,
304
314
)
305
315
306
316
# Get effect type and create expected effect
0 commit comments