3 * Test class for ArrayUtils class
8 class ArrayUtilsTest
extends PHPUnit_Framework_TestCase
{
10 use MediaWikiCoversValidator
;
15 * @covers ArrayUtils::findLowerBound
16 * @dataProvider provideFindLowerBound
18 function testFindLowerBound(
19 $valueCallback, $valueCount, $comparisonCallback, $target, $expected
22 ArrayUtils
::findLowerBound(
23 $valueCallback, $valueCount, $comparisonCallback, $target
28 function provideFindLowerBound() {
29 $indexValueCallback = function ( $size ) {
30 return function ( $val ) use ( $size ) {
31 $this->assertTrue( $val >= 0 );
32 $this->assertTrue( $val < $size );
36 $comparisonCallback = function ( $a, $b ) {
42 $indexValueCallback( 0 ),
49 $indexValueCallback( 1 ),
56 $indexValueCallback( 1 ),
63 $indexValueCallback( 1 ),
70 $indexValueCallback( 2 ),
77 $indexValueCallback( 2 ),
84 $indexValueCallback( 2 ),
91 $indexValueCallback( 2 ),
98 $indexValueCallback( 2 ),
105 $indexValueCallback( 3 ),
112 $indexValueCallback( 3 ),
119 $indexValueCallback( 3 ),
126 $indexValueCallback( 3 ),
136 * @covers ArrayUtils::arrayDiffAssocRecursive
137 * @dataProvider provideArrayDiffAssocRecursive
139 function testArrayDiffAssocRecursive( $expected ) {
140 $args = func_get_args();
141 array_shift( $args );
142 $this->assertEquals( call_user_func_array(
143 'ArrayUtils::arrayDiffAssocRecursive', $args
147 function provideArrayDiffAssocRecursive() {
278 [ 1 => [ [ 2, 3 ], 2 ] ],
279 [ 1, [ [ 2, 3 ], 2 ] ],
283 [ 1 => [ [ 2 ], 2 ] ],
284 [ 1, [ [ 2, 3 ], 2 ] ],
285 [ 1, [ [ 1 => 3 ] ] ],
289 [ 1, [ [ 2, 3 ], 2 ] ],
290 [ 1, [ [ 1 => 3, 0 => 2 ] ] ],
294 [ 1, [ [ 2, 3 ], 2 ] ],
295 [ 1, [ [ 1 => 3 ] ] ],
300 [ 1, [ [ 2, 3 ], 2 ] ],
301 [ 1 => [ 1 => 2, 0 => [ 1 => 3, 0 => 2 ] ], 0 => 1 ],
305 [ 1, [ [ 2, 3 ], 2 ] ],
307 [ 1 => [ [ 1 => 3 ] ] ],