diff --git a/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/evaluation/weightingfunction/ResourceEfficiencyTest.java b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/evaluation/weightingfunction/ResourceEfficiencyTest.java new file mode 100644 index 0000000000000000000000000000000000000000..5ced6a9c6c93a3cc06a45292a8dcffa6b6d42201 --- /dev/null +++ b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/evaluation/weightingfunction/ResourceEfficiencyTest.java @@ -0,0 +1,43 @@ +package edu.kit.ipd.descartes.adaptation.evaluation.weightingfunction; + +import static org.junit.Assert.*; + +import org.eclipse.emf.common.util.URI; +import org.junit.Before; +import org.junit.Test; + +import edu.kit.ipd.descartes.adaptation.AbstractTest; +import edu.kit.ipd.descartes.adaptation.AdaptationControl; +import edu.kit.ipd.descartes.adaptation.model.dmm.AdaptationProcessModelLoader; +import edu.kit.ipd.descartes.mm.adaptation.AdaptationProcess; +import edu.kit.ipd.descartes.mm.adaptation.Strategy; +import edu.kit.ipd.descartes.mm.adaptation.WeightingFunction; + +public class ResourceEfficiencyTest extends AbstractTest { + + IWeightingFunction resEfficiency = null; + Strategy testStrategy = null; + + @Before + public void setUp() throws Exception { + super.setUp(); + + String propertiesFile = "default.properties"; + AdaptationControl control = new AdaptationControl(); + control.init(propertiesFile); + + URI uri = URI.createFileURI("/Users/nhuber/Documents/workspace/descartes/metamodel/edu.kit.ipd.descartes.adaptation.test/test_models/StaRepository.xmi"); + AdaptationProcessModelLoader loader = AdaptationProcessModelLoader.getInstance(); + AdaptationProcess process = loader.load(uri); + testStrategy = process.getStrategies().get(1); + } + + @Test + public void testCalculateWeight() { + WeightingFunction function = testStrategy.getWeightingFunction(); + resEfficiency = new ResourceEfficiency(); + resEfficiency.setWeightingFunction(function); + assertEquals(-1, resEfficiency.calculateWeight(testStrategy.getTacticWithHighestWeight()), 0.01); + } + +} diff --git a/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/model/dmm/AdaptationProcessModelLoaderTest.java b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/model/dmm/AdaptationProcessModelLoaderTest.java index 5088ee126c34346b1e49d9fb510dd07565e4204e..a0556dae47dc169e24153123776a57102fcae289 100644 --- a/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/model/dmm/AdaptationProcessModelLoaderTest.java +++ b/edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/model/dmm/AdaptationProcessModelLoaderTest.java @@ -31,9 +31,17 @@ public class AdaptationProcessModelLoaderTest extends AbstractTest { @Test public void testLoad() { - AdaptationProcessModelLoader loader = new AdaptationProcessModelLoader(); + AdaptationProcessModelLoader loader = AdaptationProcessModelLoader.getInstance(); String modelFile = "/Users/nhuber/Documents/workspace/descartes/metamodel/Examples/SEAMS_Case_Study/pushpull.adaptation"; AdaptationProcess process = loader.load(URI.createFileURI(modelFile)); } + + @Test + public void testGetModelLocation() { + AdaptationProcessModelLoader loader = AdaptationProcessModelLoader.getInstance(); + URI modelUri = URI.createFileURI("/Users/nhuber/Documents/workspace/descartes/metamodel/Examples/SEAMS_Case_Study/pushpull.adaptation"); + AdaptationProcess process = loader.load(modelUri); + assertEquals(modelUri, loader.getCurrentModelUri()); + } } diff --git a/edu.kit.ipd.descartes.adaptation.test/test_models/ContainerTemplateRepository.xmi b/edu.kit.ipd.descartes.adaptation.test/test_models/ContainerTemplateRepository.xmi index e6ef483f5740a6edd0381444890744f999a51b34..4aa939fe21ec49ee144ea438cefd88401dd8c7ca 100644 --- a/edu.kit.ipd.descartes.adaptation.test/test_models/ContainerTemplateRepository.xmi +++ b/edu.kit.ipd.descartes.adaptation.test/test_models/ContainerTemplateRepository.xmi @@ -1,57 +1,20 @@ <?xml version="1.0" encoding="ASCII"?> -<containerrepository:ContainerRepository - xmi:version="2.0" - xmlns:xmi="http://www.omg.org/XMI" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:containerrepository="http://www.descartes-research.net/metamodel/containerrepository/0.1" - xmlns:resourceconfiguration="http://www.descartes-research.net/metamodel/resourceconfiguration/0.1" - xmlns:resourcelandscape="http://www.descartes-research.net/metamodel/resourcelandscape/0.1" - id="1" name="MyTestContainerTemplates"> - <templates - id="2" - name="VM_USA_TEMPLATE"> - <templateConfig - xsi:type="resourceconfiguration:ActiveResourceSpecification" - id="3" - name="CPU_TEMPLATE"> - <processingResourceSpecifications - id="235234" - name="CPU" - processingRate="1000.0" - parentResourceSpecification="3"> - <nrOfParProcUnits - id="1341341" - name="NumberOfVirtualCpus" - number="2"/> +<containerrepository:ContainerRepository xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:containerrepository="http://www.descartes-research.net/metamodel/containerrepository/0.1" xmlns:resourceconfiguration="http://www.descartes-research.net/metamodel/resourceconfiguration/0.1" xmlns:resourcelandscape="http://www.descartes-research.net/metamodel/resourcelandscape/0.1" id="1" name="MyTestContainerTemplates"> + <templates id="2" name="VM_USA_TEMPLATE"> + <templateConfig xsi:type="resourceconfiguration:ActiveResourceSpecification" id="3" name="CPU_TEMPLATE"> + <processingResourceSpecifications id="235234" name="CPU" processingRate="1000.0"> + <nrOfParProcUnits id="1341341" name="NumberOfVirtualCpus" number="2"/> </processingResourceSpecifications> </templateConfig> - <referringContainers - xsi:type="resourcelandscape:RuntimeEnvironment" - href="DistributedDataCenter.xmi#2313"/> + <referringContainers xsi:type="resourcelandscape:RuntimeEnvironment" href="DistributedDataCenter.xmi#2313"/> </templates> - <templates - id="555" - name="VM_GER_TEMPLATE"> - <templateConfig - xsi:type="resourceconfiguration:ActiveResourceSpecification" - id="1231231231" - name="CPU"> - <processingResourceSpecifications - id="51241132" - name="Opteron CPU" - processingRate="1000.0" - parentResourceSpecification="1231231231"> - <nrOfParProcUnits - id="_-avagGPGEeKyF6WpqcAI9Q" - name="NumberOfCores" - number="8"/> + <templates id="555" name="VM_GER_TEMPLATE"> + <templateConfig xsi:type="resourceconfiguration:ActiveResourceSpecification" id="1231231231" name="CPU"> + <processingResourceSpecifications id="51241132" name="Opteron CPU" processingRate="1000.0"> + <nrOfParProcUnits id="_-avagGPGEeKyF6WpqcAI9Q" name="NumberOfCores" number="8"/> </processingResourceSpecifications> </templateConfig> - <referringContainers - xsi:type="resourcelandscape:RuntimeEnvironment" - href="DistributedDataCenter.xmi#12345-1"/> - <referringContainers - xsi:type="resourcelandscape:RuntimeEnvironment" - href="DistributedDataCenter.xmi#12345-2"/> + <referringContainers xsi:type="resourcelandscape:RuntimeEnvironment" href="DistributedDataCenter.xmi#12345-1"/> + <referringContainers xsi:type="resourcelandscape:RuntimeEnvironment" href="DistributedDataCenter.xmi#12345-2"/> </templates> </containerrepository:ContainerRepository> diff --git a/edu.kit.ipd.descartes.adaptation.test/test_models/StaRepository.xmi b/edu.kit.ipd.descartes.adaptation.test/test_models/StaRepository.xmi index f21be25327bda51d72423e60e2d4b3edcf993930..0acfefbb75df45b2ed961d300546f4daa6833e44 100644 --- a/edu.kit.ipd.descartes.adaptation.test/test_models/StaRepository.xmi +++ b/edu.kit.ipd.descartes.adaptation.test/test_models/StaRepository.xmi @@ -357,7 +357,7 @@ name="testMigration" usedTactic="12312412312"> <lastImpact - href="PerformanceDataRepositoryDummy.xmi#3df1q3eq"/> + href="PerformanceDataRepositoryDummy.xmi#mi1"/> </tactics> <weightingFunction id="_WDSVAs52EeKoaZRgevo7AQ" @@ -370,6 +370,13 @@ <metricType href="PerformanceDataRepositoryDummy.xmi#2"/> </weightedMetrics> + <weightedMetrics + id="_Ti-UkM6bEeKoaZRgevo7AQ" + name="Util2" + weight="10.0"> + <metricType + href="PerformanceDataRepositoryDummy.xmi#22"/> + </weightedMetrics> </weightingFunction> </strategies> <goal description="Test Tactics, Strategies and Actions">