Yaffs site version 1.1
[yaffs-website] / vendor / sebastian / diff / src / LCS / MemoryEfficientLongestCommonSubsequenceImplementation.php
index b990dc03c78a1a27d12744a2dd6e26e895e75659..c1b3121826a283a21a02e7366fd1886565422606 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
- * This file is part of the Diff package.
+ * This file is part of sebastian/diff.
  *
  * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
@@ -25,43 +25,45 @@ class MemoryEfficientImplementation implements LongestCommonSubsequence
      */
     public function calculate(array $from, array $to)
     {
-        $cFrom = count($from);
-        $cTo   = count($to);
+        $cFrom = \count($from);
+        $cTo   = \count($to);
 
-        if ($cFrom == 0) {
+        if ($cFrom === 0) {
             return array();
-        } elseif ($cFrom == 1) {
-            if (in_array($from[0], $to)) {
+        }
+
+        if ($cFrom === 1) {
+            if (\in_array($from[0], $to, true)) {
                 return array($from[0]);
-            } else {
-                return array();
             }
-        } else {
-            $i         = intval($cFrom / 2);
-            $fromStart = array_slice($from, 0, $i);
-            $fromEnd   = array_slice($from, $i);
-            $llB       = $this->length($fromStart, $to);
-            $llE       = $this->length(array_reverse($fromEnd), array_reverse($to));
-            $jMax      = 0;
-            $max       = 0;
 
-            for ($j = 0; $j <= $cTo; $j++) {
-                $m = $llB[$j] + $llE[$cTo - $j];
+            return array();
+        }
 
-                if ($m >= $max) {
-                    $max  = $m;
-                    $jMax = $j;
-                }
-            }
+        $i         = (int) ($cFrom / 2);
+        $fromStart = \array_slice($from, 0, $i);
+        $fromEnd   = \array_slice($from, $i);
+        $llB       = $this->length($fromStart, $to);
+        $llE       = $this->length(\array_reverse($fromEnd), \array_reverse($to));
+        $jMax      = 0;
+        $max       = 0;
 
-            $toStart = array_slice($to, 0, $jMax);
-            $toEnd   = array_slice($to, $jMax);
+        for ($j = 0; $j <= $cTo; $j++) {
+            $m = $llB[$j] + $llE[$cTo - $j];
 
-            return array_merge(
-                $this->calculate($fromStart, $toStart),
-                $this->calculate($fromEnd, $toEnd)
-            );
+            if ($m >= $max) {
+                $max  = $m;
+                $jMax = $j;
+            }
         }
+
+        $toStart = \array_slice($to, 0, $jMax);
+        $toEnd   = \array_slice($to, $jMax);
+
+        return \array_merge(
+            $this->calculate($fromStart, $toStart),
+            $this->calculate($fromEnd, $toEnd)
+        );
     }
 
     /**
@@ -72,18 +74,18 @@ class MemoryEfficientImplementation implements LongestCommonSubsequence
      */
     private function length(array $from, array $to)
     {
-        $current = array_fill(0, count($to) + 1, 0);
-        $cFrom   = count($from);
-        $cTo     = count($to);
+        $current = \array_fill(0, \count($to) + 1, 0);
+        $cFrom   = \count($from);
+        $cTo     = \count($to);
 
         for ($i = 0; $i < $cFrom; $i++) {
             $prev = $current;
 
             for ($j = 0; $j < $cTo; $j++) {
-                if ($from[$i] == $to[$j]) {
+                if ($from[$i] === $to[$j]) {
                     $current[$j + 1] = $prev[$j] + 1;
                 } else {
-                    $current[$j + 1] = max($current[$j], $prev[$j + 1]);
+                    $current[$j + 1] = \max($current[$j], $prev[$j + 1]);
                 }
             }
         }