示例#1
0
 /**
  * {@inheritdoc}
  */
 public function evaluate($value)
 {
     return Enumerable::from($this->selector()->apply($value))->atLeast($this->count(), $this->predicate());
 }
示例#2
0
require 'vendor/autoload.php';
require 'utils.php';
echo 'The all method example.' . PHP_EOL;
$sequence = sequence(15, 0, 10, true);
$result = Enumerable::from($sequence)->all(Criteria::gte(0)->and(Criteria::lte(10)));
echo '- The sequence: ' . sequenceToString($sequence) . PHP_EOL;
echo '- all(Criteria::gte(0)->and(Criteria::lte(10)))? ' . boolToString($result) . PHP_EOL;
/*#########################################################################*/
echo 'The any method example.' . PHP_EOL;
$sequence = sequence(15, 0, 10, true);
$result1 = Enumerable::from($sequence)->any(Criteria::eq(5));
$result2 = Enumerable::from($sequence)->any(Criteria::eq(11));
echo '- The sequence: ' . sequenceToString($sequence) . PHP_EOL;
echo '- any(Criteria::eq(5))? ' . boolToString($result1) . PHP_EOL;
echo '- any(Criteria::eq(11))? ' . boolToString($result2) . PHP_EOL;
/*#########################################################################*/
echo 'The atLeast method example.' . PHP_EOL;
$sequence = sequence(15, 0, 10, true);
$result1 = Enumerable::from($sequence)->atLeast(5, Criteria::gte(2)->and(Criteria::lte(6)));
$result2 = Enumerable::from($sequence)->atLeast(2, Criteria::eq(5));
echo '- The sequence: ' . sequenceToString($sequence) . PHP_EOL;
echo '- atLeast(5, Criteria::gte(2)->and(Criteria::lte(6)))? ' . boolToString($result1) . PHP_EOL;
echo '- atLeast(2, Criteria::eq(5))? ' . boolToString($result2) . PHP_EOL;
/*#########################################################################*/
echo 'The contains method example.' . PHP_EOL;
$sequence = sequence(15, 0, 10, true);
$result1 = Enumerable::from($sequence)->contains(5);
$result2 = Enumerable::from($sequence)->contains(10);
echo '- The sequence: ' . sequenceToString($sequence) . PHP_EOL;
echo '- contains(5)? ' . boolToString($result1) . PHP_EOL;
echo '- contains(10)? ' . boolToString($result2) . PHP_EOL;
示例#3
0
 /**
  * Test emptyEnumerable method.
  */
 public function testEmptyEnumerable()
 {
     $this->when($empty = Enumerable::emptyEnumerable())->enumerable($empty)->isEmpty();
 }
 /**
  * Test intersect method.
  *
  * @dataProvider setOperationsDataProvider
  */
 public function testIntersect($other)
 {
     $this->given($enumerable = $this->newDefaultTestedInstance())->when($intersection = $enumerable->intersect($other))->then()->enumerable($intersection)->areDistinct()->enumerable($enumerable)->containsAll($intersection)->enumerable(Enumerable::from($other))->containsAll($intersection);
 }
示例#5
0
<?php

use Cubiche\Core\Comparable\Direction;
use Cubiche\Core\Enumerable\Enumerable;
use Cubiche\Core\Enumerable\Order;
require 'vendor/autoload.php';
require 'utils.php';
echo 'The sorted method example.' . PHP_EOL;
$sequence = sequence(15, 0, 10, true);
$sorted = Enumerable::from($sequence)->sorted();
$reverse = Enumerable::from($sequence)->sorted(Order::defaultComparator()->reverse());
echo '- The original sequence: ' . sequenceToString($sequence) . PHP_EOL;
echo '- The sorted sequence: ' . sequenceToString($sorted) . PHP_EOL;
echo '- The reverse sorted sequence: ' . sequenceToString($reverse) . PHP_EOL;
/*#########################################################################*/
echo 'The sorting persons example.' . PHP_EOL;
$sequence = persons(10);
$result1 = Enumerable::from($sequence)->sorted(Order::by('age'));
$result2 = Enumerable::from($sequence)->sorted(Order::by('height', Direction::DESC()));
$result3 = Enumerable::from($sequence)->sorted(Order::by('age')->otherwise(Order::by('height', Direction::DESC()))->otherwise(Order::by('weight')));
echo '- The original sequence: ' . PHP_EOL . sequenceToString($sequence, true) . PHP_EOL;
echo "- The sorted(Order::by('age')) sequence: " . PHP_EOL . sequenceToString($result1, true) . PHP_EOL;
echo "- The sorted(Order::by('height', Direction::DESC())) sequence: " . PHP_EOL . sequenceToString($result2, true) . PHP_EOL;
echo '- The sequence sorted by age or by height(DESC) or by weight: ' . PHP_EOL . sequenceToString($result3, true) . PHP_EOL;
示例#6
0
 /**
  * @param int      $count
  * @param callable $predicate
  *
  * @return bool
  */
 public function atLeast($count, callable $predicate)
 {
     return Enumerable::from($this)->where($predicate)->limit($count)->count() === $count;
 }
示例#7
0
文件: utils.php 项目: cubiche/cubiche
function sequenceToString($sequence, $newLine = false)
{
    return \implode(', ' . ($newLine ? PHP_EOL : ''), Enumerable::from($sequence)->toArray());
}
 /**
  * @return \Cubiche\Core\Enumerable\EnumerableInterface
  */
 protected function defaultTestedInstanceEnumerableTarget()
 {
     return Enumerable::from($this->defaultValues());
 }
示例#9
0
require 'vendor/autoload.php';
require 'utils.php';
echo 'The distinct method example.' . PHP_EOL;
$sequence = sequence(15, 0, 5);
$distinct = Enumerable::from($sequence)->distinct();
echo '- The original sequence: ' . sequenceToString($sequence) . PHP_EOL;
echo '- The distinct sequence: ' . sequenceToString($distinct) . PHP_EOL;
/*#########################################################################*/
echo 'The except method example.' . PHP_EOL;
$first = sequence(15, 0, 5);
$second = sequence(5, 2, 4);
$except = Enumerable::from($first)->except($second);
echo '- The first sequence: ' . sequenceToString($first) . PHP_EOL;
echo '- The second sequence: ' . sequenceToString($second) . PHP_EOL;
echo '- The except sequence: ' . sequenceToString($except) . PHP_EOL;
/*#########################################################################*/
echo 'The intersect method example.' . PHP_EOL;
$first = sequence(15, 0, 5);
$second = sequence(5, 2, 4);
$intersect = Enumerable::from($first)->intersect($second);
echo '- The first sequence: ' . sequenceToString($first) . PHP_EOL;
echo '- The second sequence: ' . sequenceToString($second) . PHP_EOL;
echo '- The intersect sequence: ' . sequenceToString($intersect) . PHP_EOL;
/*#########################################################################*/
echo 'The union method example.' . PHP_EOL;
$first = sequence(10, 0, 5);
$second = sequence(10, 4, 8);
$union = Enumerable::from($first)->union($second);
echo '- The first sequence: ' . sequenceToString($first) . PHP_EOL;
echo '- The second sequence: ' . sequenceToString($second) . PHP_EOL;
echo '- The union sequence: ' . sequenceToString($union) . PHP_EOL;