flux-querybuilder/tests/Functions/ReduceFunctionTest.php

19 lines
545 B
PHP

<?php
declare( strict_types=1 );
namespace Tests\Functions;
use Hosterra\FluxBuilder\Functions\Reduce;
use Hosterra\FluxBuilder\Type\MathType;
use PHPUnit\Framework\TestCase;
final class ReduceFunctionTest extends TestCase {
public function testSimpleReduce() {
$expression = new Reduce( [ 'sum' => new MathType( 'r._value + accumulator.sum' ) ], [ 'sum' => 0 ] );
$query = '|> reduce(fn: (r, accumulator) => ({sum: r._value + accumulator.sum}), identity: {sum: 0}) ';
$this->assertEquals( $query, $expression->__toString() );
}
}