Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/portupgrade
Path: blob/master/tests/test_pkgtsort.rb
102 views
1
#!/usr/bin/env ruby
2
#
3
$:.push("..")
4
5
require 'test/unit'
6
7
require 'pkgtools/pkgtsort'
8
9
class TestPkgTSort < Test::Unit::TestCase
10
def test_s_new
11
assert_raises(ArgumentError) { PkgTSort.new(1) }
12
assert_raises(ArgumentError) { PkgTSort.new(nil) }
13
end
14
15
def test_add
16
t = PkgTSort.new
17
18
t.add(1, 2, 3)
19
d = t.dump
20
21
assert_equal([1, 2, 3], d.keys.sort)
22
assert_equal([2, 3], d[1].sort)
23
assert_equal([], d[2])
24
assert_equal([], d[3])
25
26
t.add(2, 4)
27
t.add(2, 3)
28
d = t.dump
29
30
assert_equal([1, 2, 3, 4], d.keys.sort)
31
assert_equal([2, 3], d[1].sort)
32
assert_equal([3, 4], d[2].sort)
33
assert_equal([], d[3])
34
assert_equal([], d[4])
35
end
36
37
def test_delete
38
t = PkgTSort.new
39
40
t.add(1, 2, 3)
41
t.add(5, 1, 3, 4)
42
t.add(4, 2)
43
44
t.delete(3)
45
d = t.dump
46
47
assert_equal([1, 2, 4, 5], d.keys.sort)
48
assert_equal([2], d[1])
49
assert_equal([], d[2])
50
assert_equal([2], d[4])
51
assert_equal([1, 4], d[5])
52
53
t.delete(5, 4)
54
d = t.dump
55
56
assert_equal([1, 2, 4, 5], d.keys.sort)
57
assert_equal([2], d[1])
58
assert_equal([], d[2])
59
assert_equal([2], d[4])
60
assert_equal([1], d[5])
61
end
62
63
def test_tsort
64
t = PkgTSort.new
65
66
t.add(1, 2, 3)
67
t.add(2, 4)
68
t.add(2, 3)
69
assert_equal([4, 3, 2, 1], t.tsort)
70
71
t.add(3, 2)
72
73
t.tsort { |cycle|
74
assert_equal([2, 3], cycle.sort)
75
nil
76
}
77
end
78
end
79
80