]> git.andy128k.dev Git - missing-tools.git/commitdiff
collection inits utility
authorAndrey Kutejko <andy128k@gmail.com>
Fri, 2 Jan 2015 16:03:15 +0000 (18:03 +0200)
committerAndrey Kutejko <andy128k@gmail.com>
Fri, 2 Jan 2015 16:03:15 +0000 (18:03 +0200)
src/collection.php
t/CollectionTest.php

index d9b39ae10dd5a6d670bd5f2e66559117d833a71c..11b31e14af02ff546d13382b4f8aaf80ceec04fa 100644 (file)
@@ -91,5 +91,19 @@ final class Collection
         }
         return $groups;
     }
+
+    public static function inits($collection)
+    {
+        $result = array();
+        $init = array();
+
+        $result[] = $init;
+        foreach ($collection as $item) {
+            $init = array_merge($init, array($item));
+            $result[] = $init;
+        }
+
+        return $result;
+    }
 }
 
index a1c505e3294a6da6e77f9ffdb94cb83a13b5ca7a..24db6271f24258a395bb468a6be32cd1cd7e9017 100644 (file)
@@ -58,5 +58,20 @@ class CollectionTest extends PHPUnit_Framework_TestCase
         $this->assertEquals(2, count($groups['red']));
         $this->assertEquals(2, count($groups['green']));
     }
+
+    public function testInits()
+    {
+        $this->assertEquals(array(array()),
+            \PFF\Collection::inits(array()));
+
+        $this->assertEquals(array(array(), array('1')),
+            \PFF\Collection::inits(array('1')));
+
+        $this->assertEquals(array(array(), array('1'), array('1', 2)),
+            \PFF\Collection::inits(array('1', 2)));
+
+        $this->assertEquals(array(array(), array(1), array(1, '2'), array(1, '2', 3)),
+            \PFF\Collection::inits(array(1, '2', 3)));
+    }
 }