summaryrefslogtreecommitdiffstats
path: root/Aufgabe6/RPN/t/RPN.t
diff options
context:
space:
mode:
authorStefan Suhren <suhren.stefan@fh-swf.de>2015-12-17 18:17:50 +0100
committerStefan Suhren <suhren.stefan@fh-swf.de>2015-12-17 20:42:10 +0100
commitdea6d8f003e67deaeeb1ab32de392dc55aedb9c6 (patch)
tree13a8eb0617b060c4f0b58e97ba931c45f7a13f41 /Aufgabe6/RPN/t/RPN.t
parent3b05b110c7af055cfecc1621c18bf829132ed526 (diff)
downloadSkriptsprachen-dea6d8f003e67deaeeb1ab32de392dc55aedb9c6.tar.gz
Skriptsprachen-dea6d8f003e67deaeeb1ab32de392dc55aedb9c6.zip
Add given tests
Diffstat (limited to 'Aufgabe6/RPN/t/RPN.t')
-rw-r--r--Aufgabe6/RPN/t/RPN.t116
1 files changed, 115 insertions, 1 deletions
diff --git a/Aufgabe6/RPN/t/RPN.t b/Aufgabe6/RPN/t/RPN.t
index a9b78d5..d14cd1b 100644
--- a/Aufgabe6/RPN/t/RPN.t
+++ b/Aufgabe6/RPN/t/RPN.t
@@ -11,7 +11,7 @@ use warnings;
# Include RPN for testing
use RPN;
-use Test::More tests => 2;
+use Test::More tests => 18;
BEGIN { use_ok('RPN') };
#########################
@@ -23,8 +23,122 @@ my $expression;
my $expect;
my $result;
+# Test 2
$expression = 42;
$expect = 42;
$result = RPN::rpn($expression);
is ($result, $expect, 'Test 2');
+
+# Test 3
+$expression = "5 3 + 8 3 - * 2 / 3 %";
+$expect = 2;
+$result = RPN::rpn($expression);
+
+is ($result, $expect, 'Test 3');
+
+# Test 4
+$expression = "5 ++ ++ ++ ++ ++";
+$expect = 10;
+$result = RPN::rpn($expression);
+
+is ($result, $expect, 'Test 4');
+
+# Test 5
+$expression = "10 -- -- -- -- --";
+$expect = 5;
+$result = RPN::rpn($expression);
+
+is ($result, $expect, 'Test 5');
+
+# Test 6
+$expression = "-5 ABS";
+$expect = 5;
+$result = RPN::rpn($expression);
+
+is ($result, $expect, 'Test 6');
+
+# Test 7
+$expression = "2.33242123 3.123123142312 + INT";
+$expect = 5;
+$result = RPN::rpn($expression);
+
+is ($result, $expect, 'Test 7');
+
+# Test 8
+$expression = "PI INT";
+$expect = 3;
+$result = RPN::rpn($expression);
+
+is ($result, $expect, 'Test 8');
+
+# Test 9
+$expression = "100 LOG EXP";
+$expect = 100;
+$result = RPN::rpn($expression);
+
+is ($result, $expect, 'Test 9');
+
+# Test 10
+$expression = "2 12 POW SQRT";
+$expect = 64;
+$result = RPN::rpn($expression);
+
+is ($result, $expect, 'Test 10');
+
+# Test 11
+$expression = "1.1 SIN DUP * 1.1 COS DUP * + ROUND";
+$expect = 1;
+$result = RPN::rpn($expression);
+
+is ($result, $expect, 'Test 11');
+
+# Test 12
+$expression = ".11 SIN .11 COS / .11 TAN - ROUND";
+$expect = 0;
+$result = RPN::rpn($expression);
+
+is ($result, $expect, 'Test 12');
+
+# Test 13
+$expression = ".11 SIN .11 COS ATAN2 .11 - ROUND";
+$expect = 0;
+$result = RPN::rpn($expression);
+
+is ($result, $expect, 'Test 13');
+
+# Test 14
+$expression = "6 18 EXCH / DUP 5 MAX * DUP 3 / EXCH POP DUP 3 * MAX";
+$expect = 15;
+$result = RPN::rpn($expression);
+
+is ($result, $expect, 'Test 14');
+
+# Test 15
+$expression = "20 10 MIN 7 MIN 30 MIN";
+$expect = 7;
+$result = RPN::rpn($expression);
+
+is ($result, $expect, 'Test 15');
+
+# Test 16
+$expression = "20 10 MAX 7 MAX 30 MAX";
+$expect = 30;
+$result = RPN::rpn($expression);
+
+is ($result, $expect, 'Test 16');
+
+# Test 17
+$expression = "PI SIN ROUND";
+$expect = 0;
+$result = RPN::rpn($expression);
+
+is ($result, $expect, 'Test 17');
+
+# Test 18
+$expression = "PI COS 1 + ROUND";
+$expect = 0;
+$result = RPN::rpn($expression);
+
+is ($result, $expect, 'Test 18');
+