@@ -47,6 +47,18 @@ var_dump(\ArrayLookup\AtLeast::once($data, $filter)) // true
4747$data = [1, 2, 3];
4848$filter = static fn($datum): bool => $datum === 4;
4949
50+ var_dump(\ArrayLookup\AtLeast::once($data, $filter)) // false
51+
52+ // WITH key array included
53+
54+ $data = [1, 2, 3];
55+ $filter = static fn($datum, $key): bool => $datum === 1 && $key === 0;
56+
57+ var_dump(\ArrayLookup\AtLeast::once($data, $filter)) // true
58+
59+ $data = [1, 2, 3];
60+ $filter = static fn($datum, $key): bool => $datum === 4 && $key === 0;
61+
5062var_dump(\ArrayLookup\AtLeast::once($data, $filter)) // false
5163```
5264
@@ -63,6 +75,18 @@ var_dump(\ArrayLookup\AtLeast::twice($data, $filter)) // true
6375$data = [1, "1", 3];
6476$filter = static fn($datum): bool => $datum === 1;
6577
78+ var_dump(\ArrayLookup\AtLeast::twice($data, $filter)) // false
79+
80+ // WITH key array included
81+
82+ $data = [1, "1", 3];
83+ $filter = static fn($datum, $key): bool => $datum == 1 && $key >= 0;
84+
85+ var_dump(\ArrayLookup\AtLeast::twice($data, $filter)) // true
86+
87+ $data = [1, "1", 3];
88+ $filter = static fn($datum, $key): bool => $datum === 1 && $key >= 0;
89+
6690var_dump(\ArrayLookup\AtLeast::twice($data, $filter)) // false
6791```
6892
@@ -81,6 +105,20 @@ $data = [1, null, 0];
81105$filter = static fn($datum): bool => ! $datum;
82106$times = 3;
83107
108+ var_dump(\ArrayLookup\AtLeast::times($data, $filter, $times)) // false
109+
110+ // WITH key array included
111+
112+ $data = [false, null, 0];
113+ $filter = static fn($datum, $key): bool => ! $datum && $key >= 0;
114+ $times = 3;
115+
116+ var_dump(\ArrayLookup\AtLeast::times($data, $filter, $times)) // true
117+
118+ $data = [1, null, 0];
119+ $filter = static fn($datum, $key): bool => ! $datum && $key >= 0;
120+ $times = 3;
121+
84122var_dump(\ArrayLookup\AtLeast::times($data, $filter, $times)) // false
85123```
86124
@@ -101,6 +139,19 @@ var_dump(\ArrayLookup\Only::once($data, $filter)) // true
101139$data = [1, "1", 3]
102140$filter = static fn($datum): bool => $datum == 1;
103141
142+ var_dump(\ArrayLookup\Only::once($data, $filter)) // false
143+
144+ // WITH key array included
145+
146+ $data = [1, 2, 3];
147+ $filter = static fn($datum, $key): bool => $datum === 1 && $key >= 0;
148+
149+ var_dump(\ArrayLookup\Only::once($data, $filter)) // true
150+
151+
152+ $data = [1, "1", 3]
153+ $filter = static fn($datum, $key): bool => $datum == 1 && $key >= 0;
154+
104155var_dump(\ArrayLookup\Only::once($data, $filter)) // false
105156```
106157
@@ -117,6 +168,18 @@ var_dump(\ArrayLookup\Only::twice($data, $filter)) // true
117168$data = [true, 1, new stdClass()];
118169$filter = static fn($datum): bool => (bool) $datum;
119170
171+ var_dump(\ArrayLookup\Only::twice($data, $filter)) // false
172+
173+ // WITH key array included
174+
175+ $data = [1, "1", 3];
176+ $filter = static fn($datum, $key): bool => $datum == 1 && $key >= 0;
177+
178+ var_dump(\ArrayLookup\Only::twice($data, $filter)) // true
179+
180+ $data = [true, 1, new stdClass()];
181+ $filter = static fn($datum, $key): bool => (bool) $datum && $key >= 0;
182+
120183var_dump(\ArrayLookup\Only::twice($data, $filter)) // false
121184```
122185
@@ -136,6 +199,21 @@ $data = [false, null, 0];
136199$filter = static fn($datum): bool => ! $datum;
137200$times = 2;
138201
202+ var_dump(\ArrayLookup\Only::times($data, $filter, $times)) // false
203+
204+ // WITH key array included
205+
206+ $data = [false, null, 1];
207+ $filter = static fn($datum, $key): bool => ! $datum && $key >= 0;
208+ $times = 2;
209+
210+ var_dump(\ArrayLookup\Only::times($data, $filter, $times)) // true
211+
212+
213+ $data = [false, null, 0];
214+ $filter = static fn($datum, $key): bool => ! $datum && $key >= 0;
215+ $times = 2;
216+
139217var_dump(\ArrayLookup\Only::times($data, $filter, $times)) // false
140218```
141219
@@ -154,6 +232,15 @@ var_dump(\ArrayLookup\Finder::first($data, $filter)) // 1
154232
155233$filter = static fn($datum): bool => $datum == 1000;
156234var_dump(\ArrayLookup\Finder::first($data, $filter)) // null
235+
236+ // WITH key array included
237+
238+ $filter = static fn($datum, $key): bool => $datum === 1 && $key >= 0;
239+
240+ var_dump(\ArrayLookup\Finder::first($data, $filter)) // 1
241+
242+ $filter = static fn($datum, $key): bool => $datum == 1000 && $key >= 0;
243+ var_dump(\ArrayLookup\Finder::first($data, $filter)) // null
157244```
158245
159246* 2. ` Finder::last() ` *
@@ -171,4 +258,16 @@ var_dump(\ArrayLookup\Finder::last(
171258 $data,
172259 static fn ($datum): bool => $datum < 5
173260)); // null
261+
262+ // WITH key array included
263+
264+ var_dump(\ArrayLookup\Finder::last(
265+ $data,
266+ static fn ($datum, $key): bool => $datum > 5 && $key >= 0
267+ )); // 9
268+
269+ var_dump(\ArrayLookup\Finder::last(
270+ $data,
271+ static fn ($datum, $key): bool => $datum < 5 && $key >= 0
272+ )); // null
174273```
0 commit comments