/** * @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(); }
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']); }