public function testCanCompareExpressionNodes() { $node = new ExpressionNode(new VariableNode('x'), '+', new VariableNode('y')); $node2 = new ExpressionNode(new VariableNode('x'), '-', new VariableNode('y')); $node3 = new ExpressionNode(new VariableNode('x'), '-', null); $node4 = new ExpressionNode(null, '-', new VariableNode('y')); $other = new VariableNode('x'); $this->assertFalse($node->compareTo(null)); $this->assertFalse($node->compareTo($other)); $this->assertTrue($node->compareTo($node)); $this->assertTrue($node2->compareTo($node2)); $this->assertTrue($node3->compareTo($node3)); $this->assertTrue($node4->compareTo($node4)); $this->assertFalse($node->compareTo($node2)); $this->assertFalse($node->compareTo($node3)); $this->assertFalse($node->compareTo($node4)); $this->assertFalse($node2->compareTo($node3)); $this->assertFalse($node2->compareTo($node4)); $this->assertFalse($node3->compareTo($node4)); $this->assertFalse($node2->compareTo($node4)); }