1#!/usr/bin/perl -w
2use strict;
3use Test::More tests => 9;
4
5use operator_overload_break;
6
7# Workaround for
8#   ok( not (expression) , "test description" );
9# does not working in older versions of Perl, eg 5.004_04
10sub ok_not ($;$) {
11    my($test, $name) = @_;
12    $test = not $test;
13    ok($test, $name);
14}
15
16pass("loaded");
17
18my $op = operator_overload_break::Op->new(5);
19
20isa_ok($op, "operator_overload_break::Op");
21
22ok((2 == $op - 3),
23   "subtraction");
24
25$op->{k} = 37;
26
27ok((40 == $op + 3),
28   "addition");
29
30$op->{k} = 22;
31
32ok((10 == (32 - $op)),
33   "reversed subtraction");
34
35ok_not((3 == $op),
36       'not equal');
37
38$op->{k} = 3;
39
40++$op;
41
42ok(($op == 4),
43   "pre-increment operator");
44
45$op++;
46
47ok(($op == 5),
48   "post-increment operator");
49
50my $op2 = ++$op;
51
52$op2 = $op++;
53
54ok(($op == 7) and ($op2 == 7),
55   "multiple post-increments");
56