3 # This file is part of Language::Befunge.
4 # Copyright (c) 2001-2008 Jerome Quelin, all rights reserved.
6 # This program is free software; you can redistribute it and/or modify
7 # it under the same terms as Perl itself.
11 use Language::Befunge::Ops;
16 use Language::Befunge::Interpreter;
17 use Language::Befunge::IP;
18 use Language::Befunge::Ops;
20 use Test::More tests => 4;
25 $lbi = Language::Befunge::Interpreter->new;
26 $ip = Language::Befunge::IP->new;
27 $lbi->set_curip( $ip );
29 $ip->spush( 21, 42, 63 );
30 Language::Befunge::Ops::math_substraction( $lbi );
31 is( $ip->spop, -21, 'math_substraction pushes new value' );
32 is( $ip->spop, 21, 'math_substraction pops only two values' );
35 $ip->spush( 2**31-2, -3 );
36 throws_ok( sub { Language::Befunge::Ops::math_substraction($lbi) },
37 qr/overflow/, 'math_substraction barfs on overflow' );
40 $ip->spush( -2**31+2, 3 );
41 throws_ok( sub { Language::Befunge::Ops::math_substraction($lbi) },
42 qr/under/, 'math_substraction barfs on underflow' );