Pastakhov has uploaded a new change for review.
https://gerrit.wikimedia.org/r/56906
Change subject: fix for math with union operator
......................................................................
fix for math with union operator
fix for test function testRun_echo_math_union()
echo 10 + 5 . 5 * 9 . 4 - 5 . 8;
Change-Id: I982a546cb8ebcdaf7e9ace216575f35366df5aff
---
M includes/Runtime.php
M tests/phpunit/includes/InterpreterTest.php
2 files changed, 24 insertions(+), 4 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Foxway
refs/changes/06/56906/1
diff --git a/includes/Runtime.php b/includes/Runtime.php
index b13ab6c..28061ec 100644
--- a/includes/Runtime.php
+++ b/includes/Runtime.php
@@ -48,17 +48,16 @@
}
public function addParam( $param ) {
+ \MWDebug::log( "function addParam( $param )" );
if( $this->lastOperator ) {
switch ( $this->lastOperator ) {
- case '.':
- $this->lastParam .= $param;
- break;
case '*':
$this->lastParam *= $param;
break;
case '/':
$this->lastParam /= $param;
break;
+ case '.':
case '+':
case '-':
$this->mathMemory =
array($this->lastParam, $this->lastOperator);
@@ -89,7 +88,8 @@
}
public function addOperator( $operator ) {
- if( $this->mathMemory && ($operator=='+'||$operator=='-') ){
+ \MWDebug::log( "function addOperator( $operator )" );
+ if( $this->mathMemory &&
($operator=='+'||$operator=='-'||$operator=='.') ){
if( $this->mathMemory[1] == '+' ) {
$this->lastParam = $this->mathMemory[0] +
$this->lastParam;
} elseif ( $this->mathMemory[1] == '-' ) {
@@ -100,6 +100,7 @@
$this->mathMemory = false;
}
$this->lastOperator = $operator;
+ \MWDebug::log( $this->lastParam );
}
public function getCommandResult( &$debug ) {
diff --git a/tests/phpunit/includes/InterpreterTest.php
b/tests/phpunit/includes/InterpreterTest.php
index e4226ce..74951d1 100644
--- a/tests/phpunit/includes/InterpreterTest.php
+++ b/tests/phpunit/includes/InterpreterTest.php
@@ -130,6 +130,10 @@
'55'
);
$this->assertEquals(
+ Interpreter::run('echo 5 + 5 + 10 + 20 - 50 -
5;'),
+ '-15'
+ );
+ $this->assertEquals(
Interpreter::run('echo 5 + 5 / 10 + 50/100;'),
'6'
);
@@ -159,4 +163,19 @@
"\$foo / \$bar = 100 / 5 = 20\n\n"
);
}
+
+ public function testRun_echo_math_union() {
+ $this->assertEquals(
+ Interpreter::run('echo 10 + 5 . 5;'),
+ '155'
+ );
+ $this->assertEquals(
+ Interpreter::run('echo 10 + 5 . 5 * 9;'),
+ '1545'
+ );
+ $this->assertEquals(
+ Interpreter::run('echo 10 + 5 . 5 * 9 . 4 - 5
. 8;'),
+ '154498'
+ );
+ }
}
--
To view, visit https://gerrit.wikimedia.org/r/56906
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I982a546cb8ebcdaf7e9ace216575f35366df5aff
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Foxway
Gerrit-Branch: master
Gerrit-Owner: Pastakhov <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits