given( $map = new LUT\Map([ 'abc', 'dea', 'fgh', 'iaj', 'klm' ]), $iterator = new LUT\RegularExpression($map, '/a/') ) ->when($result = iterator_to_array($iterator)) ->then ->array($result) ->isEqualTo([ 0 => 'abc', 1 => 'dea', 3 => 'iaj' ]); } public function case_recursive() { $this ->given( $map = new LUT\Recursive\Map([ ['abc', 'dea', 'fgh'], ['iaj', 'klm'] ]), $regex = new LUT\Recursive\RegularExpression($map, '/a/'), $iterator = new LUT\Recursive\Iterator($regex) ) ->when($result = iterator_to_array($iterator, false)) ->then ->array($result) ->isEqualTo([ 0 => 'abc', 1 => 'dea', 2 => 'iaj' ]); } public function case_recursive_children_flags() { $this ->given( $map = new LUT\Recursive\Map([ ['abc', 'dea', 'fgh'], ['iaj', 'klm'] ]), $mode = LUT\Recursive\RegularExpression::ALL_MATCHES, $flag = LUT\Recursive\RegularExpression::USE_KEY, $pregFlag = LUT\Recursive\RegularExpression::ALL_MATCHES, $iterator = new LUT\Recursive\RegularExpression( $map, '/a/', $mode, $flag, $pregFlag ) ) ->when($result = $iterator->getChildren()) ->then ->object($result) ->isInstanceOf(LUT\Recursive\RegularExpression::class) ->integer($result->getMode()) ->isEqualTo($mode) ->integer($result->getFlags()) ->isEqualTo($flag) ->integer($result->getPregFlags()) ->isEqualTo($pregFlag); } }