@@ -176,6 +176,92 @@ def test_write_dot_invalid_independence_outcome(self):
176176 with self .assertRaises (ValueError ):
177177 abstract_discovery .write_dot (dag , "dag.dot" )
178178
179+ def test_evaluate_tests_inestimable (self ):
180+ scarf_df = pd .read_csv ("tests/resources/data/scarf_data.csv" )
181+ scarf_df = scarf_df .loc [(scarf_df ["completed" ]) & (scarf_df ["color" ] != "grey" )]
182+
183+ dag = CausalDAG ()
184+ dag .add_nodes_from (scarf_df .columns )
185+ dag .add_edges_from ([("length_in" , "completed" ), ("large_gauge" , "completed" )])
186+
187+ abstract_discovery = AbstractDiscovery (scarf_df )
188+ test_results = abstract_discovery .evaluate_tests (dag )
189+ expected_results = pd .DataFrame (
190+ [
191+ {
192+ "result" : TestResult .PASS ,
193+ "expected_effect" : "NoEffect" ,
194+ "treatment" : "length_in" ,
195+ "outcome" : "large_gauge" ,
196+ "effect" : "negative" ,
197+ },
198+ {
199+ "result" : TestResult .PASS ,
200+ "expected_effect" : "NoEffect" ,
201+ "treatment" : "large_gauge" ,
202+ "outcome" : "length_in" ,
203+ "effect" : "negative" ,
204+ },
205+ {
206+ "result" : TestResult .PASS ,
207+ "expected_effect" : "NoEffect" ,
208+ "treatment" : "length_in" ,
209+ "outcome" : "color" ,
210+ "effect" : None ,
211+ },
212+ {
213+ "result" : TestResult .PASS ,
214+ "expected_effect" : "NoEffect" ,
215+ "treatment" : "color" ,
216+ "outcome" : "length_in" ,
217+ "effect" : None ,
218+ },
219+ {
220+ "result" : TestResult .FAIL ,
221+ "expected_effect" : "SomeEffect" ,
222+ "treatment" : "length_in" ,
223+ "outcome" : "completed" ,
224+ "effect" : "negative" ,
225+ },
226+ {
227+ "result" : TestResult .PASS ,
228+ "expected_effect" : "NoEffect" ,
229+ "treatment" : "large_gauge" ,
230+ "outcome" : "color" ,
231+ "effect" : None ,
232+ },
233+ {
234+ "result" : TestResult .PASS ,
235+ "expected_effect" : "NoEffect" ,
236+ "treatment" : "color" ,
237+ "outcome" : "large_gauge" ,
238+ "effect" : None ,
239+ },
240+ {
241+ "result" : TestResult .FAIL ,
242+ "expected_effect" : "SomeEffect" ,
243+ "treatment" : "large_gauge" ,
244+ "outcome" : "completed" ,
245+ "effect" : "negative" ,
246+ },
247+ {
248+ "result" : TestResult .PASS ,
249+ "expected_effect" : "NoEffect" ,
250+ "treatment" : "color" ,
251+ "outcome" : "completed" ,
252+ "effect" : None ,
253+ },
254+ {
255+ "result" : TestResult .INESTIMABLE ,
256+ "expected_effect" : "NoEffect" ,
257+ "treatment" : "completed" ,
258+ "outcome" : "color" ,
259+ "effect" : None ,
260+ },
261+ ]
262+ )
263+ pd .testing .assert_frame_equal (test_results , expected_results )
264+
179265 def test_evaluate_tests (self ):
180266 scarf_df = pd .read_csv ("tests/resources/data/scarf_data.csv" )
181267
0 commit comments