Fixes exponentiation operator
This commit is contained in:
parent
1086fccc92
commit
8d602b30dd
5 changed files with 20 additions and 3 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,2 +1,3 @@
|
|||
vendor/
|
||||
.idea/
|
||||
composer.lock
|
1
bin/phpunit
Symbolic link
1
bin/phpunit
Symbolic link
|
@ -0,0 +1 @@
|
|||
../vendor/phpunit/phpunit/phpunit
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue