for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Vlaswinkel\UnitConverter\Tests\Parser;
use PHPUnit\Framework\TestCase;
use Vlaswinkel\UnitConverter\Parser\AST\BinaryOperatorASTNode;
use Vlaswinkel\UnitConverter\Parser\AST\DigitASTNode;
use Vlaswinkel\UnitConverter\Parser\AST\UnitASTNode;
use Vlaswinkel\UnitConverter\Parser\Optimizer;
class OptimizerTest extends TestCase {
public function testOptimizedOhm() {
$node = new BinaryOperatorASTNode(
'*',
new BinaryOperatorASTNode(
new UnitASTNode('kg'),
'^',
new UnitASTNode('m'),
new DigitASTNode('2')
)
),
new UnitASTNode('s'),
new DigitASTNode('-3')
new UnitASTNode('A'),
new DigitASTNode('-2')
);
$optimizer = new Optimizer();
$optimized = $optimizer->optimize($node);
$this->assertEquals(
new DigitASTNode(2)
'/',
new DigitASTNode(1),
new DigitASTNode(3)
$optimized
}