66import pandas as pd
77from tempfile import TemporaryDirectory
88import os
9+ from numpy import nan
910
1011from causal_testing .discovery .abstract_discovery import TestResult , Discovery , simple_cycle
1112from causal_testing .specification .causal_dag import CausalDAG
@@ -56,21 +57,25 @@ def test_simple_cycle_no_cycles(self):
5657 def test_effect_direction_positive (self ):
5758 causal_test_case = CausalTestCase (base_test_case = self .base_test_case , expected_causal_effect = None )
5859 causal_test_case .result = CausalTestResult (
59- effect_estimate = EffectEstimate (type = "ate" , value = pd .Series (5.05 )),
60+ effect_estimate = EffectEstimate (
61+ type = "ate" , value = pd .Series (5.05 ), ci_low = pd .Series (5 ), ci_high = pd .Series (6 )
62+ ),
6063 )
6164 self .assertEqual (self .abstract_discovery .effect_direction (causal_test_case ), "positive" )
6265
6366 def test_effect_direction_negative (self ):
6467 causal_test_case = CausalTestCase (base_test_case = self .base_test_case , expected_causal_effect = None )
6568 causal_test_case .result = CausalTestResult (
66- effect_estimate = EffectEstimate (type = "ate" , value = pd .Series (- 5.05 )),
69+ effect_estimate = EffectEstimate (
70+ type = "ate" , value = pd .Series (- 5.05 ), ci_low = pd .Series (- 6 ), ci_high = pd .Series (- 5 )
71+ ),
6772 )
6873 self .assertEqual (self .abstract_discovery .effect_direction (causal_test_case ), "negative" )
6974
7075 def test_effect_direction_none (self ):
7176 causal_test_case = CausalTestCase (base_test_case = self .base_test_case , expected_causal_effect = None )
7277 causal_test_case .result = CausalTestResult (
73- effect_estimate = EffectEstimate (type = "ate" , value = pd .Series (0 )),
78+ effect_estimate = EffectEstimate (type = "ate" , value = pd .Series (0 ), ci_low = pd . Series ( - 1 ), ci_high = pd . Series ( 1 ) ),
7479 )
7580 self .assertEqual (self .abstract_discovery .effect_direction (causal_test_case ), None )
7681
@@ -210,73 +215,64 @@ def test_evaluate_tests_inestimable(self):
210215 "expected_effect" : "NoEffect" ,
211216 "treatment" : "length_in" ,
212217 "outcome" : "large_gauge" ,
213- "effect" : "negative" ,
214218 },
215219 {
216220 "result" : TestResult .PASS ,
217221 "expected_effect" : "NoEffect" ,
218222 "treatment" : "large_gauge" ,
219223 "outcome" : "length_in" ,
220- "effect" : "negative" ,
221224 },
222225 {
223226 "result" : TestResult .PASS ,
224227 "expected_effect" : "NoEffect" ,
225228 "treatment" : "length_in" ,
226229 "outcome" : "color" ,
227- "effect" : None ,
228230 },
229231 {
230232 "result" : TestResult .PASS ,
231233 "expected_effect" : "NoEffect" ,
232234 "treatment" : "color" ,
233235 "outcome" : "length_in" ,
234- "effect" : None ,
235236 },
236237 {
237238 "result" : TestResult .FAIL ,
238239 "expected_effect" : "SomeEffect" ,
239240 "treatment" : "length_in" ,
240241 "outcome" : "completed" ,
241- "effect" : "positive" ,
242242 },
243243 {
244244 "result" : TestResult .PASS ,
245245 "expected_effect" : "NoEffect" ,
246246 "treatment" : "large_gauge" ,
247247 "outcome" : "color" ,
248- "effect" : None ,
249248 },
250249 {
251250 "result" : TestResult .PASS ,
252251 "expected_effect" : "NoEffect" ,
253252 "treatment" : "color" ,
254253 "outcome" : "large_gauge" ,
255- "effect" : None ,
256254 },
257255 {
258256 "result" : TestResult .FAIL ,
259257 "expected_effect" : "SomeEffect" ,
260258 "treatment" : "large_gauge" ,
261259 "outcome" : "completed" ,
262- "effect" : "negative" ,
263260 },
264261 {
265262 "result" : TestResult .INESTIMABLE ,
266263 "expected_effect" : "NoEffect" ,
267264 "treatment" : "color" ,
268265 "outcome" : "completed" ,
269- "effect" : None ,
270266 },
271267 {
272268 "result" : TestResult .INESTIMABLE ,
273269 "expected_effect" : "NoEffect" ,
274270 "treatment" : "completed" ,
275271 "outcome" : "color" ,
276- "effect" : None ,
277272 },
278273 ]
279274 )
275+ expected_results ["effect" ] = nan
280276 pd .testing .assert_frame_equal (test_results , expected_results )
281277
282278 def test_evaluate_tests (self ):
@@ -295,71 +291,62 @@ def test_evaluate_tests(self):
295291 "expected_effect" : "NoEffect" ,
296292 "treatment" : "length_in" ,
297293 "outcome" : "large_gauge" ,
298- "effect" : "positive" ,
299294 },
300295 {
301296 "result" : TestResult .PASS ,
302297 "expected_effect" : "NoEffect" ,
303298 "treatment" : "large_gauge" ,
304299 "outcome" : "length_in" ,
305- "effect" : "positive" ,
306300 },
307301 {
308302 "result" : TestResult .PASS ,
309303 "expected_effect" : "NoEffect" ,
310304 "treatment" : "length_in" ,
311305 "outcome" : "color" ,
312- "effect" : None ,
313306 },
314307 {
315308 "result" : TestResult .PASS ,
316309 "expected_effect" : "NoEffect" ,
317310 "treatment" : "color" ,
318311 "outcome" : "length_in" ,
319- "effect" : None ,
320312 },
321313 {
322314 "result" : TestResult .FAIL ,
323315 "expected_effect" : "SomeEffect" ,
324316 "treatment" : "length_in" ,
325317 "outcome" : "completed" ,
326- "effect" : "negative" ,
327318 },
328319 {
329320 "result" : TestResult .PASS ,
330321 "expected_effect" : "NoEffect" ,
331322 "treatment" : "large_gauge" ,
332323 "outcome" : "color" ,
333- "effect" : None ,
334324 },
335325 {
336326 "result" : TestResult .PASS ,
337327 "expected_effect" : "NoEffect" ,
338328 "treatment" : "color" ,
339329 "outcome" : "large_gauge" ,
340- "effect" : None ,
341330 },
342331 {
343332 "result" : TestResult .FAIL ,
344333 "expected_effect" : "SomeEffect" ,
345334 "treatment" : "large_gauge" ,
346335 "outcome" : "completed" ,
347- "effect" : "positive" ,
348336 },
349337 {
350338 "result" : TestResult .PASS ,
351339 "expected_effect" : "NoEffect" ,
352340 "treatment" : "color" ,
353341 "outcome" : "completed" ,
354- "effect" : None ,
355342 },
356343 {
357344 "result" : TestResult .PASS ,
358345 "expected_effect" : "NoEffect" ,
359346 "treatment" : "completed" ,
360347 "outcome" : "color" ,
361- "effect" : None ,
362348 },
363349 ]
364350 )
351+ expected_results ["effect" ] = None
365352 pd .testing .assert_frame_equal (test_results , expected_results )
0 commit comments