1 USING: assocs kernel math.order random semantic-versioning
2 sequences sequences.extras sorting tools.test ;
3 IN: semantic-versioning
11 { { 1 0 0 } "dev1" f }
12 { { 1 0 0 } "rc1" "build" }
14 { { 1 0 0 } "rc2" "123456" }
26 } [ split-version ] map
29 { +gt+ } [ "1.2.0dev1" "0.12.1dev2" version<=> ] unit-test
30 { +lt+ } [ "1.9.0" "1.10.0" version<=> ] unit-test
31 { +eq+ } [ "2.0.0rc1" "2.0.0rc1" version<=> ] unit-test
32 { +lt+ } [ "1.0.0rc1" "1.0.0" version<=> ] unit-test
33 { +lt+ } [ "1.0.0rc1" "1.0.0rc2" version<=> ] unit-test
34 { +lt+ } [ "1.0.0-rc.1" "1.0.0-rc.11" version<=> ] unit-test
35 { +lt+ } [ "1.0.0-rc.2" "1.0.0-rc.11" version<=> ] unit-test
36 { +eq+ } [ "1.0.0+foo" "1.0.0+bar" version<=> ] unit-test
37 { +eq+ } [ "1.0" "1.0.0" version<=> ] unit-test
49 } dup clone randomize [ version<=> ] sort =
52 ! { +gt+ } [ "1.2.3-r2" "1.2.3-r100" version<=> ] unit-test
55 CONSTANT: semver-gt-comparisons {
56 { "0.0.0" "0.0.0-foo" }
62 ! { "v0.0.0" "0.0.0-oo" }
63 ! { "v0.0.1" "0.0.0" }
64 ! { "v1.0.0" "0.9.9" }
65 ! { "v0.10.0" "0.9.0" }
66 ! { "v0.99.0" "0.10.0" }
67 ! { "v2.0.0" "1.2.3" }
68 ! { "0.0.0" "v0.0.0-fo" }
69 ! { "0.0.1" "v0.0.0" }
70 ! { "1.0.0" "v0.9.9" }
71 ! { "0.10.0" "v0.9.0" }
72 ! { "0.99.0" "v0.10.0" }
73 ! { "2.0.0" "v1.2.3" }
74 { "1.2.3" "1.2.3-asf" }
76 { "1.2.3" "1.2.3-4-fo" }
77 { "1.2.3-5-foo" "1.2.3-5" }
78 { "1.2.3-5" "1.2.3-4" }
79 { "1.2.3-5-foo" "1.2.3-5-Foo" }
80 { "3.0.0" "2.7.2+asdf" }
81 { "1.2.3-a.10" "1.2.3-a.5" }
82 { "1.2.3-a.b" "1.2.3-a.5" }
83 { "1.2.3-a.b" "1.2.3-a" }
84 ! { "1.2.3-a.b.c.10.d.5" ".2.3-a.b.c.5.d.100" } ! bad parse
85 ! { "1.2.3-r2" "1.2.3-r100" } ! fixme
86 { "1.2.3-r100" "1.2.3-R2" }
91 [ first2 version<=> ] map-zip
92 values [ +gt+ = ] all?
97 [ first2 swap version<=> ] map-zip
98 values [ +lt+ = ] all?