'foo', 'b' => 'bar', 'c' => 'baz', 'd' => 'qux', 'e' => 'lax']); $expected = [$a, $b, $c]; $iterable = [$b, $c, $a]; $scalar_fun = fn (Collection\CollectionInterface $collection) => $collection->count(); return [ [ $expected, $iterable, $scalar_fun, ], [ ['a', 'b', 'c', 'd'], ['d', 'a', 'b', 'c'], fn ($v) => $v, ], [ ['a'], ['a'], fn ($v) => $v, ], [ ['d', 'c', 'b', 'a'], ['d', 'a', 'b', 'c'], fn ($v) => $v, fn (string $a, string $b) => Str\ord($a) > Str\ord($b) ? -1 : 1, ], [ ['bar', 'qux'], ['foo' => 'bar', 'baz' => 'qux'], fn ($v) => $v, ], [ ['jumped', 'the', 'quick', 'brown', 'fox'], ['the', 'quick', 'brown', 'fox', 'jumped'], fn ($v) => Str\Byte\reverse($v), ], ]; } }