2022-08-08 15:37:04 +00:00
|
|
|
<?php
|
2022-08-15 20:28:25 +00:00
|
|
|
|
2022-08-08 15:37:04 +00:00
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
2022-08-15 20:28:25 +00:00
|
|
|
namespace Tests\Functions;
|
|
|
|
|
|
2022-08-12 12:37:30 +00:00
|
|
|
use Arendsen\FluxQueryBuilder\Functions\Reduce;
|
2022-08-16 15:49:06 +00:00
|
|
|
use Arendsen\FluxQueryBuilder\Type\MathType;
|
2022-08-08 15:37:04 +00:00
|
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
|
|
2022-08-15 20:28:25 +00:00
|
|
|
final class ReduceFunctionTest extends TestCase
|
|
|
|
|
{
|
2022-08-08 15:37:04 +00:00
|
|
|
public function testSimpleReduce()
|
|
|
|
|
{
|
2022-08-16 15:49:06 +00:00
|
|
|
$expression = new Reduce(['sum' => new MathType('r._value + accumulator.sum')], ['sum' => 0]);
|
2022-08-08 15:37:04 +00:00
|
|
|
|
|
|
|
|
$query = '|> reduce(fn: (r, accumulator) => ({sum: r._value + accumulator.sum}), identity: {sum: 0}) ';
|
|
|
|
|
|
|
|
|
|
$this->assertEquals($query, $expression->__toString());
|
|
|
|
|
}
|
2022-08-15 20:28:25 +00:00
|
|
|
}
|