given($iterator = new CUT([])) ->when($result = iterator_to_array($iterator)) ->then ->array($result) ->isEqualTo([[null]]); } public function case_X() { $this ->given($iterator = new CUT([1, 2, 3])) ->when($result = iterator_to_array($iterator)) ->then ->array($result) ->isEqualTo([ [1], [2], [3] ]); } public function case_X_Y() { $this ->given($iterator = new CUT([1, 2, 3], [4, 5, 6])) ->when($result = iterator_to_array($iterator)) ->then ->array($result) ->isEqualTo([ [1, 4], [2, 4], [3, 4], [1, 5], [2, 5], [3, 5], [1, 6], [2, 6], [3, 6] ]); } public function case_X_Y_Z() { $this ->given($iterator = new CUT([1, 2, 3], [4, 5, 6], [7, 8, 9])) ->when($result = iterator_to_array($iterator)) ->then ->array($result) ->isEqualTo([ [1, 4, 7], [2, 4, 7], [3, 4, 7], [1, 5, 7], [2, 5, 7], [3, 5, 7], [1, 6, 7], [2, 6, 7], [3, 6, 7], [1, 4, 8], [2, 4, 8], [3, 4, 8], [1, 5, 8], [2, 5, 8], [3, 5, 8], [1, 6, 8], [2, 6, 8], [3, 6, 8], [1, 4, 9], [2, 4, 9], [3, 4, 9], [1, 5, 9], [2, 5, 9], [3, 5, 9], [1, 6, 9], [2, 6, 9], [3, 6, 9] ]); } }