From 816c112fcdf22e40bae460c78840a29447f2457f Mon Sep 17 00:00:00 2001
From: Bruce Wells <brucekwells@gmail.com>
Date: Sat, 12 Jan 2019 08:23:25 -0500
Subject: Fixed function parameter order (#42)

* 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
---
 tests/MathTest.php | 28 +++++++++++++++++-----------
 1 file changed, 17 insertions(+), 11 deletions(-)

(limited to 'tests')

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
     }
-- 
cgit v1.2.3