コード例 #1
0
ファイル: pramda.php プロジェクト: kapolos/pramda
 public function testFlatten()
 {
     $nestedList = [1, 2, [3, 4], 5, [6, [7, 8, [9, [10, 11], 12]]]];
     $flattened = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
     $this->assertEquals($flattened, P::toArray(P::flatten($nestedList)));
     $nestedList = [1, [2], [3, [4, 5], 6, [[[7], 8]]], 9, 10];
     $flattened = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
     $this->assertEquals($flattened, P::toArray(P::flatten($nestedList)));
     $nestedList = [1, [2], [3, [4, 5], 6, [[[7], 8]]], 9, 10];
     $flattened = [1, [2], [3, [4, 5], 6, [[[7], 8]]], 9, 10];
     $this->assertNotEquals($flattened, P::toArray(P::flatten($nestedList)));
     $nestedList = [[], [], []];
     $flattened = [];
     $this->assertEquals($flattened, P::toArray(P::flatten($nestedList)));
     $assoc = ['a' => 'b', 'c' => ['d' => 'e'], 'f' => ['g' => 'h', 'i' => ['j' => 'k']], 'l' => ['m' => ['n' => ['o' => ['p' => 'q']]]]];
     $a = function () {
         (yield [1, [2, 3]]);
         (yield 4);
         (yield [5]);
     };
     $this->assertEquals([1, 2, 3, 4, 5], P::toArray(P::flatten($a())));
 }