flux-querybuilder/tests/Functions/ReduceFunctionTest.php

19 lines
545 B
PHP
Raw Normal View History

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