1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
package main
import (
check "gopkg.in/check.v1"
)
func (s *Suite) Test_newVersion(c *check.C) {
c.Check(newVersion("5.0"), check.DeepEquals, &version{[]int{5, 0, 0}, 0})
c.Check(newVersion("5.0nb5"), check.DeepEquals, &version{[]int{5, 0, 0}, 5})
c.Check(newVersion("0.0.1-SNAPSHOT"), check.DeepEquals, &version{[]int{0, 0, 0, 0, 1, 19, 14, 1, 16, 19, 8, 15, 20}, 0})
c.Check(newVersion("1.0alpha3"), check.DeepEquals, &version{[]int{1, 0, 0, -3, 3}, 0})
c.Check(newVersion("2.5beta"), check.DeepEquals, &version{[]int{2, 0, 5, -2}, 0})
c.Check(newVersion("20151110"), check.DeepEquals, &version{[]int{20151110}, 0})
c.Check(newVersion("0"), check.DeepEquals, &version{[]int{0}, 0})
c.Check(newVersion("nb1"), check.DeepEquals, &version{nil, 1})
c.Check(newVersion("1.0.1a"), deepEquals, &version{[]int{1, 0, 0, 0, 1, 1}, 0})
c.Check(newVersion("1.0.1z"), deepEquals, &version{[]int{1, 0, 0, 0, 1, 26}, 0})
c.Check(newVersion("0pre20160620"), deepEquals, &version{[]int{0, -1, 20160620}, 0})
}
func (s *Suite) Test_pkgverCmp(c *check.C) {
var versions = [][]string{
{"0pre20160620"},
{"0"},
{"nb1"},
{"0.0.1-SNAPSHOT"},
{"1.0alpha"},
{"1.0alpha3"},
{"1", "1.0", "1.0.0"},
{"1.0nb1"},
{"1.0nb2"},
{"1.0.1a"},
{"1.0.1z"},
{"2.0pre", "2.0rc"},
{"2.0", "2.0pl"},
{"2.0.1nb4"},
{"2.0.1nb17"},
{"2.5beta"},
{"5.0"},
{"5.0nb5"},
{"5.5", "5.005"},
{"20151110"},
}
for i, iversions := range versions {
for _, iversion := range iversions {
for j, jversions := range versions {
for _, jversion := range jversions {
actual := pkgverCmp(iversion, jversion)
if i < j && !(actual < 0) {
c.Check([]interface{}{i, iversion, j, jversion, "<0"}, deepEquals, []interface{}{i, iversion, j, jversion, actual})
}
if i == j && !(actual == 0) {
c.Check([]interface{}{i, iversion, j, jversion, "==0"}, deepEquals, []interface{}{i, iversion, j, jversion, actual})
}
if i > j && !(actual > 0) {
c.Check([]interface{}{i, iversion, j, jversion, ">0"}, deepEquals, []interface{}{i, iversion, j, jversion, actual})
}
}
}
}
}
}
|