Skip to content

Commit f4d8891

Browse files
committed
add test mpg example loop noncollider rool that fails
1 parent a14b12b commit f4d8891

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

tests/test_orientation_tests.py

+59
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from causy.causal_discovery.constraint.algorithms.pc import PC_ORIENTATION_RULES
12
from causy.common_pipeline_steps.exit_conditions import ExitOnNoActions
23
from causy.common_pipeline_steps.logic import Loop
34
from causy.edge_types import DirectedEdge, UndirectedEdge
@@ -436,6 +437,64 @@ def test_non_collider_test(self):
436437
self.assertTrue(model.graph.only_directed_edge_exists(x, y))
437438
self.assertTrue(model.graph.only_directed_edge_exists(y, z))
438439

440+
def test_non_collider_test_auto_mpg_graph(self):
441+
pipeline = [NonColliderTest()]
442+
model = graph_model_factory(
443+
Algorithm(
444+
pipeline_steps=pipeline,
445+
edge_types=[DirectedEdge(), UndirectedEdge()],
446+
name="TestCollider",
447+
)
448+
)()
449+
model.graph = GraphManager()
450+
acceleration = model.graph.add_node("acceleration", [])
451+
horsepower = model.graph.add_node("horsepower", [])
452+
mpg = model.graph.add_node("mpg", [])
453+
cylinders = model.graph.add_node("cylinders", [])
454+
displacement = model.graph.add_node("displacement", [])
455+
weight = model.graph.add_node("weight", [])
456+
model.graph.add_edge(mpg, weight, {})
457+
model.graph.add_edge(weight, displacement, {})
458+
model.graph.add_edge(displacement, cylinders, {})
459+
460+
model.graph.add_directed_edge(acceleration, horsepower, {})
461+
model.graph.add_directed_edge(horsepower, displacement, {})
462+
model.graph.add_directed_edge(mpg, horsepower, {})
463+
464+
model.execute_pipeline_steps()
465+
self.assertTrue(model.graph.edge_of_type_exists(displacement, cylinders, DirectedEdge()))
466+
self.assertTrue(model.graph.edge_of_type_exists(displacement, weight, DirectedEdge()))
467+
468+
def test_non_collider_loop_auto_mpg_graph(self):
469+
pipeline = [*PC_ORIENTATION_RULES]
470+
model = graph_model_factory(
471+
Algorithm(
472+
pipeline_steps=pipeline,
473+
edge_types=[DirectedEdge(), UndirectedEdge()],
474+
name="TestCollider",
475+
)
476+
)()
477+
model.graph = GraphManager()
478+
acceleration = model.graph.add_node("acceleration", [])
479+
horsepower = model.graph.add_node("horsepower", [])
480+
mpg = model.graph.add_node("mpg", [])
481+
cylinders = model.graph.add_node("cylinders", [])
482+
displacement = model.graph.add_node("displacement", [])
483+
weight = model.graph.add_node("weight", [])
484+
model.graph.add_edge(mpg, weight, {})
485+
model.graph.add_edge(weight, displacement, {})
486+
model.graph.add_edge(displacement, cylinders, {})
487+
model.graph.add_edge(horsepower, displacement, {})
488+
489+
model.graph.add_directed_edge(acceleration, horsepower, {})
490+
model.graph.add_directed_edge(mpg, horsepower, {})
491+
492+
model.execute_pipeline_steps()
493+
self.assertTrue(model.graph.edge_of_type_exists(displacement, cylinders, DirectedEdge()))
494+
self.assertTrue(model.graph.edge_of_type_exists(displacement, weight, DirectedEdge()))
495+
496+
497+
439498
def test_further_orient_triple_test(self):
440499
pipeline = [FurtherOrientTripleTest()]
441500
model = graph_model_factory(

0 commit comments

Comments
 (0)