/**
  * 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);
     }
 }
示例#2
0
文件: bandit.php 项目: Ramoonus/ingot
 /**
  * Start up the bandit.
  *
  * @since 0.4.0
  *
  * @access protected
  */
 protected function go()
 {
     $strategy = \MaBandit\Strategy\EpsilonGreedy::withExplorationEvery(3);
     $persistor = $this->create_persistor();
     $this->bandit = \MaBandit\MaBandit::withStrategy($strategy)->withPersistor($persistor);
     try {
         $this->experiment = $this->bandit->getExperiment((string) $this->ID);
     } catch (\MaBandit\Exception\ExperimentNotFoundException $e) {
         $this->create_experiment();
     }
 }
示例#3
0
 /**
  * @expectedException \PHPUnit_Framework_Error
  */
 public function testWithPersistorRaisesOnInvalidStrategy()
 {
     $s = \MaBandit\Strategy\EpsilonGreedy::withExplorationEvery(10);
     $p = new \stdClass();
     $bandit = \MaBandit\MaBandit::withStrategy($s)->withPersistor($p);
 }