summaryrefslogtreecommitdiff
path: root/lib/tsort.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/tsort.rb')
-rw-r--r--lib/tsort.rb47
1 files changed, 0 insertions, 47 deletions
diff --git a/lib/tsort.rb b/lib/tsort.rb
index 9fc4feadcd..aa562ad1c5 100644
--- a/lib/tsort.rb
+++ b/lib/tsort.rb
@@ -241,50 +241,3 @@ module TSort
raise NotImplementedError.new
end
end
-
-if __FILE__ == $0
- require 'test/unit'
-
- class TSortHash < Hash # :nodoc:
- include TSort
- alias tsort_each_node each_key
- def tsort_each_child(node, &block)
- fetch(node).each(&block)
- end
- end
-
- class TSortArray < Array # :nodoc:
- include TSort
- alias tsort_each_node each_index
- def tsort_each_child(node, &block)
- fetch(node).each(&block)
- end
- end
-
- class TSortTest < Test::Unit::TestCase # :nodoc:
- def test_dag
- h = TSortHash[{1=>[2, 3], 2=>[3], 3=>[]}]
- assert_equal([3, 2, 1], h.tsort)
- assert_equal([[3], [2], [1]], h.strongly_connected_components)
- end
-
- def test_cycle
- h = TSortHash[{1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}]
- assert_equal([[4], [2, 3], [1]],
- h.strongly_connected_components.map {|nodes| nodes.sort})
- assert_raise(TSort::Cyclic) { h.tsort }
- end
-
- def test_array
- a = TSortArray[[1], [0], [0], [2]]
- assert_equal([[0, 1], [2], [3]],
- a.strongly_connected_components.map {|nodes| nodes.sort})
-
- a = TSortArray[[], [0]]
- assert_equal([[0], [1]],
- a.strongly_connected_components.map {|nodes| nodes.sort})
- end
- end
-
-end
-