Example #1
1
 static function getCostBenefit(&$cvmp)
 {
     if (!isset($cvmp[OC_TMP]['cb'])) {
         $candBen = Qualifiers::getBenefit($cvmp);
         $realBen = Qualifiers::getBenefit(Cache::$realCvmp);
         $cvmp[OC_TMP]['benefit'] = $candBen - $realBen;
         $cvmp[OC_TMP]['cb'] = ($candBen - $realBen) / Costs::getCost($cvmp);
     }
     return $cvmp[OC_TMP]['cb'];
 }
Example #2
1
 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;
 }
 public function testOrganizeDummy()
 {
     Costs::add('CostTestMigrations');
     $places = ['v1' => 'p1', 'v2' => 'p1', 'v3' => 'p2', 'v4' => 'p2', 'v5' => 'p3'];
     $cvmp0 = Cvmp::buildCVmpByPlacements($places);
     $oc = new OrderCloud($cvmp0);
     $best = $oc->organize($cvmp0);
     unset($best[OC_TMP]);
     unset($cvmp0[OC_TMP]);
     unset($best[OC_LAST_ADD_VM]);
     unset($best[OC_LAST_REM_VM]);
     unset($best[OC_LAST_ADD_PM]);
     unset($best[OC_LAST_REM_PM]);
     $this->assertEquals($cvmp0, $best);
 }
Example #4
0
 public function testGetMaxCost()
 {
     $max = Costs::getMaxCost();
     $this->assertequals(PHP_INT_MAX, $max, "Default Cost is wrong");
 }
 /**
  * @depends testBenefit
  */
 public function testCostBenefit()
 {
     Qualifiers::add('QUAtest');
     Qualifiers::add('QUAmirror');
     Costs::add('COSTextimp');
     $places = ['v1' => 'p1', 'v2' => 'p1', 'v3' => 'p2', 'v4' => 'p2', 'v5' => 'p3'];
     $realCvmp = Cvmp::buildCVmpByPlacements($places);
     $cvmp = Cvmp::buildCVmpByPlacements($places);
     $cvmp['mirror'] = 11;
     // 220 - 200 / 2 (costTest = 2)
     $this->assertEquals(10, Qualifiers::getCostBenefit($cvmp), "");
 }
Example #6
0
 static function getMainCost()
 {
     $costs = Costs::getInstance();
     return $costs->mainCostClass;
 }
Example #7
0
 /**
  * @depends testGetCostEmptyClasses
  */
 public function testCOSTextimp()
 {
     Costs::add('COSTextimp');
     $this->assertEquals(2, Costs::getCost($x), "");
 }