@@ -86,48 +86,53 @@ def run_json_tests(self, effects: dict, estimators: dict, f_flag: bool = False,
86
86
for test in self .test_plan ["tests" ]:
87
87
if "skip" in test and test ["skip" ]:
88
88
continue
89
- if "mutates " in test :
89
+ if "mutations " in test :
90
90
abstract_test = self ._create_abstract_test_case (test , mutates , effects )
91
91
92
92
concrete_tests , dummy = abstract_test .generate_concrete_tests (5 , 0.05 )
93
93
failures = self ._execute_tests (concrete_tests , estimators , test , f_flag )
94
94
msg = (
95
- f"Executing test: { test ['name' ]} \n "
96
- + "abstract_test\n "
97
- + f"{ abstract_test } \n "
98
- + f"{ abstract_test .treatment_variable .name } ,{ abstract_test .treatment_variable .distribution } \n "
99
- + f"Number of concrete tests for test case: { str (len (concrete_tests ))} \n "
100
- + f"{ failures } /{ len (concrete_tests )} failed for { test ['name' ]} "
95
+ f"Executing test: { test ['name' ]} \n "
96
+ + "abstract_test\n "
97
+ + f"{ abstract_test } \n "
98
+ + f"{ abstract_test .treatment_variable .name } ,{ abstract_test .treatment_variable .distribution } \n "
99
+ + f"Number of concrete tests for test case: { str (len (concrete_tests ))} \n "
100
+ + f"{ failures } /{ len (concrete_tests )} failed for { test ['name' ]} "
101
101
)
102
102
self ._append_to_file (msg , logging .INFO )
103
103
else :
104
- outcome_variable = next (iter (test ['expectedEffect' ])) # Take first key from dictionary of expected effect
105
- expected_effect = effects [test ['expectedEffect' ][outcome_variable ]]
106
- base_test_case = BaseTestCase (treatment_variable = self .variables ["inputs" ][test ["treatment_variable" ]],
107
- outcome_variable = self .variables ["outputs" ][outcome_variable ])
108
-
109
- causal_test_case = CausalTestCase (base_test_case = base_test_case ,
110
- expected_causal_effect = expected_effect ,
111
- control_value = test ["control_value" ],
112
- treatment_value = test ["treatment_value" ],
113
- estimate_type = test ["estimate_type" ])
104
+ outcome_variable = next (
105
+ iter (test ["expectedEffect" ])
106
+ ) # Take first key from dictionary of expected effect
107
+ base_test_case = BaseTestCase (
108
+ treatment_variable = self .variables ["inputs" ][test ["treatment_variable" ]],
109
+ outcome_variable = self .variables ["outputs" ][outcome_variable ],
110
+ )
114
111
112
+ causal_test_case = CausalTestCase (
113
+ base_test_case = base_test_case ,
114
+ expected_causal_effect = effects [test ["expectedEffect" ][outcome_variable ]],
115
+ control_value = test ["control_value" ],
116
+ treatment_value = test ["treatment_value" ],
117
+ estimate_type = test ["estimate_type" ],
118
+ )
115
119
116
- if self ._execute_test_case (causal_test_case = causal_test_case ,
117
- estimator = estimators [test ["estimator" ]],
118
- f_flag = f_flag ):
120
+ if self ._execute_test_case (
121
+ causal_test_case = causal_test_case , estimator = estimators [test ["estimator" ]], f_flag = f_flag
122
+ ):
119
123
result = "failed"
120
124
else :
121
125
result = "passed"
122
126
123
127
msg = (
124
- f"Executing concrete test: { test ['name' ]} \n "
125
- + f"treatment variable: { test ['treatment_variable' ]} \n "
126
- + f"outcome_variable = { outcome_variable } \n "
127
- + f"control value = { test ['control_value' ]} , treatment value = { test ['treatment_value' ]} \n "
128
- + f"result - { result } \n "
128
+ f"Executing concrete test: { test ['name' ]} \n "
129
+ + f"treatment variable: { test ['treatment_variable' ]} \n "
130
+ + f"outcome_variable = { outcome_variable } \n "
131
+ + f"control value = { test ['control_value' ]} , treatment value = { test ['treatment_value' ]} \n "
132
+ + f"result - { result } \n "
129
133
)
130
134
self ._append_to_file (msg , logging .INFO )
135
+
131
136
def _create_abstract_test_case (self , test , mutates , effects ):
132
137
assert len (test ["mutations" ]) == 1
133
138
abstract_test = AbstractCausalTestCase (
@@ -262,12 +267,12 @@ def _append_to_file(self, line: str, log_level: int = None):
262
267
logger .log (level = log_level , msg = line )
263
268
264
269
def _get_scenario_variables (self ):
265
- for input in self .scenario .inputs ():
266
- self .variables ["inputs" ][input .name ] = input
267
- for output in self .scenario .outputs ():
268
- self .variables ["outputs" ][output .name ] = output
269
- for meta in self .scenario .metas ():
270
- self .variables ["metas" ][meta .name ] = meta
270
+ for input_var in self .scenario .inputs ():
271
+ self .variables ["inputs" ][input_var .name ] = input_var
272
+ for output_var in self .scenario .outputs ():
273
+ self .variables ["outputs" ][output_var .name ] = output_var
274
+ for meta_var in self .scenario .metas ():
275
+ self .variables ["metas" ][meta_var .name ] = meta_var
271
276
272
277
@staticmethod
273
278
def check_file_exists (output_path : Path , overwrite : bool ):
@@ -299,7 +304,7 @@ def get_args(test_args=None) -> argparse.Namespace:
299
304
parser .add_argument (
300
305
"-w" ,
301
306
help = "Specify to overwrite any existing output files. This can lead to the loss of existing outputs if not "
302
- "careful" ,
307
+ "careful" ,
303
308
action = "store_true" ,
304
309
)
305
310
parser .add_argument (
0 commit comments