blob: 57fb9269663f1cbb12ce326933b1227ea7ef2d1c (
plain) (
blame)
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
|
%prep
autoload -Uz is-at-least
%test
versions=(
1 1.1 1.1.1 1.2 1.2.1
2 2.1 2.1.1 2.2 2.2.1
3 3.1 3.1.1 3.2 3.2.1
)
for (( i = 1; i <= $#versions; ++i)); do
for (( j = i+1; j <= $#versions; ++j)); do
is-at-least $versions[i] $versions[j] || echo "$versions[i] ≰ $versions[j]"
{ ! is-at-least $versions[j] $versions[i] } || echo "$versions[j] ≤ $versions[i]"
done
done
0:is-at-least smoke test
# versions in v1 should be equal
# versions in v2 should be newer than those in v1
v1=( 1 1.0 1.0.0 1.0.0.0 1-b 1.X-0 )
v2=( 1.0.0.1 1.0.1 1.0.1.0 1.0.1.1 1-a-0-1 1-0-a.1)
for (( i = 1; i < $#v1; ++i )); do
for (( j = 1; j < $#v1; ++j )); do
is-at-least $v1[i] $v1[j] || echo "$v1[i] ≰ $v1[j]"
done
done
for (( i = 1; i < $#v1; ++i )); do
for (( j = 1; j < $#v2; ++j )); do
is-at-least $v1[i] $v2[j] || echo "$v1[i] ≰ $v2[j]"
{ ! is-at-least $v2[j] $v1[i] } || echo "$v2[j] ≤ $v1[i]"
done
done
0:trailing zeroes are filled in, text-only segments are ignored
local min cur
for min cur in 1.2 1.12 1.2b 1.12a 1-a3 1-b1; do
is-at-least $min $cur || echo "$min ≰ $cur"
done
0:numerical or lexical order
%clean
|