Blame Lite/t/v6-numeric-uri.t

Packit 0b51a0
use NetAddr::IP::Lite;
Packit 0b51a0
use Test::More;
Packit 0b51a0
Packit 0b51a0
my @pairs =
Packit 0b51a0
    (
Packit 0b51a0
     [ '[::/0]', '0', '0' ],
Packit 0b51a0
     [ '[::/128]', '0', '340282366920938463463374607431768211455' ],
Packit 0b51a0
     [ '[cafe:cafe::/64]',
Packit 0b51a0
       '269827015721314068804783158349174669312',
Packit 0b51a0
       '340282366920938463444927863358058659840' ],
Packit 0b51a0
     [ '[cafe:cafe::1/64]',
Packit 0b51a0
       '269827015721314068804783158349174669313',
Packit 0b51a0
       '340282366920938463444927863358058659840' ],
Packit 0b51a0
     [ '[dead:beef::/100]',
Packit 0b51a0
       '295990755014133383690938178081940045824',
Packit 0b51a0
       '340282366920938463463374607431499776000' ],
Packit 0b51a0
     [ '[dead:beef::1/100]',
Packit 0b51a0
       '295990755014133383690938178081940045825',
Packit 0b51a0
       '340282366920938463463374607431499776000' ],
Packit 0b51a0
     );
Packit 0b51a0
Packit 0b51a0
my @scale =
Packit 0b51a0
qw(
Packit 0b51a0
 0000:0000:0000:0000:0000:0000:0000:0000
Packit 0b51a0
 0000:0000:0000:0000:0000:0000:0000:0001
Packit 0b51a0
 0000:0000:0000:0000:0000:0000:0000:0010
Packit 0b51a0
 0000:0000:0000:0000:0000:0000:0000:0100
Packit 0b51a0
 0000:0000:0000:0000:0000:0000:0000:1000
Packit 0b51a0
 0000:0000:0000:0000:0000:0000:0001:0000
Packit 0b51a0
 0000:0000:0000:0000:0000:0001:0000:0000
Packit 0b51a0
 0000:0000:0000:0000:0000:0010:0000:0000
Packit 0b51a0
 0000:0000:0000:0000:0000:0100:0000:0000
Packit 0b51a0
 0000:0000:0000:0000:0000:1000:0000:0000
Packit 0b51a0
 0000:0000:0000:0000:0001:0000:0000:0000
Packit 0b51a0
 0000:0000:0000:0001:0000:0000:0000:0000
Packit 0b51a0
 0000:0000:0000:0010:0000:0000:0000:0000
Packit 0b51a0
 0000:0000:0000:0100:0000:0000:0000:0000
Packit 0b51a0
 0000:0000:0000:1000:0000:0000:0000:0000
Packit 0b51a0
 0000:0000:0001:0000:0000:0000:0000:0000
Packit 0b51a0
 0000:0001:0000:0000:0000:0000:0000:0000
Packit 0b51a0
 0000:0010:0000:0000:0000:0000:0000:0000
Packit 0b51a0
 0000:0100:0000:0000:0000:0000:0000:0000
Packit 0b51a0
 0000:1000:0000:0000:0000:0000:0000:0000
Packit 0b51a0
 0001:0000:0000:0000:0000:0000:0000:0000
Packit 0b51a0
 0010:0000:0000:0000:0000:0000:0000:0000
Packit 0b51a0
 0100:0000:0000:0000:0000:0000:0000:0000
Packit 0b51a0
 1000:0000:0000:0000:0000:0000:0000:0000
Packit 0b51a0
   );
Packit 0b51a0
Packit 0b51a0
my $tests = 4 * @pairs + @scale ** 2;
Packit 0b51a0
plan tests => $tests;
Packit 0b51a0
Packit 0b51a0
for my $p (@pairs)
Packit 0b51a0
{
Packit 0b51a0
    my $a = new NetAddr::IP::Lite $p->[0];
Packit 0b51a0
    isa_ok($a, 'NetAddr::IP::Lite', "$p->[0]");
Packit 0b51a0
    is($a->numeric, $p->[1], "$p->[0] Scalar numeric ok");
Packit 0b51a0
    is(($a->numeric)[0], $p->[1], "$p->[0] Array numeric ok for network");
Packit 0b51a0
    is(($a->numeric)[1], $p->[2], "$p->[0] Array numeric ok for mask");
Packit 0b51a0
}
Packit 0b51a0
Packit 0b51a0
@ip_scale = map { new NetAddr::IP::Lite $_ } @scale;
Packit 0b51a0
Packit 0b51a0
isa_ok($_, 'NetAddr::IP::Lite', $_->addr) for @ip_scale;
Packit 0b51a0
Packit 0b51a0
for my $i (0 .. $#ip_scale)
Packit 0b51a0
{
Packit 0b51a0
    for my $l (0 .. $i - 1)
Packit 0b51a0
    {
Packit 0b51a0
	next if $l >= $i;
Packit 0b51a0
	unless (ok($ip_scale[$i]->numeric > $ip_scale[$l]->numeric,
Packit 0b51a0
		   "[$i, $l] $scale[$i] > $scale[$l]"))
Packit 0b51a0
	{
Packit 0b51a0
	    diag "assertion [$i]: " . $ip_scale[$i]->numeric .
Packit 0b51a0
		" > " . $ip_scale[$l]->numeric;
Packit 0b51a0
	}
Packit 0b51a0
    }
Packit 0b51a0
Packit 0b51a0
    next if $i == $#ip_scale;
Packit 0b51a0
Packit 0b51a0
    for my $l ($i + 1 .. $#ip_scale)
Packit 0b51a0
    {
Packit 0b51a0
	next if $l <= $i;
Packit 0b51a0
	unless (ok($ip_scale[$i]->numeric < $ip_scale[$l]->numeric,
Packit 0b51a0
		   "[$i, $l] $scale[$i] < $scale[$l]"))
Packit 0b51a0
	{
Packit 0b51a0
	    diag "assertion [$i]: " . $ip_scale[$i]->numeric .
Packit 0b51a0
		" < " . $ip_scale[$l]->numeric;
Packit 0b51a0
	}
Packit 0b51a0
    }
Packit 0b51a0
}