@@ -30,6 +30,34 @@ public function testMbLcFirst(string $string, string $expected): void {
3030 $ this ->assertSame ($ expected , mb_lcfirst ($ string ));
3131 }
3232
33+ /**
34+ * @dataProvider arrayFindDataProvider
35+ */
36+ public function testArrayFind (array $ array , callable $ callback , $ expected ): void {
37+ $ this ->assertSame ($ expected , array_find ($ array , $ callback ));
38+ }
39+
40+ /**
41+ * @dataProvider arrayFindKeyDataProvider
42+ */
43+ public function testArrayFindKey (array $ array , callable $ callback , $ expected ): void {
44+ $ this ->assertSame ($ expected , array_find_key ($ array , $ callback ));
45+ }
46+
47+ /**
48+ * @dataProvider arrayAnyDataProvider
49+ */
50+ public function testArrayAny (array $ array , callable $ callback , bool $ expected ): void {
51+ $ this ->assertSame ($ expected , array_any ($ array , $ callback ));
52+ }
53+
54+ /**
55+ * @dataProvider arrayAllDataProvider
56+ */
57+ public function testArrayAll (array $ array , callable $ callback , bool $ expected ): void {
58+ $ this ->assertSame ($ expected , array_all ($ array , $ callback ));
59+ }
60+
3361 public static function ucFirstDataProvider (): array {
3462 return [
3563 ['' , '' ],
@@ -68,4 +96,78 @@ public static function lcFirstDataProvider(): array {
6896 ["ß " , "ß " ],
6997 ];
7098 }
99+
100+ public static function arrayFindDataProvider (): array {
101+ $ callable = function ($ value ): bool {
102+ return strlen ($ value ) > 2 ;
103+ };
104+
105+ $ callableKey = function ($ value , $ key ): bool {
106+ return is_numeric ($ key );
107+ };
108+
109+ return [
110+ [[], $ callable , null ],
111+ [['a ' , 'aa ' , 'aaa ' , 'aaaa ' ], $ callable , 'aaa ' ],
112+ [['a ' , 'aa ' ], $ callable , null ],
113+ [['a ' => '1 ' , 'b ' => '12 ' , 'c ' => '123 ' , 'd ' => '1234 ' ], $ callable , '123 ' ],
114+ [['a ' => '1 ' , 'b ' => '12 ' , 'c ' => '123 ' , 3 => '1234 ' ], $ callableKey , '1234 ' ],
115+ ];
116+ }
117+
118+ public static function arrayFindKeyDataProvider (): array {
119+ $ callable = function ($ value ): bool {
120+ return strlen ($ value ) > 2 ;
121+ };
122+
123+ $ callableKey = function ($ value , $ key ): bool {
124+ return is_numeric ($ key );
125+ };
126+
127+ return [
128+ [[], $ callable , null ],
129+ [['a ' , 'aa ' , 'aaa ' , 'aaaa ' ], $ callable , 2 ],
130+ [['a ' , 'aa ' ], $ callable , null ],
131+ [['a ' => '1 ' , 'b ' => '12 ' , 'c ' => '123 ' , 'd ' => '1234 ' ], $ callable , 'c ' ],
132+ [['a ' => '1 ' , 'b ' => '12 ' , 'c ' => '123 ' , 3 => '1234 ' ], $ callableKey , 3 ],
133+ ];
134+ }
135+
136+ public static function arrayAnyDataProvider (): array {
137+ $ callable = function ($ value ): bool {
138+ return strlen ($ value ) > 2 ;
139+ };
140+
141+ $ callableKey = function ($ value , $ key ): bool {
142+ return is_numeric ($ key );
143+ };
144+
145+ return [
146+ [[], $ callable , false ],
147+ [['a ' , 'aa ' , 'aaa ' , 'aaaa ' ], $ callable , true ],
148+ [['a ' , 'aa ' ], $ callable , false ],
149+ [['a ' => '1 ' , 'b ' => '12 ' , 'c ' => '123 ' , 'd ' => '1234 ' ], $ callable , true ],
150+ [['a ' => '1 ' , 'b ' => '12 ' , 'c ' => '123 ' , 3 => '1234 ' ], $ callableKey , true ],
151+ [['a ' => '1 ' , 'b ' => '12 ' , 'c ' => '123 ' , 'd ' => '1234 ' ], $ callableKey , false ],
152+ ];
153+ }
154+
155+ public static function arrayAllDataProvider (): array {
156+ $ callable = function ($ value ): bool {
157+ return strlen ($ value ) > 2 ;
158+ };
159+
160+ $ callableKey = function ($ value , $ key ): bool {
161+ return is_numeric ($ key );
162+ };
163+
164+ return [
165+ [[], $ callable , true ],
166+ [['a ' , 'aa ' , 'aaa ' , 'aaaa ' ], $ callable , false ],
167+ [['aaa ' , 'aaa ' ], $ callable , true ],
168+ [['a ' => '1 ' , 'b ' => '12 ' , 'c ' => '123 ' , 'd ' => '1234 ' ], $ callable , false ],
169+ [['a ' => '1 ' , 'b ' => '12 ' , 'c ' => '123 ' , 'd ' => '1234 ' ], $ callableKey , false ],
170+ [[1 => '1 ' , 2 => '12 ' , 3 => '123 ' , 4 => '1234 ' ], $ callableKey , true ],
171+ ];
172+ }
71173}
0 commit comments