3 * Test class for ArrayUtils class
8 class ArrayUtilsTest
extends MediaWikiTestCase
{
12 * @covers ArrayUtils::findLowerBound
13 * @dataProvider provideFindLowerBound
15 function testFindLowerBound(
16 $valueCallback, $valueCount, $comparisonCallback, $target, $expected
19 ArrayUtils
::findLowerBound(
20 $valueCallback, $valueCount, $comparisonCallback, $target
25 function provideFindLowerBound() {
27 $indexValueCallback = function( $size ) use ( $self ) {
28 return function( $val ) use ( $self, $size ) {
29 $self->assertTrue( $val >= 0 );
30 $self->assertTrue( $val < $size );
34 $comparisonCallback = function( $a, $b ) {
40 $indexValueCallback( 0 ),
47 $indexValueCallback( 1 ),
54 $indexValueCallback( 1 ),
61 $indexValueCallback( 1 ),
68 $indexValueCallback( 2 ),
75 $indexValueCallback( 2 ),
82 $indexValueCallback( 2 ),
89 $indexValueCallback( 2 ),
96 $indexValueCallback( 2 ),
103 $indexValueCallback( 3 ),
110 $indexValueCallback( 3 ),
117 $indexValueCallback( 3 ),
124 $indexValueCallback( 3 ),
134 * @covers ArrayUtils::arrayDiffAssocRecursive
135 * @dataProvider provideArrayDiffAssocRecursive
137 function testArrayDiffAssocRecursive( $expected ) {
138 $args = func_get_args();
139 array_shift( $args );
140 $this->assertEquals( call_user_func_array(
141 'ArrayUtils::arrayDiffAssocRecursive', $args
145 function provideArrayDiffAssocRecursive() {
229 array( array( array() ) ),
233 array( 1, array( 1 ) ),
234 array( 1, array( 1 ) ),
239 array( 1, array( 1 ) ),
240 array( 2, array( 1 ) ),
244 array( 1, array( 1 ) ),
245 array( 2, array( 1 ) ),
246 array( 1, array( 2 ) ),
260 array( 1, array( 1 => 2 ) ),
261 array( 1, array( 1, 2 ) ),
262 array( 2, array( 1 ) ),
266 array( 1, array( 1, 2 ) ),
267 array( 2, array( 1 ) ),
268 array( 2, array( 1 => 2 ) ),
271 array( 1 => array( 1, 2 ) ),
272 array( 1, array( 1, 2 ) ),
273 array( 1, array( 2 ) ),
276 array( 1 => array( array( 2, 3 ), 2 ) ),
277 array( 1, array( array( 2, 3 ), 2 ) ),
278 array( 1, array( 2 ) ),
281 array( 1 => array( array( 2 ), 2 ) ),
282 array( 1, array( array( 2, 3 ), 2 ) ),
283 array( 1, array( array( 1 => 3 ) ) ),
286 array( 1 => array( 1 => 2 ) ),
287 array( 1, array( array( 2, 3 ), 2 ) ),
288 array( 1, array( array( 1 => 3, 0 => 2 ) ) ),
291 array( 1 => array( 1 => 2 ) ),
292 array( 1, array( array( 2, 3 ), 2 ) ),
293 array( 1, array( array( 1 => 3 ) ) ),
294 array( 1 => array( array( 2 ) ) ),
298 array( 1, array( array( 2, 3 ), 2 ) ),
299 array( 1 => array( 1 => 2, 0 => array( 1 => 3, 0 => 2 ) ), 0 => 1 ),
303 array( 1, array( array( 2, 3 ), 2 ) ),
304 array( 1 => array( 1 => 2 ) ),
305 array( 1 => array( array( 1 => 3 ) ) ),
306 array( 1 => array( array( 2 ) ) ),