public function testSort() { $this->assertTrue([2, 4, 5, 7] === P::sort('P::identity', [4, 2, 7, 5])); $this->assertTrue([2, 4, 5, 7] === P::sort('P::identity', [4, 2, 7, 5])); $this->assertTrue([3.9, 4, 5, 7] === P::sort('P::identity', [4, 3.9, 7, 5])); $a = function () { (yield 4); (yield 2); (yield 7); (yield 5); }; $this->assertTrue([2, 4, 5, 7] === P::sort('P::identity', $a())); $assoc = ['a' => 'C', 'b' => 'D', 'c' => 'A']; $this->assertTrue(['c' => 'A', 'a' => 'C', 'b' => 'D'] === P::sort('ord', $assoc)); }