Skip to content
Snippets Groups Projects
Commit 8b6135ac authored by Nikolaus Huber's avatar Nikolaus Huber
Browse files

git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/code/DMM/trunk@10638 9e42b895-fcda-4063-8a3b-11be15eb1bbd
parent 3025e787
No related branches found
No related tags found
No related merge requests found
package edu.kit.ipd.descartes.adaptation.util;
import static org.junit.Assert.assertTrue;
import java.util.Set;
import org.eclipse.emf.ecore.EObject;
import org.junit.Before;
import org.junit.Test;
import edu.kit.ipd.descartes.adaptation.AbstractTest;
import edu.kit.ipd.descartes.adaptation.model.dmm.util.OclEvaluationHelper;
import edu.kit.ipd.descartes.mm.resourcelandscape.ComputingInfrastructure;
import edu.kit.ipd.descartes.mm.resourcelandscape.DataCenter;
import edu.kit.ipd.descartes.mm.resourcelandscape.DistributedDataCenter;
import edu.kit.ipd.descartes.mm.resourcelandscape.ResourcelandscapeFactory;
import edu.kit.ipd.descartes.mm.resourcelandscape.ResourcelandscapePackage;
import edu.kit.ipd.descartes.mm.resourcelandscape.RuntimeEnvironment;
public class OclEvaluationHelperTest extends AbstractTest {
@Before
public void setUp() throws Exception {
super.setUp();
}
@Test
public void testQueryForRuntimeEnvironments() {
DistributedDataCenter testDdc = ResourcelandscapeFactory.eINSTANCE.createDistributedDataCenter();
String queryExpression = "RuntimeEnvironment.allInstances()";
Set<EObject> res = OclEvaluationHelper.query(testDdc, queryExpression, testDdc.eClass());
assertTrue(res.size() == 0);
DataCenter dc1 = ResourcelandscapeFactory.eINSTANCE.createDataCenter();
testDdc.getConsistsOf().add(dc1);
ComputingInfrastructure ci1 = ResourcelandscapeFactory.eINSTANCE.createComputingInfrastructure();
dc1.getContains().add(ci1);
RuntimeEnvironment re1 = ResourcelandscapeFactory.eINSTANCE.createRuntimeEnvironment();
RuntimeEnvironment re2 = ResourcelandscapeFactory.eINSTANCE.createRuntimeEnvironment();
ci1.getContains().add(re1);
ci1.getContains().add(re2);
res = OclEvaluationHelper.query(testDdc, queryExpression, ResourcelandscapePackage.eINSTANCE.getDistributedDataCenter());
assertTrue(res.size() == 2);
}
}
package edu.kit.ipd.descartes.adaptation.util;
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.model.dmm.PerformanceDataRepositoryModelManager;
import edu.kit.ipd.descartes.adaptation.model.dmm.util.PerfDataRepoHelper;
import edu.kit.ipd.descartes.perfdatarepo.Impact;
import edu.kit.ipd.descartes.perfdatarepo.PerformanceDataRepository;
public class PerfDataRepoHelperTest {
private static final String PERF_DATA_REPO_XMI_FILE = "./test_models/PerformanceDataRepositoryDummy.xmi";
PerformanceDataRepository perfDataRepo;
@Before
public void setUp() throws Exception {
PerformanceDataRepositoryModelManager repoManager = PerformanceDataRepositoryModelManager.getInstance();
perfDataRepo = (PerformanceDataRepository) repoManager.load(URI
.createFileURI(PERF_DATA_REPO_XMI_FILE));
}
@Test
public void testGetLatestImpact() {
int historySize = perfDataRepo.getImpactHistory().size();
Impact mostRecent = perfDataRepo.getImpactHistory().get(historySize - 1);
assertEquals(mostRecent, PerfDataRepoHelper.getLatestImpact(perfDataRepo));
}
}
package edu.kit.ipd.descartes.adaptation.util;
import static org.junit.Assert.assertEquals;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.URI;
import org.junit.Before;
import org.junit.Test;
import edu.kit.ipd.descartes.adaptation.model.dmm.PerformanceDataRepositoryModelManager;
import edu.kit.ipd.descartes.adaptation.model.dmm.util.WeightingFunctionHelper;
import edu.kit.ipd.descartes.mm.adaptation.AdaptationFactory;
import edu.kit.ipd.descartes.mm.adaptation.WeightedMetric;
import edu.kit.ipd.descartes.mm.adaptation.WeightingFunction;
import edu.kit.ipd.descartes.perfdatarepo.Impact;
import edu.kit.ipd.descartes.perfdatarepo.MetricType;
import edu.kit.ipd.descartes.perfdatarepo.PerfdatarepoFactory;
import edu.kit.ipd.descartes.perfdatarepo.PerformanceDataRepository;
import edu.kit.ipd.descartes.perfdatarepo.Result;
public class WeightingFunctionHelperTest {
private static final String PERF_DATA_REPO_XMI_FILE = "./test_models/PerformanceDataRepositoryDummy.xmi";
private static final double UTIL_WEIGHT = 2.0d;
private PerformanceDataRepositoryModelManager perfDataModelManager = PerformanceDataRepositoryModelManager.getInstance();
private PerformanceDataRepository perfDataRepo = null;
private WeightingFunction function = null;
private enum METRIC_TYPES {
UTILIZATION, RESPONSE_TIME;
}
private MetricType getTypeHelper(METRIC_TYPES mType) {
EList<MetricType> types = perfDataRepo.getMetricTypes();
switch (mType) {
case UTILIZATION:
return types.get(0);
case RESPONSE_TIME:
return types.get(1);
default:
return null;
}
}
@Before
public void setUp() throws Exception {
perfDataRepo = (PerformanceDataRepository) perfDataModelManager.load(URI.createFileURI(PERF_DATA_REPO_XMI_FILE));
MetricType metricType = getTypeHelper(METRIC_TYPES.UTILIZATION);
function = AdaptationFactory.eINSTANCE.createWeightingFunction();
WeightedMetric wUtil = AdaptationFactory.eINSTANCE.createWeightedMetric();
wUtil.setId("1");
wUtil.setName("UtilizationMetricWeight");
wUtil.setWeight(UTIL_WEIGHT);
wUtil.setMetricType(metricType);
function.getWeightedMetrics().add(wUtil);
}
@Test
public void testGetWeightForMetricType() {
double weight = 0.0;
MetricType metricType = getTypeHelper(METRIC_TYPES.RESPONSE_TIME);
weight = WeightingFunctionHelper.getWeightForMetricType(function, metricType);
assertEquals(Double.NaN, weight, 0.0);
metricType = getTypeHelper(METRIC_TYPES.UTILIZATION);
weight = WeightingFunctionHelper.getWeightForMetricType(function, metricType);
assertEquals(UTIL_WEIGHT, weight, 0.0);
}
@Test
public void testGetValueForMetricType() {
double testValue = 0;
MetricType metricType = getTypeHelper(METRIC_TYPES.UTILIZATION);
Result emptyResult = PerfdatarepoFactory.eINSTANCE.createResult();
testValue = WeightingFunctionHelper.getValueForMetricType(metricType, emptyResult);
assertEquals(Double.NaN, testValue, 0);
Impact impact = perfDataRepo.getImpactHistory().get(0);
Result before = impact.getBefore();
testValue = WeightingFunctionHelper.getValueForMetricType(metricType, before);
assertEquals(0.4, testValue, 0);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment