graphunk 0.5.2 → 0.5.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/graphunk/undirected_graph.rb +22 -20
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e9587a7e60d6decfe167c7c414bc67c9039c3e94
|
4
|
+
data.tar.gz: 4a4b27ead93655a13d6f7380bc52fb860e6fb87e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ce4bd2e43082797664f3e31155a6d5acdcc643a129cf2dafff4f59e617c5e026d89b02c9ef00178685945a3f1977d78cff876a08c67cdf7c1f8cb0d03dc1da7
|
7
|
+
data.tar.gz: 1791ca21dccc1f55a8b04f059127a39a1669157e4b80e8488f3d195420cfbe568034f0f97550817026aedf3c73cbc9bb9a73f7d2c3459a8c87857801a75fcbd5
|
@@ -158,29 +158,31 @@ module Graphunk
|
|
158
158
|
transitive_orientation.add_edge(considered_edge.first, considered_edge.last)
|
159
159
|
|
160
160
|
explore = lambda do |edge|
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
adjacent_edges(edge.first, edge.last).each { |neighbor| explore.call neighbor }
|
161
|
+
edge_set = false
|
162
|
+
adjacent_edges(edge.first, edge.last).each do |adjacent_edge|
|
163
|
+
next if unconsidered_edges.include? adjacent_edge
|
164
|
+
|
165
|
+
shared_vertex = adjacent_edge.select { |vertex| edge.include? vertex }.first
|
166
|
+
unshared_edge_vertex = edge.reject { |vertex| adjacent_edge.include? vertex }.first
|
167
|
+
unshared_adjacent_edge_vertex = adjacent_edge.reject { |vertex| edge.include? vertex }.first
|
168
|
+
|
169
|
+
unless edge_exists?(unshared_edge_vertex, unshared_adjacent_edge_vertex)
|
170
|
+
if transitive_orientation.edge_exists?(shared_vertex, unshared_adjacent_edge_vertex)
|
171
|
+
transitive = false if transitive_orientation.edge_exists?(unshared_edge_vertex, shared_vertex)
|
172
|
+
transitive_orientation.add_edge(shared_vertex, unshared_edge_vertex) unless transitive_orientation.edge_exists?(shared_vertex, unshared_edge_vertex)
|
173
|
+
unconsidered_edges.delete(order_vertices(shared_vertex, unshared_edge_vertex))
|
174
|
+
edge_set = true
|
175
|
+
else
|
176
|
+
transitive = false if transitive_orientation.edge_exists?(shared_vertex, unshared_edge_vertex)
|
177
|
+
transitive_orientation.add_edge(unshared_edge_vertex, shared_vertex) unless transitive_orientation.edge_exists?(unshared_edge_vertex, shared_vertex)
|
178
|
+
unconsidered_edges.delete(order_vertices(shared_vertex, unshared_edge_vertex))
|
179
|
+
edge_set = true
|
181
180
|
end
|
181
|
+
|
182
182
|
end
|
183
183
|
end
|
184
|
+
|
185
|
+
adjacent_edges(edge.first, edge.last).each { |neighbor| explore.call neighbor if unconsidered_edges.include? neighbor } if edge_set
|
184
186
|
end
|
185
187
|
|
186
188
|
adjacent_edges(considered_edge.first, considered_edge.last).each { |neighbor_edge| explore.call neighbor_edge }
|