Exemplo n.º 1
0
 public function getExperiment($experiment)
 {
     $lever = new \MaBandit\Persistence\PersistedLever('x', $experiment);
     if (!($levers = $this->getPersistor()->loadLeversForExperiment($lever))) {
         throw new \MaBandit\Exception\ExperimentNotFoundException();
     }
     return \MaBandit\Experiment::withName($experiment)->forLevers($levers);
 }
Exemplo n.º 2
0
 public function testGetExperimentLoadsPersistedExperimentAndReturns()
 {
     $levers = \MaBandit\Lever::createBatchFromValues(array('blue', 'green'));
     $ex = \Mabandit\Experiment::withName('testGetExperiment')->forLevers($levers);
     $bandit = $this->getBandit();
     foreach ($levers as $l) {
         $bandit->getPersistor()->saveLever($l);
     }
     $this->assertEquals($bandit->getExperiment('testGetExperiment')->getLevers(), $ex->getLevers());
 }
Exemplo n.º 3
0
 public function testForLeversReturnsExperimentWithSpecifiedLeversSet()
 {
     $levers = \MaBandit\Lever::createBatchFromValues(array('blue', 'green'));
     $experiment = \MaBandit\Experiment::withName('test')->forLevers($levers);
     $taggedLevers = array();
     foreach ($levers as $l) {
         $nl = clone $l;
         $nl->experiment = 'test';
         $taggedLevers[] = $nl;
     }
     $this->assertEquals($taggedLevers, $experiment->getLevers());
     $this->assertEquals('test', $experiment->name);
 }
Exemplo n.º 4
0
 public function testChooseLeverAddsToDenominatorPersistsAndReturnsLever()
 {
     $bandit = $this->getBandit();
     $levers = \MaBandit\Lever::createBatchFromValues(array('yes', 'no'));
     $ex = \MaBandit\Experiment::withName('testchoosepersist')->forLevers($levers);
     $chosen = $bandit->chooseLever($ex);
     $this->assertEquals(1, $chosen->getDenominator());
     $f = new \MaBandit\Persistence\PersistedLever($chosen->getValue(), $ex->name);
     $this->assertEquals($chosen, $bandit->getPersistor()->loadLever($f));
 }