Skip to content

Commit 0991c80

Browse files
authored
Merge pull request #161 from zhi-yi-huang/issue#129
Fixed Issue#129
2 parents e17f847 + a9be7eb commit 0991c80

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

causallearn/utils/PCUtils/SkeletonDiscovery.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,9 @@ def skeleton_discovery(
120120
else:
121121
if verbose:
122122
print('%d dep %d | %s with p-value %f\n' % (x, y, S, p))
123-
append_value(cg.sepset, x, y, tuple(sepsets))
124-
append_value(cg.sepset, y, x, tuple(sepsets))
123+
if (x, y) in edge_removal or not cg.G.get_edge(cg.G.nodes[x], cg.G.nodes[y]):
124+
append_value(cg.sepset, x, y, tuple(sepsets))
125+
append_value(cg.sepset, y, x, tuple(sepsets))
125126

126127
if show_progress:
127128
pbar.refresh()

tests/TestSkeletonDiscovery.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
from unittest import TestCase
2+
import numpy as np
3+
from causallearn.search.ConstraintBased.PC import pc
4+
import networkx as nx
5+
from causallearn.utils.cit import chisq, fisherz, gsq, kci, mv_fisherz, d_separation
6+
7+
8+
class TestSkeletonDiscovery(TestCase):
9+
def test_sepset(self):
10+
truth_DAG_directed_edges = {(0, 2), (1, 2), (2, 3), (2, 4)}
11+
12+
true_dag_netx = nx.DiGraph()
13+
true_dag_netx.add_nodes_from(list(range(5)))
14+
true_dag_netx.add_edges_from(truth_DAG_directed_edges)
15+
16+
data = np.zeros((100, len(true_dag_netx.nodes))) # just a placeholder
17+
cg = pc(data, 0.05, d_separation, True, 0, -1, true_dag=true_dag_netx)
18+
assert cg.sepset[0, 2] is None

0 commit comments

Comments
 (0)