From f6750c9c3c944827462f28ceb3db6284458412cb Mon Sep 17 00:00:00 2001 From: Bruce Wells Date: Wed, 27 Sep 2023 16:28:28 -0400 Subject: [PATCH] Improved tests for ! operator (#131) --- tests/MathTest.php | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/MathTest.php b/tests/MathTest.php index 8c22224..bf33793 100644 --- a/tests/MathTest.php +++ b/tests/MathTest.php @@ -256,8 +256,15 @@ class MathTest extends TestCase ['7 % 4'], ['99 % 4'], ['123 % 7'], + ['!(1||0)'], ['!(1&&0)'], + ['!(1)'], + ['!(0)'], + ['! 1'], + ['! 0'], + ['!1'], + ['!0'], ]; } @@ -495,8 +502,15 @@ class MathTest extends TestCase ['7 % 4'], ['99 % 4'], ['123 % 7'], + ['!(1||0)'], ['!(1&&0)'], + ['!(1)'], + ['!(0)'], + ['! 1'], + ['! 0'], + ['!1'], + ['!0'], ]; } @@ -582,6 +596,21 @@ class MathTest extends TestCase $this->assertEquals(0.0, $calculator->execute('$ + $four')); } + public function testNotVariableOperator() : void + { + $calculator = new MathExecutor(); + $calculator->setVar('one', 1); + $calculator->setVar('zero', 0); + $this->assertEquals(false, $calculator->execute('! $one')); + $this->assertEquals(false, $calculator->execute('!$one')); + $this->assertEquals(false, $calculator->execute('! ($one)')); + $this->assertEquals(false, $calculator->execute('!($one)')); + $this->assertEquals(true, $calculator->execute('! $zero')); + $this->assertEquals(true, $calculator->execute('!$zero')); + $this->assertEquals(true, $calculator->execute('! ($zero)')); + $this->assertEquals(true, $calculator->execute('!($zero)')); + } + public function testExponentiation() : void { $calculator = new MathExecutor();