Ver código fonte

quad resolution

Yannick Guern (RMN) 6 anos atrás
pai
commit
a85a862035
5 arquivos alterados com 1502 adições e 0 exclusões
  1. 4 0
      .gitignore
  2. 13 0
      composer.json
  3. 1423 0
      composer.lock
  4. 39 0
      src/Quadratic.php
  5. 23 0
      tests/QuadraticTest.php

+ 4 - 0
.gitignore

@@ -0,0 +1,4 @@
+# Created by .ignore support plugin (hsz.mobi)
+.idea
+composer.phar
+vendor

+ 13 - 0
composer.json

@@ -0,0 +1,13 @@
+{
+    "name": "medieval-inc/quadratic",
+    "type": "library",
+    "require": {},
+    "require-dev": {
+        "phpunit/phpunit": "^7.3"
+    },
+    "autoload": {
+        "psr-4": {
+            "MedievalInc\\Quadratic\\" : "src/"
+        }
+    }
+}

Diferenças do arquivo suprimidas por serem muito extensas
+ 1423 - 0
composer.lock


+ 39 - 0
src/Quadratic.php

@@ -0,0 +1,39 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Noa
+ * Date: 10/08/2018
+ * Time: 09:54
+ */
+
+namespace MedievalInc\Quadratic;
+
+
+class Quadratic
+{
+    public function __construct()
+    {
+
+    }
+
+    /**
+     * @param float $a
+     * @param float $b
+     * @param float $c
+     * @return array
+     */
+    public function solve(float $a, float $b, float $c) : array {
+
+        $delta = $b*$b - 4*$a*$c;
+
+        if ($delta > 0) {
+
+            $x1 = (-$b - sqrt($delta)) / (2*$a);
+            $x2 = (-$b + sqrt($delta)) / (2*$a);
+
+            return [$x1, $x2];
+        }
+
+        return [];
+    }
+}

+ 23 - 0
tests/QuadraticTest.php

@@ -0,0 +1,23 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Noa
+ * Date: 10/08/2018
+ * Time: 10:00
+ */
+
+namespace MedievalInc\Quadratic;
+
+
+use PHPUnit\Framework\TestCase;
+
+class QuadraticTest extends TestCase
+{
+
+    public function testSolve()
+    {
+        $quad = new Quadratic();
+        $this->assertEquals([-3, 0.5], $quad->solve(2, 5, -3));
+        $this->assertEquals([], $quad->solve(2, 5, 12));
+    }
+}