Skip to content

Commit d6ac606

Browse files
committed
Better error messages
1 parent 76c5f00 commit d6ac606

File tree

2 files changed

+6
-7
lines changed

2 files changed

+6
-7
lines changed

src/dsep.jl

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@ function dsep(g::AbstractGraph, U, V, S; verbose = false)
2121
blocked[ve] = true
2222
end
2323

24-
#(in_seen[u] || in_seen[v]) && throw(ArgumentError("S should not contain u or v"))
25-
#intersect(u, v) && throw(ArgumentError("u ∩ v ≠ ∅"))
26-
2724
next = Vector{T}()
2825

2926
# mark vertices with descendants in S
@@ -49,23 +46,22 @@ function dsep(g::AbstractGraph, U, V, S; verbose = false)
4946

5047
for u in U
5148
push!(in_next, u) # treat u as vertex reached backwards
49+
in_seen[u] && throw(ArgumentError("U and S not disjoint."))
5250
in_seen[u] = true
5351
end
5452
if V isa Integer
53+
in_seen[V] && throw(ArgumentError("U, V and S not disjoint."))
5554
return dsep_inner!(g, in_next, out_next, descendant, ==(V), blocked, out_seen, in_seen; verbose)
5655
else
5756
isv = falses(nv(g))
5857
for v in V
58+
in_seen[v] && throw(ArgumentError("U, V and S not disjoint."))
5959
isv[v] = true
6060
end
6161
return dsep_inner!(g, in_next, out_next, descendant, w->isv[w], blocked, out_seen, in_seen; verbose)
6262
end
6363
end
6464

65-
#=
66-
Sketch of the algorithm:
67-
68-
=#
6965
function dsep_inner!(g, in_next, out_next, descendant, found, blocked, out_seen, in_seen; verbose=false)
7066
while true
7167
sin = isempty(in_next)

test/gensearch.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,4 +90,7 @@ end
9090
@testset "dsep vs alt_test_dsep" begin
9191
test_dsep(g1)
9292
test_dsep(g2)
93+
@test_throws ArgumentError dsep(g1, [1,2], [2,3], [4,5])
94+
@test_throws ArgumentError dsep(g1, [1,2], [3,4], [4,5])
95+
@test_throws ArgumentError dsep(g1, [1,2], [3,4], [5,1])
9396
end

0 commit comments

Comments
 (0)