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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
#!perl
use 5.010;
use strict;
use warnings;
use Test::Exception;
use Test::More 0.98;
use Version::Util qw(
cmp_version
version_eq version_ne
version_lt version_le version_gt version_ge
version_between
version_in
min_version max_version
add_version subtract_version
);
subtest cmp_version => sub {
is(cmp_version("1.1.0", "1.1.0"), 0);
is(cmp_version("1.1.2", "1.2.0"), -1);
is(cmp_version("1.11" , "1.9.0"), 1);
};
subtest version_eq => sub {
ok(!version_eq("1.1.0" , "1.2.0"));
ok( version_eq("1.1.0" , "1.1.0"));
ok(!version_eq("1.1.0" , "1.0.1"));
};
subtest version_ne => sub {
ok( version_ne("1.1.0" , "1.2.0"));
ok(!version_ne("1.1.0" , "1.1.0"));
ok( version_ne("1.1.0" , "1.0.1"));
};
subtest version_gt => sub {
ok(!version_gt("1.1.0" , "1.2.0"));
ok(!version_gt("1.1.0" , "1.1.0"));
ok( version_gt("1.1.0" , "1.0.1"));
};
subtest version_ge => sub {
ok(!version_ge("1.1.0" , "1.2.0"));
ok( version_ge("1.1.0" , "1.1.0"));
ok( version_ge("1.1.0" , "1.0.1"));
};
subtest version_lt => sub {
ok( version_lt("1.1.0" , "1.2.0"));
ok(!version_lt("1.1.0" , "1.1.0"));
ok(!version_lt("1.1.0" , "1.0.1"));
};
subtest version_le => sub {
ok( version_le("1.1.0" , "1.2.0"));
ok( version_le("1.1.0" , "1.1.0"));
ok(!version_le("1.1.0" , "1.0.1"));
};
subtest version_between => sub {
ok( version_between("1.1.0" , "1.0.1", "1.2.0"));
ok(!version_between("1.0.0" , "1.0.1", "1.2.0"));
ok( version_between("1.1.0" , "1.0.1", "1.2.0", "1.3.2", "1.4.0"));
ok( version_between("1.3.11", "1.0.1", "1.2.0", "1.3.2", "1.4.0"));
ok(!version_between("1.3.1" , "1.0.1", "1.2.0", "1.3.2", "1.4.0"));
};
subtest version_in => sub {
ok( version_in("1.1.0" , "1.1.0", "1.1.1"));
ok( version_in("1.1.1" , "1.1.0", "1.1.1"));
ok(!version_in("1.2.0" , "1.1.0", "1.1.1"));
};
subtest min_version => sub {
is(min_version("0.1", "0.1.0", "0.2"), "0.1.0");
};
subtest max_version => sub {
is(max_version("0.1", "0.1.0", "0.2.0"), "0.1");
};
subtest add_version => sub {
is(add_version("0.1", "0.1"), "0.2");
is(add_version("0.01", "0.001"), "0.011");
is(add_version("0.01", "0.1"), "0.11");
is(add_version("0.9", "0.1"), "1.0");
is(add_version("0.99", "0.1"), "1.09");
is(add_version("1.1.0", "0.0.1"), "1.1.1");
is(add_version("0.89", "0.01"), "0.90");
is(add_version("0.89", "0.1"), "0.99");
is(add_version("0", "0.1.2"), "0.1.2");
is(add_version("9.9", "0.1.2"), "10.0.2");
};
subtest subtract_version => sub {
is(subtract_version("0.1", "0.1"), "0.0");
is(subtract_version("1.0", "0.1"), "0.9");
is(subtract_version("1.0.1", "0.1"), "0.9.1");
dies_ok { subtract_version("0.1", "0.2") };
};
DONE_TESTING:
done_testing;
|