lib/bio/pathway.rb in bio-1.3.1 vs lib/bio/pathway.rb in bio-1.4.0
- old
+ new
@@ -785,176 +785,5 @@
end # Relation
end # Bio
-
-
-if __FILE__ == $0
-
- puts "--- Test === method true/false"
- r1 = Bio::Relation.new('a', 'b', 1)
- r2 = Bio::Relation.new('b', 'a', 1)
- r3 = Bio::Relation.new('b', 'a', 2)
- r4 = Bio::Relation.new('a', 'b', 1)
- p r1 === r2
- p r1 === r3
- p r1 === r4
- p [ r1, r2, r3, r4 ].uniq
- p r1.eql?(r2)
- p r3.eql?(r2)
-
- # Sample Graph :
- # +----------------+
- # | |
- # v |
- # +---------(q)-->(t)------->(y)<----(r)
- # | | | ^ |
- # v | v | |
- # +--(s)<--+ | (x)<---+ (u)<-----+
- # | | | | |
- # v | | v |
- # (v)----->(w)<---+ (z)----+
-
- data = [
- [ 'q', 's', 1, ],
- [ 'q', 't', 1, ],
- [ 'q', 'w', 1, ],
- [ 'r', 'u', 1, ],
- [ 'r', 'y', 1, ],
- [ 's', 'v', 1, ],
- [ 't', 'x', 1, ],
- [ 't', 'y', 1, ],
- [ 'u', 'y', 1, ],
- [ 'v', 'w', 1, ],
- [ 'w', 's', 1, ],
- [ 'x', 'z', 1, ],
- [ 'y', 'q', 1, ],
- [ 'z', 'x', 1, ],
- ]
-
- ary = []
-
- puts "--- List of relations"
- data.each do |x|
- ary << Bio::Relation.new(*x)
- end
- p ary
-
- puts "--- Generate graph from list of relations"
- graph = Bio::Pathway.new(ary)
- p graph
-
- puts "--- Test to_matrix method"
- p graph.to_matrix
-
- puts "--- Test dump_matrix method"
- puts graph.dump_matrix(0)
-
- puts "--- Test dump_list method"
- puts graph.dump_list
-
- puts "--- Labeling some nodes"
- hash = { 'q' => "L1", 's' => "L2", 'v' => "L3", 'w' => "L4" }
- graph.label = hash
- p graph
-
- puts "--- Extract subgraph by label"
- p graph.subgraph
-
- puts "--- Extract subgraph by list"
- p graph.subgraph(['q', 't', 'x', 'y', 'z'])
-
- puts "--- Test cliquishness of the node 'q'"
- p graph.cliquishness('q')
-
- puts "--- Test cliquishness of the node 'q' (undirected)"
- u_graph = Bio::Pathway.new(ary, 'undirected')
- p u_graph.cliquishness('q')
-
- puts "--- Test small_world histgram"
- p graph.small_world
-
- puts "--- Test breadth_first_search method"
- distance, predecessor = graph.breadth_first_search('q')
- p distance
- p predecessor
-
- puts "--- Test bfs_shortest_path method"
- step, path = graph.bfs_shortest_path('y', 'w')
- p step
- p path
-
- puts "--- Test depth_first_search method"
- timestamp, tree, back, cross, forward = graph.depth_first_search
- p timestamp
- print "tree edges : "; p tree
- print "back edges : "; p back
- print "cross edges : "; p cross
- print "forward edges : "; p forward
-
- puts "--- Test dfs_topological_sort method"
- #
- # Professor Bumstead topologically sorts his clothing when getting dressed.
- #
- # "undershorts" "socks"
- # | | |
- # v | v "watch"
- # "pants" --+-------> "shoes"
- # |
- # v
- # "belt" <----- "shirt" ----> "tie" ----> "jacket"
- # | ^
- # `---------------------------------------'
- #
- dag = Bio::Pathway.new([
- Bio::Relation.new("undeershorts", "pants", true),
- Bio::Relation.new("undeershorts", "shoes", true),
- Bio::Relation.new("socks", "shoes", true),
- Bio::Relation.new("watch", "watch", true),
- Bio::Relation.new("pants", "belt", true),
- Bio::Relation.new("pants", "shoes", true),
- Bio::Relation.new("shirt", "belt", true),
- Bio::Relation.new("shirt", "tie", true),
- Bio::Relation.new("tie", "jacket", true),
- Bio::Relation.new("belt", "jacket", true),
- ])
- p dag.dfs_topological_sort
-
- puts "--- Test dijkstra method"
- distance, predecessor = graph.dijkstra('q')
- p distance
- p predecessor
-
- puts "--- Test dijkstra method by weighted graph"
- #
- # 'a' --> 'b'
- # | 1 | 3
- # |5 v
- # `----> 'c'
- #
- r1 = Bio::Relation.new('a', 'b', 1)
- r2 = Bio::Relation.new('a', 'c', 5)
- r3 = Bio::Relation.new('b', 'c', 3)
- w_graph = Bio::Pathway.new([r1, r2, r3])
- p w_graph
- p w_graph.dijkstra('a')
-
- puts "--- Test bellman_ford method by negative weighted graph"
- #
- # ,-- 'a' --> 'b'
- # | | 1 | 3
- # | |5 v
- # | `----> 'c'
- # | ^
- # |2 | -5
- # `--> 'd' ----'
- #
- r4 = Bio::Relation.new('a', 'd', 2)
- r5 = Bio::Relation.new('d', 'c', -5)
- w_graph.append(r4)
- w_graph.append(r5)
- p w_graph.bellman_ford('a')
- p graph.bellman_ford('q')
-
-end
-