functional-php/tests/Collections/LibraryCallablesTest.php
2026-10-27 22:59:06 +01:00

41 lines
1.0 KiB
PHP

<?php
/**
* Copyright 2026 Kacper Donat
*
* @author Kacper "Kadet" Donat <kacper@kadet.net>
*
* Full license available in separate LICENSE file
*/
use Kadet\Functional as f;
use Kadet\Functional\Collections as c;
use Kadet\Functional\Predicates as p;
/**
* The library's own callables (predicates, pipes, decorators) used as collection callbacks.
*/
class LibraryCallablesTest extends \PHPUnit\Framework\TestCase
{
// negated predicates
public function testFilterWithNegatedInternalFunction()
{
$this->assertSame([1 => 'x'], c\filter(f\not(is_numeric(...)))(['1', 'x']));
}
public function testFilterWithNegatedClosure()
{
$this->assertSame([1], c\filter(f\not(fn ($x) => $x > 1))([1, 2]));
}
public function testFilterWithNegatedPredicateMethod()
{
$this->assertSame([1], c\filter(p\gt(1)->not())([1, 2]));
}
public function testRejectWithNegatedPredicate()
{
$this->assertSame([1 => 2], c\reject(p\gt(1)->not())([1, 2]));
}
}