#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; }