Exemplo n.º 1
0
 /**
  * Make a new experiment with given variants
  *
  * @since 0.1.0
  *
  * @param array $variants
  * @param int|string $id Experiment (group) ID
  * @param \MaBandit\MaBandit $bandit MaBandit object
  */
 public function __construct(array $variants, $id, \MaBandit\MaBandit $bandit)
 {
     $this->experiment = $bandit->createExperiment((string) $id, $variants);
     if (method_exists($bandit->getPersistor(), 'save_levers')) {
         $bandit->getPersistor()->batchSave($this->experiment->getLevers(), $id);
     }
 }
Exemplo n.º 2
0
 public function chooseLever(\MaBandit\Experiment $experiment, $increment = true)
 {
     $levers = $experiment->getLevers();
     if (1 == count($levers)) {
         $lever = $levers[0];
     } else {
         $lever = $this->getStrategy()->chooseLever($experiment);
     }
     if ($increment) {
         $lever->incrementDenominator();
         return $this->validateLever($this->getPersistor()->saveLever($lever));
     } else {
         return $lever;
     }
 }
Exemplo n.º 3
0
 public function chooseLever(\MaBandit\Experiment $experiment)
 {
     $levers = $experiment->getLevers();
     return $this->shouldExplore($levers) ? $this->chooseExploratoryLever($levers) : $this->getWinner($levers);
 }