diff --git a/src/MetaGraphs.jl b/src/MetaGraphs.jl index 368868e..f410a2d 100644 --- a/src/MetaGraphs.jl +++ b/src/MetaGraphs.jl @@ -169,6 +169,17 @@ function rem_vertex!(g::AbstractMetaGraph, v::Integer) set_prop!(g, v, key, val) end end + + # Map property keys to new node values + if lastv in keys(lasteoutprops) + lasteoutprops[v] = lasteoutprops[lastv] + delete!(lasteoutprops, lastv) + end + if lastv in keys(lasteinprops) + lasteinprops[v] = lasteinprops[lastv] + delete!(lasteinprops, lastv) + end + for n in outneighbors(g, v) set_props!(g, v, n, lasteoutprops[n]) end diff --git a/test/metagraphs.jl b/test/metagraphs.jl index 2fcb5dd..6479ce9 100644 --- a/test/metagraphs.jl +++ b/test/metagraphs.jl @@ -435,6 +435,12 @@ import Base64: @test get_prop(mga, 5, :prop) == "node5" @test get_prop(mga, 1, :prop) == "newnode1" + # test for 87 + mdg = MetaDiGraph(2) + add_edge!(mdg, 2, 2) + rem_vertex!(mdg, 1) + @test neighbors(mdg, 1) == [1] + @test nv(mdg) == 1 end