Beispiel #1
0
 /** @covers YaLinqo\Enumerable::generate
  */
 function testGenerate_meaningful()
 {
     // Partial sums
     $this->assertEnumEquals([0, 1, 3, 6, 10, 15], E::generate('$k+$v', 0, null, 0)->skip(1)->toValues(), 6);
     // Fibonacci
     $this->assertEnumEquals([1, 1, 2, 3, 5, 8], E::generate('[ $v[1], $v[0]+$v[1] ]', [0, 1])->select('$v[1]'), 6);
     // Fibonacci
     $this->assertEnumEquals([1, 1, 2, 3, 5, 8], E::generate('$k+$v', 1, '$v', 1)->toKeys(), 6);
 }
Beispiel #2
0
 /** @covers YaLinqo\Enumerable::generate
  */
 function testGenerate_meaningful()
 {
     // Partial sums
     $this->assertEnumEquals(array(0, 1, 3, 6, 10, 15), E::generate('$k+$v', 0, null, 0)->skip(1)->toValues(), 6);
     // Fibonacci
     $this->assertEnumEquals(array(1, 1, 2, 3, 5, 8), E::generate('array($v[1], $v[0]+$v[1])', array(0, 1))->select('$v[1]'), 6);
     // Fibonacci
     $this->assertEnumEquals(array(1, 1, 2, 3, 5, 8), E::generate('$k+$v', 1, '$v', 1)->toKeys(), 6);
 }
Beispiel #3
0
var_dump(Enumerable::repeat('e', INF)->take(2)->toArray());
var_dump(Enumerable::generate(function ($v, $k) {
    return $k * $k - $v * 2;
})->take(20)->toArray());
var_dump(Enumerable::generate(function ($v, $k) {
    return $v + $k;
}, 1, function ($v) {
    return $v;
}, 1)->take(10)->toArray());
var_dump(Enumerable::generate(function ($v) {
    return array($v[1], $v[0] + $v[1]);
}, array(1, 1), function ($v) {
    return $v[1];
}, 1)->toKeys()->take(10)->toArray());
var_dump(Enumerable::generate(function ($v, $k) {
    return pow(-1, $k) / (2 * $k + 1);
}, 0)->take(1000)->sum() * 4);
var_dump(Enumerable::toInfinity()->take(999)->sum(function ($k) {
    return pow(-1, $k) / (2 * $k + 1);
}) * 4);
echo "Lambdas\n";
var_dump(from(array(1, 2, 3, 4, 5, 6))->where('$v ==> $v > 3')->select('$v ==> $v*$v')->toArray());
var_dump(from(array(1, 2, 3, 4, 5, 6))->where('($v) ==> $v > 3')->select('$v, $k ==> $v+$k')->toArray());
var_dump(from(array(1, 2, 3, 4, 5, 6))->where('($v) ==> { echo $v; return $v > 3; }')->select('($v, $k) ==> { return $v*2+$k*3; }')->toArray());
var_dump(from(array(1, 2, 3, 4, 5, 6))->where('$v > 2')->where('$v>3')->select('$v+$k')->toArray());
var_dump(Enumerable::split('1 2 3 4 5 6', '# #')->toArray());
var_dump(Enumerable::matches('1 2 3 4 5 6', '#\\d+#')->select('$v[0]')->maxBy(Functions::$compareStrict));
var_dump(from(array(1, 2))->selectMany('$v ==> array(1, 2)', '"$v1 $v2"', '"$k1 $k2"')->toArray());
var_dump(from(array(1, 2))->selectMany('$v ==> array(1, 2)', '"$k1=$v1 $k2=$v2"')->toArray());
var_dump(from(array(1, 2))->selectMany('$v ==> array(1, 2)', 'array($v1, $v2)')->toArray());
var_dump(from(array(1, 2))->selectMany('$v ==> array()', '"$v1 $v2"', '"$k1 $k2"')->toArray());