public function testEquivalentTo() { $disjunction1 = new OrX(array(new Key('name', new Same('10')), new Key('age', new GreaterThan(0)))); // disjunctions match independent of the order of the conjuncts $disjunction2 = new OrX(array(new Key('age', new GreaterThan(0)), new Key('name', new Same('10')))); $disjunction3 = new OrX(array(new Key('age', new GreaterThan(0)))); $this->assertTrue($disjunction1->equivalentTo($disjunction2)); $this->assertTrue($disjunction2->equivalentTo($disjunction1)); $this->assertFalse($disjunction2->equivalentTo($disjunction3)); $this->assertFalse($disjunction3->equivalentTo($disjunction2)); $this->assertFalse($disjunction1->equivalentTo($disjunction3)); $this->assertFalse($disjunction3->equivalentTo($disjunction1)); }