/**
  * @see Comparable::equals
  *
  * @param SnakConstraint $constraint
  * @return boolean
  */
 public function equals($constraint)
 {
     if ($constraint === $this) {
         return true;
     }
     if (!$constraint instanceof self) {
         return false;
     }
     return $this->snak->equals($constraint->snak);
 }
예제 #2
0
 /**
  * @see Comparable::equals
  *
  * @since 0.7.4
  *
  * @param mixed $target
  *
  * @return bool
  */
 public function equals($target)
 {
     if ($this === $target) {
         return true;
     }
     return $target instanceof self && $this->guid === $target->guid && $this->rank === $target->rank && $this->mainSnak->equals($target->mainSnak) && $this->qualifiers->equals($target->qualifiers) && $this->references->equals($target->references);
 }
 /**
  * @dataProvider notEqualsProvider
  */
 public function testGivenDifferentSnaks_EqualsReturnsFalse(Snak $snak1, Snak $snak2)
 {
     $this->assertFalse($snak1->equals($snak2));
     $this->assertFalse($snak2->equals($snak1));
 }
예제 #4
0
 /**
  * @dataProvider snakProvider
  * @param Snak $snak
  */
 public function testEquals(Snak $snak)
 {
     $this->assertTrue($snak->equals($snak));
     $this->assertFalse($snak->equals('~=[,,_,,]:3'));
 }
 private function isSnakMorePrecise(Snak $a, Snak $b)
 {
     if ($a instanceof PropertyValueSnak && $b instanceof PropertyValueSnak) {
         return $a->getPropertyId()->equals($b->getPropertyId()) && $this->isDataValueMorePrecise($a->getDataValue(), $b->getDataValue());
     }
     return $a->equals($b);
 }