Acme-AlgebraicToRPN
view release on metacpan or search on metacpan
t/01-test.t view on Meta::CPAN
1819202122232425262728293031323334353637383940414243test(
'sin(3)'
,
qw(3 sin)
);
test(
'sin(pi/2)'
,
qw(pi 2 divide sin)
);
test(
'-sin(pi/2)'
,
qw(pi 2 divide sin negate)
);
test(
'-sin(pi+3/2)'
,
qw(pi 3 2 divide add sin negate)
);
test(
'news(hammer)'
,
qw(hammer 1 news)
);
test(
'1+3^x'
,
qw(1 3 x exponentiate add)
);
test(
'-3-3*x'
,
qw(3 negate 3 x multiply subtract)
);
test(
'sqrt(4)'
,
qw(4 0.5 exponentiate)
);
$expr
=
'2*news(a)/2+pi'
;
test(
'-sin(box(a,20))'
,
qw(a 20 2 box sin negate)
);
test(
'log(a)'
,
qw(a log)
);
test(
'atan2(a,b)'
,
qw(a b atan2)
);
test(
'a^b'
,
qw(a b exponentiate)
);
test(
'a^b3'
,
qw(a b3 exponentiate)
);
test(
'a^-1'
,
qw(a 1 negate exponentiate)
);
test(
'sin(pi/3)*2/log(2,1.3)'
,
qw(pi 3 divide sin 2 multiply 2 1.3 log divide)
);
test(
'4*foo(a,3)'
,
qw(4 a 3 2 foo multiply)
);
test(
'4*foo(a,3,55)'
,
qw(4 a 3 55 3 foo multiply)
);
STDERR
"Shouldn't parse due to 'boo' function, which we don't know\n"
;
ok(!
defined
(
$rpn
->rpn(
'4*boo(a,3,55)'
)));
#print $rpn->rpn_as_string($expr), "\n";
sub
test {
my
(
$expr
,
@desired
) =
@_
;
STDERR
"rpn = $expr... "
;
my
@r
=
$rpn
->rpn(
$expr
);
( run in 0.243 second using v1.01-cache-2.11-cpan-3cd7ad12f66 )