CPANPLUS-Dist-Gentoo

 view release on metacpan or  search on metacpan

t/20-version.t  view on Meta::CPAN

#!perl -T

use strict;
use warnings;

use Test::More tests => 3 + (2 + 2 * 3) * (69 + 4 * 7);

use CPANPLUS::Dist::Gentoo::Version;

sub V () { 'CPANPLUS::Dist::Gentoo::Version' }

eval { V->new() };
like $@, qr/You\s+must\s+specify\s+a\s+version\s+string/, "V->(undef)";

eval { V->new('dongs') };
like $@, qr/Couldn't\s+parse\s+version\s+string/, "V->('dongs')";

eval { my $res = 'dongs' < V->new(1) };
like $@, qr/Couldn't\s+parse\s+version\s+string/, "'dongs' < V->new(1)";

my @tests = (
 [ 0, 0 =>  0 ],
 [ 1, 0 =>  1 ],
 [ 1, 1 =>  0 ],

 [ '00',  '0'  => 0 ],
 [ '01',  '1'  => 0 ],
 [ '001', '1'  => 0 ],
 [ '001', '01' => 0 ],

 [ '1.0',   1       =>  1 ], # Yes, 1.0 > 1. Deal with it
 [ '1.0',   '1.0'   =>  0 ],
 [ '1.1',   1       =>  1 ],
 [ '1.1',   '1.0'   =>  1 ],
 [ '1.1',   '1.1'   =>  0 ],
 [ '1.1',   '1.10'  => -1 ],
 [ '1.1',   '1.01'  =>  1 ],
 [ '1.1',   '1.010' =>  1 ],
 [ '1.01',  '1.010' =>  0 ],

 [ '1.0.0',  1         =>  1 ], # Ditto
 [ '1.0.0',  '1.0'     =>  1 ], # Tritto
 [ '1.0.0',  '1.0.0'   =>  0 ],
 [ '1.0.1',  '1.1'     => -1 ],
 [ '1.0.1',  '1.0.0'   =>  1 ],
 [ '1.0.1',  '1.0.1'   =>  0 ],
 [ '1.0.1',  '1.0.10'  => -1 ],
 [ '1.0.1',  '1.0.01'  =>  1 ],
 [ '1.0.1',  '1.0.010' =>  1 ],
 [ '1.0.01', '1.0.010' =>  0 ],

 [ '1a',    1        =>  1 ],
 [ '1.0a',  1        =>  1 ],
 [ '1.0',   '1a'     =>  1 ], # Same
 [ '1a',    '1b'     => -1 ],
 [ '1.1a',  '1.0b'   =>  1 ],
 [ '1.1a',  '1.01a'  =>  1 ],
 [ '1.01a', '1.010a' =>  0 ],

 map( {
  [ '1.0',        "1.0_${_}"  =>  1 ],
  [ '1.0a',       "1.0_${_}"  =>  1 ],
  [ '1.0',        "1.0_${_}1" =>  1 ],
  [ "1.0_${_}1",  "1.0_${_}1" =>  0 ],
  [ "1.0_${_}1",  "1.0_${_}2" => -1 ],
  [ "1.0a_${_}1", "1.0_${_}2" =>  1 ],
  [ "1.1_${_}1",  "1.0_${_}2" =>  1 ],
 } qw(alpha beta pre rc)),

 [ '1.0',     '1.0_p0' => -1 ],



( run in 2.122 seconds using v1.01-cache-2.11-cpan-8dfa8b56332 )