#!/usr/bin/perl -w use strict; use Test::More tests => 9; use operator_overload_break; # Workaround for # ok( not (expression) , "test description" ); # does not working in older versions of Perl, eg 5.004_04 sub ok_not ($;$) { my($test, $name) = @_; $test = not $test; ok($test, $name); } pass("loaded"); my $op = operator_overload_break::Op->new(5); isa_ok($op, "operator_overload_break::Op"); ok((2 == $op - 3), "subtraction"); $op->{k} = 37; ok((40 == $op + 3), "addition"); $op->{k} = 22; ok((10 == (32 - $op)), "reversed subtraction"); ok_not((3 == $op), 'not equal'); $op->{k} = 3; ++$op; ok(($op == 4), "pre-increment operator"); $op++; ok(($op == 5), "post-increment operator"); my $op2 = ++$op; $op2 = $op++; ok(($op == 7) and ($op2 == 7), "multiple post-increments");