3 * Test class for ArrayUtils class
7 class ArrayUtilsTest
extends PHPUnit\Framework\TestCase
{
9 use MediaWikiCoversValidator
;
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() {
26 $indexValueCallback = function ( $size ) {
27 return function ( $val ) use ( $size ) {
28 $this->assertTrue( $val >= 0 );
29 $this->assertTrue( $val < $size );
33 $comparisonCallback = function ( $a, $b ) {
39 $indexValueCallback( 0 ),
46 $indexValueCallback( 1 ),
53 $indexValueCallback( 1 ),
60 $indexValueCallback( 1 ),
67 $indexValueCallback( 2 ),
74 $indexValueCallback( 2 ),
81 $indexValueCallback( 2 ),
88 $indexValueCallback( 2 ),
95 $indexValueCallback( 2 ),
102 $indexValueCallback( 3 ),
109 $indexValueCallback( 3 ),
116 $indexValueCallback( 3 ),
123 $indexValueCallback( 3 ),
133 * @covers ArrayUtils::arrayDiffAssocRecursive
134 * @dataProvider provideArrayDiffAssocRecursive
136 function testArrayDiffAssocRecursive( $expected, ...$args ) {
137 $this->assertEquals( call_user_func_array(
138 'ArrayUtils::arrayDiffAssocRecursive', $args
142 function provideArrayDiffAssocRecursive() {
273 [ 1 => [ [ 2, 3 ], 2 ] ],
274 [ 1, [ [ 2, 3 ], 2 ] ],
278 [ 1 => [ [ 2 ], 2 ] ],
279 [ 1, [ [ 2, 3 ], 2 ] ],
280 [ 1, [ [ 1 => 3 ] ] ],
284 [ 1, [ [ 2, 3 ], 2 ] ],
285 [ 1, [ [ 1 => 3, 0 => 2 ] ] ],
289 [ 1, [ [ 2, 3 ], 2 ] ],
290 [ 1, [ [ 1 => 3 ] ] ],
295 [ 1, [ [ 2, 3 ], 2 ] ],
296 [ 1 => [ 1 => 2, 0 => [ 1 => 3, 0 => 2 ] ], 0 => 1 ],
300 [ 1, [ [ 2, 3 ], 2 ] ],
302 [ 1 => [ [ 1 => 3 ] ] ],