'foo', 'b' => 'bar', 'c' => 'baz', 'd' => 'qux', 'e' => 'lax']; $expected = [$a, $b, $c]; $array = [$b, $c, $a]; $scalar_fun = /** * @param array $arr * * @return int * * @psalm-pure */ static fn ($arr) => Arr\count($arr); return [ [ $expected, $array, $scalar_fun, ], [ ['a', 'b', 'c', 'd'], ['d', 'a', 'b', 'c'], /** * @param string $v * * @return string * * @psalm-pure */ static fn ($v) => $v, ], [ ['a'], ['a'], /** * @param string $v * * @return string * * @psalm-pure */ static fn ($v) => $v, ], [ ['d', 'c', 'b', 'a'], ['d', 'a', 'b', 'c'], /** * @param string $v * * @return string * * @psalm-pure */ static fn ($v) => $v, /** * @param string $a * @param string $b * * @return int * * @psalm-pure */ static fn (string $a, string $b) => Str\ord($a) > Str\ord($b) ? -1 : 1, ], [ ['bar', 'qux'], ['foo' => 'bar', 'baz' => 'qux'], /** * @param string $v * * @return string * * @psalm-pure */ static fn ($v) => $v, ], [ ['jumped', 'the', 'quick', 'brown', 'fox'], ['the', 'quick', 'brown', 'fox', 'jumped'], /** * @param string $v * * @return string * * @psalm-pure */ static fn ($v) => Str\Byte\reverse($v), ], ]; } }