public function handlerStatus() { $fmt = 'Class[%s] %s[%s]'; error_log("\nCosts:"); error_log("Main Cost Class[" . Costs::getMainCost() . ']'); foreach (Costs::getClasses() as $class) { error_log(sprintf($fmt, $class, 'Cost', $class::getMaxCost())); } error_log("\nQualifiers:"); foreach (Qualifiers::getClasses() as $class) { error_log(sprintf($fmt, $class, 'Weight', $class::getWeight())); } error_log("\nRules Free Of Context:"); foreach (RulesFreeOfContext::getClasses() as $class) { error_log(sprintf($fmt, $class, 'isValid', $class::isEnable())); } error_log("\nRules Sensitive To The Context:"); foreach (RulesSensitiveToTheContext::getClasses() as $class) { error_log(sprintf($fmt, $class, 'isValid', $class::isEnable())); } echo PHP_EOL; }
/** * @depends testEvaluate */ public function testEvaluate2() { Qualifiers::add('QUAtest'); Qualifiers::add('QUAmirror'); $this->assertEquals(2, count(Qualifiers::getClasses()), "Wrong number of Qualifiers"); $places = ['v1' => 'p1', 'v2' => 'p1', 'v3' => 'p2', 'v4' => 'p2', 'v5' => 'p3']; $expected = ['v1' => 40, 'v2' => 40, 'v3' => 40, 'v4' => 40, 'v5' => 40]; $cvmp = Cvmp::buildCVmpByPlacements($places); $this->assertEquals($expected, Qualifiers::getEvaluation($cvmp), ""); }
/** * @ depends testQUAextimp * @ expectedException Exception */ 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 function getEvaluation(&$cvmp) { if (!isset($cvmp[OC_TMP]['values'])) { $qualifiers = Qualifiers::getClasses(); foreach ($cvmp['vmp'] as $vm => $pm) { $cvmp[OC_TMP]['values'][$vm] = 1; } foreach ($qualifiers as $class) { $normEval = $class::_evaluate($cvmp); $w = $class::getWeight(); foreach ($normEval as $vm => $eval) { $cvmp[OC_TMP]['values'][$vm] *= pow($eval, $w); } } } return $cvmp[OC_TMP]['values']; }