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; }
/** * @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."); }