Esempio n. 1
0
 public function testGetBestMatchFromBuilder()
 {
     $root = new ComparablePair();
     $root->buildFromSets([new Color('red'), new Color('green'), new Color('blue')], [new Color('blueviolet'), new Color('bluegreen'), new Color('reed')]);
     $expected = [new ComparablePair(new Color('blue'), new Color('blueviolet')), new ComparablePair(new Color('green'), new Color('bluegreen')), new ComparablePair(new Color('red'), new Color('reed'))];
     $this->assertEquals($expected, $root->getBestMatch());
 }
Esempio n. 2
0
 /**
  * @param ComparableInterface[] $set1
  * @param ComparableInterface[] $set2
  * @return ComparablePair
  */
 public function buildFromSets(array $set1, array $set2)
 {
     if (empty($set1)) {
         return $this;
     }
     list($key1, $item1) = $this->getFirstKeyAndItem($set1);
     foreach ($set2 as $key2 => $item2) {
         list($subset1, $subset2) = $this->getSubsetsWithoutKeys($set1, $set2, $key1, $key2);
         $pair = new ComparablePair($item1, $item2);
         $this->addChild($pair->buildFromSets($subset1, $subset2));
     }
     return $this;
 }