Hoa central
RegularExpression.php
Go to the documentation of this file.
1 <?php
2 
37 namespace Hoa\Iterator\Test\Unit;
38 
39 use Hoa\Iterator as LUT;
40 use Hoa\Test;
41 
51 {
52  public function case_classic()
53  {
54  $this
55  ->given(
56  $map = new LUT\Map([
57  'abc',
58  'dea',
59  'fgh',
60  'iaj',
61  'klm'
62  ]),
63  $iterator = new LUT\RegularExpression($map, '/a/')
64  )
65  ->when($result = iterator_to_array($iterator))
66  ->then
67  ->array($result)
68  ->isEqualTo([
69  0 => 'abc',
70  1 => 'dea',
71  3 => 'iaj'
72  ]);
73  }
74 
75  public function case_recursive()
76  {
77  $this
78  ->given(
79  $map = new LUT\Recursive\Map([
80  ['abc', 'dea', 'fgh'],
81  ['iaj', 'klm']
82  ]),
83  $regex = new LUT\Recursive\RegularExpression($map, '/a/'),
84  $iterator = new LUT\Recursive\Iterator($regex)
85  )
86  ->when($result = iterator_to_array($iterator, false))
87  ->then
88  ->array($result)
89  ->isEqualTo([
90  0 => 'abc',
91  1 => 'dea',
92  2 => 'iaj'
93  ]);
94  }
95 
97  {
98  $this
99  ->given(
100  $map = new LUT\Recursive\Map([
101  ['abc', 'dea', 'fgh'],
102  ['iaj', 'klm']
103  ]),
104  $mode = LUT\Recursive\RegularExpression::ALL_MATCHES,
105  $flag = LUT\Recursive\RegularExpression::USE_KEY,
106  $pregFlag = LUT\Recursive\RegularExpression::ALL_MATCHES,
107  $iterator = new LUT\Recursive\RegularExpression(
108  $map,
109  '/a/',
110  $mode,
111  $flag,
112  $pregFlag
113  )
114  )
115  ->when($result = $iterator->getChildren())
116  ->then
117  ->object($result)
118  ->isInstanceOf('Hoa\Iterator\Recursive\RegularExpression')
119  ->integer($result->getMode())
120  ->isEqualTo($mode)
121  ->integer($result->getFlags())
122  ->isEqualTo($flag)
123  ->integer($result->getPregFlags())
124  ->isEqualTo($pregFlag);
125  }
126 }