diff options
author | Bruce Wells <brucekwells@gmail.com> | 2019-01-12 16:23:25 +0300 |
---|---|---|
committer | Alexander Kiryukhin <alexander@kiryukhin.su> | 2019-01-12 16:23:25 +0300 |
commit | 816c112fcdf22e40bae460c78840a29447f2457f (patch) | |
tree | 190b74be3dbbf1e8fba00ac4885c08555b0d5dce /tests | |
parent | 92445b50835cb68aa98cb92f1422695cae8c7343 (diff) |
Fixed function parameter order (#42)v0.7.1
* Fixed parsing for ()
* sync (#5)
* Documentation fixes (#34)
Fixing typos in and clarifying documentation.
* MathExecutor allow override default operators, functions and vars (#36)
* Added simple coc (#37)
* Added simple coc
* Fix
* Replaceable operators (#38)
* Updated from NeonXP/MathExecutor
* Fixed function in () block issue
* Fixing typos in and clarifying documentation.
* Syncing from origin (#3)
* Documentation fixes (#34)
Fixing typos in and clarifying documentation.
* MathExecutor allow override default operators, functions and vars (#36)
* Allow for operators to be replaced based on regex expression
* Fix md typo (#39)
* Updated from NeonXP/MathExecutor
* Fixed function in () block issue
* Fixing typos in and clarifying documentation.
* Syncing from origin (#3)
* Documentation fixes (#34)
Fixing typos in and clarifying documentation.
* MathExecutor allow override default operators, functions and vars (#36)
* Syncing to origin (#4)
* Documentation fixes (#34)
Fixing typos in and clarifying documentation.
* MathExecutor allow override default operators, functions and vars (#36)
* Added simple coc (#37)
* Added simple coc
* Fix
* Replaceable operators (#38)
* Updated from NeonXP/MathExecutor
* Fixed function in () block issue
* Fixing typos in and clarifying documentation.
* Syncing from origin (#3)
* Documentation fixes (#34)
Fixing typos in and clarifying documentation.
* MathExecutor allow override default operators, functions and vars (#36)
* Allow for operators to be replaced based on regex expression
* \\ instead of \
* Update README.md
Some small fixes
* Fix single quotes parsing (#41)
* Fix single quotes parsing
Fix e-mails
Some small fixes
* Mistake in test
* More PHP versions
* Update README.md
Deleted `dev` branch
* Fixed function parameter order
Corrected $places default value for addFunction to match TokenFactory
Added function order test and put expected order first in assertEquals
If else blocks in calculator
Updated docs
Diffstat (limited to 'tests')
-rw-r--r-- | tests/MathTest.php | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/tests/MathTest.php b/tests/MathTest.php index 55e0799..8eb7827 100644 --- a/tests/MathTest.php +++ b/tests/MathTest.php @@ -32,7 +32,7 @@ class MathTest extends \PHPUnit_Framework_TestCase /** @var float $phpResult */ eval('$phpResult = ' . $expression . ';'); - $this->assertEquals($calculator->execute($expression), $phpResult, "Expression was: ${expression}"); + $this->assertEquals($phpResult, $calculator->execute($expression), "Expression was: ${expression}"); } /** @@ -117,7 +117,7 @@ class MathTest extends \PHPUnit_Framework_TestCase public function testZeroDivision() { $calculator = new MathExecutor(); - $this->assertEquals($calculator->execute('10 / 0'), 0); + $this->assertEquals(0, $calculator->execute('10 / 0')); } public function testZeroDivisionException() @@ -131,19 +131,25 @@ class MathTest extends \PHPUnit_Framework_TestCase public function testExponentiation() { $calculator = new MathExecutor(); - $this->assertEquals($calculator->execute('10 ^ 2'), 100); + $this->assertEquals(100, $calculator->execute('10 ^ 2')); } + public function testFunctionParameterOrder() + { + $calculator = new MathExecutor(); + + $calculator->addFunction('concat', function ($arg1, $arg2) {return $arg1.$arg2;}); + $this->assertEquals('testing', $calculator->execute('concat("test","ing")')); + $this->assertEquals('testing', $calculator->execute("concat('test','ing')")); + } + public function testFunction() { $calculator = new MathExecutor(); - - $calculator->addFunction('round', function ($arg) { - return round($arg); - }, 1); + $calculator->addFunction('round', function ($arg) {return round($arg);}); /** @var float $phpResult */ eval('$phpResult = round(100/30);'); - $this->assertEquals($calculator->execute('round(100/30)'), $phpResult); + $this->assertEquals($phpResult, $calculator->execute('round(100/30)')); } public function testQuotes() @@ -151,9 +157,9 @@ class MathTest extends \PHPUnit_Framework_TestCase $calculator = new MathExecutor(); $testString = "some, long. arg; with: different-separators!"; $calculator->addFunction('test', function ($arg) use ($testString) { - $this->assertEquals($arg, $testString); - return 0; - }, 1); + $this->assertEquals($testString, $arg); + return 0;} + ); $calculator->execute('test("' . $testString . '")'); // single quotes $calculator->execute("test('" . $testString . "')"); // double quotes } |