3 * Test class for ArrayUtils class
7 class ArrayUtilsTest
extends PHPUnit_Framework_TestCase
{
9 use MediaWikiCoversValidator
;
14 * @covers ArrayUtils::findLowerBound
15 * @dataProvider provideFindLowerBound
17 function testFindLowerBound(
18 $valueCallback, $valueCount, $comparisonCallback, $target, $expected
21 ArrayUtils
::findLowerBound(
22 $valueCallback, $valueCount, $comparisonCallback, $target
27 function provideFindLowerBound() {
28 $indexValueCallback = function ( $size ) {
29 return function ( $val ) use ( $size ) {
30 $this->assertTrue( $val >= 0 );
31 $this->assertTrue( $val < $size );
35 $comparisonCallback = function ( $a, $b ) {
41 $indexValueCallback( 0 ),
48 $indexValueCallback( 1 ),
55 $indexValueCallback( 1 ),
62 $indexValueCallback( 1 ),
69 $indexValueCallback( 2 ),
76 $indexValueCallback( 2 ),
83 $indexValueCallback( 2 ),
90 $indexValueCallback( 2 ),
97 $indexValueCallback( 2 ),
104 $indexValueCallback( 3 ),
111 $indexValueCallback( 3 ),
118 $indexValueCallback( 3 ),
125 $indexValueCallback( 3 ),
135 * @covers ArrayUtils::arrayDiffAssocRecursive
136 * @dataProvider provideArrayDiffAssocRecursive
138 function testArrayDiffAssocRecursive( $expected ) {
139 $args = func_get_args();
140 array_shift( $args );
141 $this->assertEquals( call_user_func_array(
142 'ArrayUtils::arrayDiffAssocRecursive', $args
146 function provideArrayDiffAssocRecursive() {
277 [ 1 => [ [ 2, 3 ], 2 ] ],
278 [ 1, [ [ 2, 3 ], 2 ] ],
282 [ 1 => [ [ 2 ], 2 ] ],
283 [ 1, [ [ 2, 3 ], 2 ] ],
284 [ 1, [ [ 1 => 3 ] ] ],
288 [ 1, [ [ 2, 3 ], 2 ] ],
289 [ 1, [ [ 1 => 3, 0 => 2 ] ] ],
293 [ 1, [ [ 2, 3 ], 2 ] ],
294 [ 1, [ [ 1 => 3 ] ] ],
299 [ 1, [ [ 2, 3 ], 2 ] ],
300 [ 1 => [ 1 => 2, 0 => [ 1 => 3, 0 => 2 ] ], 0 => 1 ],
304 [ 1, [ [ 2, 3 ], 2 ] ],
306 [ 1 => [ [ 1 => 3 ] ] ],