From 8d602b30dd9bf9e1b926c0d732c2ff3fe7b6644a Mon Sep 17 00:00:00 2001 From: ochi51 Date: Tue, 12 Sep 2017 20:54:51 +0900 Subject: [PATCH] Fixes exponentiation operator --- .gitignore | 3 ++- bin/phpunit | 1 + composer.json | 9 +++++++++ src/NXP/Classes/Token/TokenDegree.php | 4 ++-- tests/MathTest.php | 6 ++++++ 5 files changed, 20 insertions(+), 3 deletions(-) create mode 120000 bin/phpunit diff --git a/.gitignore b/.gitignore index 9f33dd5..83436db 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ vendor/ -.idea/ \ No newline at end of file +.idea/ +composer.lock \ No newline at end of file diff --git a/bin/phpunit b/bin/phpunit new file mode 120000 index 0000000..4ba3256 --- /dev/null +++ b/bin/phpunit @@ -0,0 +1 @@ +../vendor/phpunit/phpunit/phpunit \ No newline at end of file diff --git a/composer.json b/composer.json index a32dc52..dc35c2f 100644 --- a/composer.json +++ b/composer.json @@ -11,7 +11,16 @@ "email": "frei@neonxp.info" } ], + "require": { + "php": ">=5.6" + }, + "require-dev": { + "phpunit/phpunit": "~5.0" + }, "autoload": { "psr-0": {"NXP": "src/"} + }, + "config": { + "bin-dir": "bin" } } diff --git a/src/NXP/Classes/Token/TokenDegree.php b/src/NXP/Classes/Token/TokenDegree.php index 8488dcd..c31b66e 100644 --- a/src/NXP/Classes/Token/TokenDegree.php +++ b/src/NXP/Classes/Token/TokenDegree.php @@ -41,13 +41,13 @@ class TokenDegree extends AbstractOperator /** * @param InterfaceToken[] $stack - * @return $this + * @return TokenNumber */ public function execute(&$stack) { $op2 = array_pop($stack); $op1 = array_pop($stack); - $result = $op1->getValue() ^ $op2->getValue(); + $result = $op1->getValue() ** $op2->getValue(); return new TokenNumber($result); } diff --git a/tests/MathTest.php b/tests/MathTest.php index f8a271e..a83a0d4 100644 --- a/tests/MathTest.php +++ b/tests/MathTest.php @@ -33,6 +33,12 @@ class MathTest extends \PHPUnit_Framework_TestCase $this->assertEquals($calculator->execute('1 / 0'), 0); } + public function testExponentiation() + { + $calculator = new MathExecutor(); + $this->assertEquals($calculator->execute('10 ^ 2'), 100); + } + /** * Expressions data provider */