#use diagnostics;
use NetAddr::IP::Lite;
$| = 1;
print "1..21\n";
my $test = 1;
sub ok() {
print 'ok ',$test++,"\n";
}
my $four = new NetAddr::IP::Lite('::4');
$four->{val} = 4;
my $five = new NetAddr::IP::Lite('::5');
$five->{val} = 5;
my @t = (
# arg1 arg2 < <= == >= > <=> cmp
$four, $four, 0, 1, 1, 1, 0, 0, 0,
$four, $five, 1, 1, 0, 0, 0, -1, -1,
$five, $four, 0, 0, 0, 1, 1, 1, 1,
);
for (my $i = 0; $i< @t; $i+=9) {
## test '=' overloaded here
my $arg1 = $t[$i];
my $arg2 = $t[$i+1];
my ($lt,$le,$eq,$ge,$gt,$nc,$cmp) = @t[$i+2,$i+3,$i+4,$i+5,$i+6,$i+7,$i+8];
## test '<'
print "failed $arg1->{val} < $arg2->{val}, got: $_, exp: $lt\nnot "
unless ($_ = ($arg1 < $arg2)) == $lt;
&ok;
## test '<='
print "failed $arg1->{val} <= $arg2->{val}, got: $_, exp: $le\nnot "
unless ($_ = ($arg1 <= $arg2)) == $le;
&ok;
## test '=='
print "failed $arg1->{val} == $arg2->{val}, got: $_, exp: $eq\nnot "
unless ($_ = ($arg1 == $arg2)) == $eq;
&ok;
## test '>='
print "failed $arg1->{val} >= $arg2->{val}, got: $_, exp: $ge\nnot "
unless ($_ = ($arg1 >= $arg2)) == $ge;
&ok;
## test '>'
print "failed $arg1->{val} > $arg2->{val}, got: $_, exp: $gt\nnot "
unless ($_ = ($arg1 > $arg2)) == $gt;
&ok;
## test '<=>'
print "failed $arg1->{val} <=> $arg2->{val}, got: $_, exp: $nc\nnot "
unless ($_ = ($arg1 <=> $arg2)) == $nc;
&ok;
## test 'cmp'
print "failed $arg1->{val} cmp $arg2->{val}, got: $_, exp: $cmp\nnot "
unless ($_ = ($arg1 cmp $arg2)) == $cmp;
&ok;
}