This repository has been archived on 2020-03-30. You can view files and clone it, but cannot push or open issues or pull requests.
ext-collections/tests/017-filter.phpt

29 lines
1.2 KiB
PHP

--TEST--
Test Collection::filter(), Collection::filterNot(), Collection::filterTo(), Collection::filterNotTo().
--FILE--
<?php
$array = [1, 3, 4, 5, 8, 10, strval(1).strval(3)];
$pred_is_odd = function ($value) {
return $value % 2;
};
$pred_is_even = function ($value) {
return $value % 2 == 0;
};
$collection = Collection::init($array)->filter($pred_is_odd);
$collection1 = Collection::init($array)->filterNot($pred_is_odd);
if ($collection->toArray() != array_values(array_filter($array, $pred_is_odd))) {
echo 'Collection::filter() failed.', PHP_EOL;
}
if ($collection1->toArray() != array_values(array_filter($array, $pred_is_even))) {
echo 'Collection::filterNot() failed.', PHP_EOL;
}
$dest = Collection::init($array);
$collection2 = Collection::init($array)->filterTo($dest, $pred_is_odd);
if ($collection2->toArray() != array_merge($array, $collection->toArray()))
echo 'Collection::filterTo() failed.', PHP_EOL;
$collection3 = Collection::init($array)->filterNotTo($dest, $pred_is_odd);
if ($collection3->toArray() != array_merge($array, $collection->toArray(), $collection1->toArray()))
echo 'Collection::filterNotTo() failed.', PHP_EOL;
?>
--EXPECT--