From 98b4cd48991f7939338a48ecee5cfb1e3cb0167b Mon Sep 17 00:00:00 2001
From: Nikolaus Huber <nikolaus.huber@uni-wuerzburg.de>
Date: Thu, 6 Jun 2013 11:53:20 +0000
Subject: [PATCH] implemented a weighting function counting delta of active
 resources

git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/code/DMM/trunk@11956 9e42b895-fcda-4063-8a3b-11be15eb1bbd
---
 .../ResourceEfficiencyTest.java               | 43 +++++++++++++
 .../dmm/AdaptationProcessModelLoaderTest.java | 10 ++-
 .../ContainerTemplateRepository.xmi           | 61 ++++---------------
 .../test_models/StaRepository.xmi             |  9 ++-
 4 files changed, 72 insertions(+), 51 deletions(-)
 create mode 100644 edu.kit.ipd.descartes.adaptation.test/src/edu/kit/ipd/descartes/adaptation/evaluation/weightingfunction/ResourceEfficiencyTest.java

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 00000000..5ced6a9c
--- /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 5088ee12..a0556dae 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 e6ef483f..4aa939fe 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 f21be253..0acfefbb 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">
-- 
GitLab