public function setUp() { foreach (Costs::getClasses() as $class) { Costs::del($class); } foreach (Qualifiers::getClasses() as $class) { Qualifiers::del($class); } foreach (RulesFreeOfContext::getClasses() as $class) { RulesFreeOfContext::del($class); } foreach (RulesSensitiveToTheContext::getClasses() as $class) { RulesSensitiveToTheContext::del($class); } }
static final function _evaluate(&$cvmp) { $class = get_called_class(); $evaluation = $class::evaluate($cvmp); //TODO test values > 0 & <=2 //Testing is Value is an array if (!is_array($evaluation)) { Qualifiers::del($class); throw new Exception("Evaluations sent from class '{$class}' is not an Array. Class Removed.", 1); } $return = []; //Selecting just the vms evaluations, cutting possible garbage foreach ($cvmp['vmp'] as $vm => $pm) { $return[$vm] = isset($evaluation[$vm]) ? $evaluation[$vm] : 1; unset($evaluation[$vm]); } //Informing about the garbage found if (count($evaluation) > 0) { Qualifiers::del($class); throw new Exception("Class '{$class}' is putting crap in the evaluation result: \n" . print_r($evaluation, true), 1); } return $return; }
public function testOrganize() { $places = ['v1' => 'p1', 'v2' => 'p1', 'v3' => 'p2', 'v4' => 'p2', 'v5' => 'p3']; $cvmp0 = Cvmp::buildCVmpByPlacements($places); $cvmp1 = Cvmp::buildCVmpByPlacements($places); $cvmp1['mirror'] = 11; $oc = new OrderCloud($cvmp0); Qualifiers::add('QUAconsolidate'); $best = $oc->organize($cvmp1); unset($best[OC_TMP]); $x = array_search(5, $best['rpm']); $this->assertEquals(5, $best['rpm'][$x]); Qualifiers::del('QUAconsolidate'); }