Stop doing $that = $this in Tests
[mediawiki.git] / tests / phpunit / includes / libs / ArrayUtilsTest.php
blob3efc4c30629e2ea714b8cc2c21cd001c7b1be2dd
1 <?php
2 /**
3 * Test class for ArrayUtils class
5 * @group Database
6 */
8 class ArrayUtilsTest extends PHPUnit_Framework_TestCase {
9 private $search;
11 /**
12 * @covers ArrayUtils::findLowerBound
13 * @dataProvider provideFindLowerBound
15 function testFindLowerBound(
16 $valueCallback, $valueCount, $comparisonCallback, $target, $expected
17 ) {
18 $this->assertSame(
19 ArrayUtils::findLowerBound(
20 $valueCallback, $valueCount, $comparisonCallback, $target
21 ), $expected
25 function provideFindLowerBound() {
26 $indexValueCallback = function ( $size ) {
27 return function ( $val ) use ( $size ) {
28 $this->assertTrue( $val >= 0 );
29 $this->assertTrue( $val < $size );
30 return $val;
33 $comparisonCallback = function ( $a, $b ) {
34 return $a - $b;
37 return array(
38 array(
39 $indexValueCallback( 0 ),
41 $comparisonCallback,
43 false,
45 array(
46 $indexValueCallback( 1 ),
48 $comparisonCallback,
49 -1,
50 false,
52 array(
53 $indexValueCallback( 1 ),
55 $comparisonCallback,
59 array(
60 $indexValueCallback( 1 ),
62 $comparisonCallback,
66 array(
67 $indexValueCallback( 2 ),
69 $comparisonCallback,
70 -1,
71 false,
73 array(
74 $indexValueCallback( 2 ),
76 $comparisonCallback,
80 array(
81 $indexValueCallback( 2 ),
83 $comparisonCallback,
84 0.5,
87 array(
88 $indexValueCallback( 2 ),
90 $comparisonCallback,
94 array(
95 $indexValueCallback( 2 ),
97 $comparisonCallback,
98 1.5,
101 array(
102 $indexValueCallback( 3 ),
104 $comparisonCallback,
108 array(
109 $indexValueCallback( 3 ),
111 $comparisonCallback,
112 1.5,
115 array(
116 $indexValueCallback( 3 ),
118 $comparisonCallback,
122 array(
123 $indexValueCallback( 3 ),
125 $comparisonCallback,
133 * @covers ArrayUtils::arrayDiffAssocRecursive
134 * @dataProvider provideArrayDiffAssocRecursive
136 function testArrayDiffAssocRecursive( $expected ) {
137 $args = func_get_args();
138 array_shift( $args );
139 $this->assertEquals( call_user_func_array(
140 'ArrayUtils::arrayDiffAssocRecursive', $args
141 ), $expected );
144 function provideArrayDiffAssocRecursive() {
145 return array(
146 array(
147 array(),
148 array(),
149 array(),
151 array(
152 array(),
153 array(),
154 array(),
155 array(),
157 array(
158 array( 1 ),
159 array( 1 ),
160 array(),
162 array(
163 array( 1 ),
164 array( 1 ),
165 array(),
166 array(),
168 array(
169 array(),
170 array(),
171 array( 1 ),
173 array(
174 array(),
175 array(),
176 array( 1 ),
177 array( 2 ),
179 array(
180 array( '' => 1 ),
181 array( '' => 1 ),
182 array(),
184 array(
185 array(),
186 array(),
187 array( '' => 1 ),
189 array(
190 array( 1 ),
191 array( 1 ),
192 array( 2 ),
194 array(
195 array(),
196 array( 1 ),
197 array( 2 ),
198 array( 1 ),
200 array(
201 array(),
202 array( 1 ),
203 array( 1, 2 ),
205 array(
206 array( 1 => 1 ),
207 array( 1 => 1 ),
208 array( 1 ),
210 array(
211 array(),
212 array( 1 => 1 ),
213 array( 1 ),
214 array( 1 => 1 ),
216 array(
217 array(),
218 array( 1 => 1 ),
219 array( 1, 1, 1 ),
221 array(
222 array(),
223 array( array() ),
224 array(),
226 array(
227 array(),
228 array( array( array() ) ),
229 array(),
231 array(
232 array( 1, array( 1 ) ),
233 array( 1, array( 1 ) ),
234 array(),
236 array(
237 array( 1 ),
238 array( 1, array( 1 ) ),
239 array( 2, array( 1 ) ),
241 array(
242 array(),
243 array( 1, array( 1 ) ),
244 array( 2, array( 1 ) ),
245 array( 1, array( 2 ) ),
247 array(
248 array( 1 ),
249 array( 1, array() ),
250 array( 2 ),
252 array(
253 array(),
254 array( 1, array() ),
255 array( 2 ),
256 array( 1 ),
258 array(
259 array( 1, array( 1 => 2 ) ),
260 array( 1, array( 1, 2 ) ),
261 array( 2, array( 1 ) ),
263 array(
264 array( 1 ),
265 array( 1, array( 1, 2 ) ),
266 array( 2, array( 1 ) ),
267 array( 2, array( 1 => 2 ) ),
269 array(
270 array( 1 => array( 1, 2 ) ),
271 array( 1, array( 1, 2 ) ),
272 array( 1, array( 2 ) ),
274 array(
275 array( 1 => array( array( 2, 3 ), 2 ) ),
276 array( 1, array( array( 2, 3 ), 2 ) ),
277 array( 1, array( 2 ) ),
279 array(
280 array( 1 => array( array( 2 ), 2 ) ),
281 array( 1, array( array( 2, 3 ), 2 ) ),
282 array( 1, array( array( 1 => 3 ) ) ),
284 array(
285 array( 1 => array( 1 => 2 ) ),
286 array( 1, array( array( 2, 3 ), 2 ) ),
287 array( 1, array( array( 1 => 3, 0 => 2 ) ) ),
289 array(
290 array( 1 => array( 1 => 2 ) ),
291 array( 1, array( array( 2, 3 ), 2 ) ),
292 array( 1, array( array( 1 => 3 ) ) ),
293 array( 1 => array( array( 2 ) ) ),
295 array(
296 array(),
297 array( 1, array( array( 2, 3 ), 2 ) ),
298 array( 1 => array( 1 => 2, 0 => array( 1 => 3, 0 => 2 ) ), 0 => 1 ),
300 array(
301 array(),
302 array( 1, array( array( 2, 3 ), 2 ) ),
303 array( 1 => array( 1 => 2 ) ),
304 array( 1 => array( array( 1 => 3 ) ) ),
305 array( 1 => array( array( 2 ) ) ),
306 array( 1 ),