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); }
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()); }
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); }
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)); }