]> gitweb.factorcode.org Git - factor.git/blob - extra/semantic-versioning/semantic-versioning-tests.factor
semantic-versioning: maybe this is more forgiving and simpler.
[factor.git] / extra / semantic-versioning / semantic-versioning-tests.factor
1 USING: kernel math.order random semantic-versioning sequences
2 sorting tools.test ;
3 IN: semantic-versioning.tests
4
5 {
6     {
7         { { 0 1 0 } f f }
8         { { 0 97 0 } f f }
9         { { 1 1 0 } f f }
10         { { 1 2 3 } f f }
11         { { 1 0 0 } "dev1" f }
12         { { 1 0 0 } "rc1" "build" }
13         { { 1 0 0 } "rc2" f }
14         { { 1 0 0 } "rc2" "123456" }
15     }
16 } [
17     {
18         ".1"
19         "0.97"
20         "1.1"
21         "1.2.3"
22         "1.0.0dev1"
23         "1.0.0rc1+build"
24         "1.0.0-rc2"
25         "1.0.0-rc2+123456"
26     } [ split-version ] map
27 ] unit-test
28
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
38
39 { t } [
40     {
41         "1.0.0-alpha"
42         "1.0.0-alpha.1"
43         "1.0.0-alpha.beta"
44         "1.0.0-beta"
45         "1.0.0-beta.2"
46         "1.0.0-beta.11"
47         "1.0.0-rc.1"
48         "1.0.0"
49     } dup clone randomize [ version<=> ] sort =
50 ] unit-test