aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBruce Wells <brucekwells@gmail.com>2019-01-12 16:23:25 +0300
committerAlexander Kiryukhin <alexander@kiryukhin.su>2019-01-12 16:23:25 +0300
commit816c112fcdf22e40bae460c78840a29447f2457f (patch)
tree190b74be3dbbf1e8fba00ac4885c08555b0d5dce /tests
parent92445b50835cb68aa98cb92f1422695cae8c7343 (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.php28
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
}