예제 #1
0
 /**
  * @return CM_Model_SplittestVariation|null
  */
 protected function _getVariationWithFixedWeightPolicy()
 {
     $variationList = [];
     $variationWeightList = [];
     /** @var CM_Model_SplittestVariation $variation */
     foreach ($this->getVariationsEnabled()->getItems() as $variation) {
         $variationName = $variation->getName();
         if (isset($this->_variationWeightList[$variationName])) {
             $variationList[] = $variation;
             $variationWeightList[] = $this->_variationWeightList[$variationName];
         }
     }
     if (empty($variationList)) {
         return null;
     }
     $weightedRandom = new CM_WeightedRandom($variationList, $variationWeightList);
     return $weightedRandom->lookup();
 }
예제 #2
0
 public function testLookupAssociativeArray()
 {
     $weightedRandom = new CM_WeightedRandom([0 => '1', 1 => '2', 5 => '3'], [0 => 0, 1 => 10, 10 => 100]);
     $this->assertContains($weightedRandom->lookup(), ['2', '3']);
 }