예제 #1
0
 static function getCombinatorialSliceQuantities($scenario, $maxVM)
 {
     require_once 'libs/Combinatorics.php';
     $combinatorics = new Math_Combinatorics();
     $sliceSize = $maxVM * 2 + 1;
     $input = array_keys($scenario['placements']);
     $combinations = $combinatorics->combinations($input, $sliceSize);
     $quatities = array();
     foreach ($combinations as $combination) {
         $slice = array();
         foreach ($combination as $index) {
             $slice[] = $scenario['placements'][$index];
         }
         $sliceScenario = Scenario::buildScenarioByPlacements($slice);
         $quatities[] = Approximation::calcularComRegrasMaxVMOutIn($sliceScenario, $maxVM);
     }
     return $quatities;
 }
예제 #2
0
 /**
  * @depends testgetInsidersCombinations
  */
 public function testcalcularComRegrasMaxVMOutIn()
 {
     $placements = array(array('A:1', 'A:2'), array('B:2', 'B:3'), array('C:1', 'C:3'), array('D:1', 'D:2'), array('E:2', 'E:3'), array('F:2', 'F:3'), array('G:1', 'G:3'), array('H:1', 'H:3'));
     $scenario = Scenario::buildScenarioByPlacements($placements);
     $resp = Approximation::calcularComRegrasMaxVMOutIn($scenario, 3);
     $this->assertEquals(72, $resp, "# of approximation !match.");
 }