PageRenderTime 40ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/trunk/Examples/test-suite/perl5/operator_overload_break_runme.pl

#
Perl | 55 lines | 32 code | 19 blank | 4 comment | 8 complexity | eb51c76bac09fe4fb29c6fed00617677 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. #!/usr/bin/perl -w
  2. use strict;
  3. use Test::More tests => 9;
  4. use operator_overload_break;
  5. # Workaround for
  6. # ok( not (expression) , "test description" );
  7. # does not working in older versions of Perl, eg 5.004_04
  8. sub ok_not ($;$) {
  9. my($test, $name) = @_;
  10. $test = not $test;
  11. ok($test, $name);
  12. }
  13. pass("loaded");
  14. my $op = operator_overload_break::Op->new(5);
  15. isa_ok($op, "operator_overload_break::Op");
  16. ok((2 == $op - 3),
  17. "subtraction");
  18. $op->{k} = 37;
  19. ok((40 == $op + 3),
  20. "addition");
  21. $op->{k} = 22;
  22. ok((10 == (32 - $op)),
  23. "reversed subtraction");
  24. ok_not((3 == $op),
  25. 'not equal');
  26. $op->{k} = 3;
  27. ++$op;
  28. ok(($op == 4),
  29. "pre-increment operator");
  30. $op++;
  31. ok(($op == 5),
  32. "post-increment operator");
  33. my $op2 = ++$op;
  34. $op2 = $op++;
  35. ok(($op == 7) and ($op2 == 7),
  36. "multiple post-increments");