aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/MathTest.php51
-rw-r--r--tests/bootstrap.php11
2 files changed, 62 insertions, 0 deletions
diff --git a/tests/MathTest.php b/tests/MathTest.php
new file mode 100644
index 0000000..ba944fe
--- /dev/null
+++ b/tests/MathTest.php
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * This file is part of the MathExecutor package
+ *
+ * (c) Alexander Kiryukhin
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code
+ */
+
+namespace NXP\Tests;
+
+use \NXP\MathExecutor;
+
+class MathTest extends \PHPUnit_Framework_TestCase
+{
+ /**
+ * @dataProvider providerExpressions
+ */
+ public function testCalculating($expression)
+ {
+ $calculator = new MathExecutor();
+
+ /** @var float $phpResult */
+ eval('$phpResult = ' . $expression . ';');
+ $this->assertEquals($calculator->execute($expression), $phpResult);
+ }
+
+ /**
+ * Expressions data provider
+ */
+ public function providerExpressions()
+ {
+ return array(
+ array('0.1 + 0.2'),
+ array('1 + 2'),
+
+ array('0.1 - 0.2'),
+ array('1 - 2'),
+
+ array('0.1 * 2'),
+ array('1 * 2'),
+
+ array('0.1 / 0.2'),
+ array('1 / 2'),
+
+ array('1 + 0.6 - (3 * 2 / 50)')
+ );
+ }
+} \ No newline at end of file
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
new file mode 100644
index 0000000..8eb3e7a
--- /dev/null
+++ b/tests/bootstrap.php
@@ -0,0 +1,11 @@
+<?php
+
+$vendorDir = __DIR__ . '/../../..';
+
+if (file_exists($file = $vendorDir . '/autoload.php')) {
+ require_once $file;
+} else if (file_exists($file = './vendor/autoload.php')) {
+ require_once $file;
+} else {
+ throw new \RuntimeException("Not found composer autoload");
+} \ No newline at end of file