Newer
Older
NetAddr-IP / Lite / t / over_comp.t
  1.  
  2. #use diagnostics;
  3. use NetAddr::IP::Lite;
  4.  
  5. $| = 1;
  6.  
  7. print "1..21\n";
  8.  
  9. my $test = 1;
  10. sub ok() {
  11. print 'ok ',$test++,"\n";
  12. }
  13.  
  14. my $four = new NetAddr::IP::Lite('::4');
  15. $four->{val} = 4;
  16. my $five = new NetAddr::IP::Lite('::5');
  17. $five->{val} = 5;
  18. my @t = (
  19. # arg1 arg2 < <= == >= > <=> cmp
  20. $four, $four, 0, 1, 1, 1, 0, 0, 0,
  21. $four, $five, 1, 1, 0, 0, 0, -1, -1,
  22. $five, $four, 0, 0, 0, 1, 1, 1, 1,
  23. );
  24.  
  25. for (my $i = 0; $i< @t; $i+=9) {
  26. ## test '=' overloaded here
  27. my $arg1 = $t[$i];
  28. my $arg2 = $t[$i+1];
  29. my ($lt,$le,$eq,$ge,$gt,$nc,$cmp) = @t[$i+2,$i+3,$i+4,$i+5,$i+6,$i+7,$i+8];
  30.  
  31. ## test '<'
  32. print "failed $arg1->{val} < $arg2->{val}, got: $_, exp: $lt\nnot "
  33. unless ($_ = ($arg1 < $arg2)) == $lt;
  34. &ok;
  35.  
  36. ## test '<='
  37. print "failed $arg1->{val} <= $arg2->{val}, got: $_, exp: $le\nnot "
  38. unless ($_ = ($arg1 <= $arg2)) == $le;
  39. &ok;
  40.  
  41. ## test '=='
  42. print "failed $arg1->{val} == $arg2->{val}, got: $_, exp: $eq\nnot "
  43. unless ($_ = ($arg1 == $arg2)) == $eq;
  44. &ok;
  45.  
  46. ## test '>='
  47. print "failed $arg1->{val} >= $arg2->{val}, got: $_, exp: $ge\nnot "
  48. unless ($_ = ($arg1 >= $arg2)) == $ge;
  49. &ok;
  50.  
  51. ## test '>'
  52. print "failed $arg1->{val} > $arg2->{val}, got: $_, exp: $gt\nnot "
  53. unless ($_ = ($arg1 > $arg2)) == $gt;
  54. &ok;
  55.  
  56. ## test '<=>'
  57. print "failed $arg1->{val} <=> $arg2->{val}, got: $_, exp: $nc\nnot "
  58. unless ($_ = ($arg1 <=> $arg2)) == $nc;
  59. &ok;
  60.  
  61. ## test 'cmp'
  62. print "failed $arg1->{val} cmp $arg2->{val}, got: $_, exp: $cmp\nnot "
  63. unless ($_ = ($arg1 cmp $arg2)) == $cmp;
  64. &ok;
  65. }
  66.