public function testTree3()
 {
     $deriver = new DerivationVisitor('x');
     $evaluator = new EvaluationVisitor(['x' => 2]);
     $f = Tree::mult(3, Tree::pow('x', 2))->add(Tree::mult(2, 'x'))->add(3);
     $this->assertEquals(19, $evaluator->visit($f));
     $this->assertEquals(14, $evaluator->visit($deriver->visit($f)));
 }
Exemple #2
0
 /**
  * @return SimplifyVisitor
  */
 public function testVisitor4()
 {
     $visitor = new TypeVisitor(VariableNode::class);
     $this->assertFalse($visitor->visit(Tree::add(2, 3)));
     $this->assertFalse($visitor->visit(Tree::pow(2, 3)));
     $this->assertFalse($visitor->visit(Tree::mult(2, 3)));
     $this->assertFalse($visitor->visit(Tree::init(3)));
     $this->assertTrue($visitor->visit(Tree::init('x')));
 }
Exemple #3
0
 public function testRender2()
 {
     $node = Tree::mult(Tree::add('x', 67), Tree::pow(Tree::mult('x', Tree::mult(4, 'x'), Tree::add(Tree::mult('x', 67), Tree::pow(Tree::mult('x', 24), 2))), 2));
     $xml = XMLVisitor::init();
     $str = $xml->visit($node);
     echo $str;
     $xml = new \DOMDocument();
     $xml->loadXML($str);
     $this->assertTrue($xml->schemaValidate(__DIR__ . '/../../../resources/tree-schema.xsd'));
 }
 public function testTreeRender()
 {
     $deriver = new DerivationVisitor('x');
     $renderer = RenderStringVisitor::init();
     $simplfier = SimplifyVisitor::init();
     $f = Tree::add(Tree::mult(3, Tree::pow('x', 2)), Tree::mult(2, 'x'), 3);
     $this->assertEquals("3 * x ^ 2 + 2 * x + 3", $renderer->visit($f));
     $this->assertEquals("6 * x + 2", $renderer->visit($simplfier->visit($deriver->visit($f))));
     $this->assertEquals("6", $renderer->visit($simplfier->visit($deriver->visit($deriver->visit($f)))));
 }
 /**
  * @param $value
  * @return PowerNode
  */
 public function pow($value)
 {
     return Tree::pow($this, $value);
 }
Exemple #6
0
 public function testGetVariables()
 {
     $f = Tree::add(Tree::mult(3, 'x'), Tree::mult(2, 'y'), Tree::mult(Tree::pow('z', 2), 'y'), 3);
 }