blob: 85a65294a4902e0c09c42afdf237554ee2912544 [file] [log] [blame]
// StandardRelativeValueProviderAdapterFactoryTest.java
package org.eclipse.stem.tests.diseasemodels.standard.provider.tests;
/*******************************************************************************
* Copyright (c) 2006 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
import java.util.List;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.stem.definitions.adapters.relativevalue.RelativeValueProvider;
import org.eclipse.stem.definitions.adapters.relativevalue.RelativeValueProviderAdapterFactory;
import org.eclipse.stem.definitions.adapters.relativevalue.RelativeValueProviderAdapterFactoryTest;
import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabelValue;
import org.eclipse.stem.diseasemodels.standard.SEIRLabel;
import org.eclipse.stem.diseasemodels.standard.SEIRLabelValue;
import org.eclipse.stem.diseasemodels.standard.SILabel;
import org.eclipse.stem.diseasemodels.standard.SILabelValue;
import org.eclipse.stem.diseasemodels.standard.SIRLabel;
import org.eclipse.stem.diseasemodels.standard.SIRLabelValue;
import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabel;
import org.eclipse.stem.diseasemodels.standard.StandardFactory;
import org.eclipse.stem.diseasemodels.standard.StandardPackage;
import org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory;
/**
* This class is a JUnit test case for
* {@link StandardRelativeValueProviderAdapterFactory}.
*/
@SuppressWarnings("all")
public class StandardRelativeValueProviderAdapterFactoryTest extends
RelativeValueProviderAdapterFactoryTest {
/**
* The number of properties in a disease model label value (Births, Deaths,
* Deaths from Disease are relative to total population)
*/
public static final int NUM_DISEASE_MODEL_LABEL_VALUE_PROPERTIES = 4;
/**
* The number of properties in a SI disease model label value (I +
* DMLVP)
*/
public static final int NUM_SI_DISEASE_MODEL_LABEL_VALUE_PROPERTIES = 1 + NUM_DISEASE_MODEL_LABEL_VALUE_PROPERTIES;
/**
* The number of properties in a SIR disease model label value (S, I, IR, IF, incidence +
* R + DMLVP)
*/
public static final int NUM_SIR_DISEASE_MODEL_LABEL_VALUE_PROPERTIES = NUM_SI_DISEASE_MODEL_LABEL_VALUE_PROPERTIES + 1;
/**
* The number of properties in a SEIR disease model label value (S, E, I, IR,
* IF, incidence + R + DMLVP)
*/
public static final int NUM_SEIR_DISEASE_MODEL_LABEL_VALUE_PROPERTIES = NUM_SIR_DISEASE_MODEL_LABEL_VALUE_PROPERTIES + 1;
/**
* The initial number of births for disease model label values.
*/
public static final double NUM_DISEASE_MODEL_LABEL_VALUE_BIRTHS = 100;
/**
* The initial number of (total) deaths for disease model label values.
*/
public static final double NUM_DISEASE_MODEL_LABEL_VALUE_DEATHS = 10;
/**
* The initial number of deaths from disease for disease model label values.
*/
public static final double NUM_DISEASE_MODEL_LABEL_VALUE_DISEASE_DEATHS = 1;
protected static final double NUM_S_POPULATION = 64;
protected static final double NUM_E_POPULATION = 32;
protected static final double NUM_I_POPULATION = 16;
protected static final double NUM_R_POPULATION = 8;
protected static final double TOTAL_SI_POPULATION = NUM_S_POPULATION
+ NUM_I_POPULATION;
protected static final double TOTAL_SIR_POPULATION = TOTAL_SI_POPULATION
+ NUM_R_POPULATION;
protected static final double TOTAL_SEIR_POPULATION = TOTAL_SIR_POPULATION
+ NUM_E_POPULATION;
private StandardRelativeValueProviderAdapterFactory getFixture() {
return (StandardRelativeValueProviderAdapterFactory) fixture;
} // SpatialProviderAdapterFactory
/**
* @see junit.framework.TestCase#setUp()
*/
@Override
protected void setUp() throws Exception {
setFixture(createFixture());
}
/**
* @see junit.framework.TestCase#tearDown()
*/
@Override
protected void tearDown() throws Exception {
setFixture(null);
}
/**
* @return a factory instance for testing purposes.
*/
protected StandardRelativeValueProviderAdapterFactory createFixture() {
return new StandardRelativeValueProviderAdapterFactory();
} // createFixture
/**
* @param label
*/
public static final void initializeDiseaseModelLabel(
final StandardDiseaseModelLabel label) {
initializeDiseaseModelLabelValues((DiseaseModelLabelValue)label
.getCurrentValue());
initializeDiseaseModelLabelValues((DiseaseModelLabelValue)label
.getNextValue());
} // initializeDiseaseModelLabel
/**
* @param labelValue
*/
public static final void initializeDiseaseModelLabelValues(
final DiseaseModelLabelValue dmlv) {
// dmlv.setDiseaseDeaths(NUM_DISEASE_MODEL_LABEL_VALUE_DISEASE_DEATHS);
} // initializedDiseaseModelLabelValues
/**
* @return
*/
public static final SEIRLabel createSEIRLabel() {
final SEIRLabel seirLabel = StandardFactory.eINSTANCE.createSEIRLabel();
initializeDiseaseModelLabel(seirLabel);
((SEIRLabelValue)seirLabel.getCurrentValue()).setS(NUM_S_POPULATION);
((SEIRLabelValue)seirLabel.getCurrentValue()).setE(NUM_E_POPULATION);
((SEIRLabelValue)seirLabel.getCurrentValue()).setI(NUM_I_POPULATION);
((SEIRLabelValue)seirLabel.getCurrentValue()).setR(NUM_R_POPULATION);
return seirLabel;
} // createSEIRLabel
/**
* Test method for
* {@link org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory#createSILabelAdapter()}.
*/
public void testCreateSILabelAdapter() {
final StandardRelativeValueProviderAdapterFactory fixture = getFixture();
final SILabel sILabel = StandardFactory.eINSTANCE.createSILabel();
initializeDiseaseModelLabel(sILabel);
((SILabelValue)sILabel.getCurrentValue()).setS(NUM_S_POPULATION);
((SILabelValue)sILabel.getCurrentValue()).setI(NUM_I_POPULATION);
final RelativeValueProvider relativeValueProvider = (RelativeValueProvider) fixture
.adapt(sILabel, RelativeValueProvider.class);
assertNotNull(relativeValueProvider);
final List<IItemPropertyDescriptor> properties = relativeValueProvider
.getProperties();
assertNotNull(properties);
assertTrue(properties.size() == NUM_SI_DISEASE_MODEL_LABEL_VALUE_PROPERTIES);
assertTrue(relativeValueProvider
.getRelativeValue(StandardPackage.eINSTANCE
.getStandardDiseaseModelLabelValue_S()) == NUM_S_POPULATION
/ TOTAL_SI_POPULATION);
assertTrue(relativeValueProvider
.getRelativeValue(StandardPackage.eINSTANCE.getSILabelValue_I()) == NUM_I_POPULATION
/ TOTAL_SI_POPULATION);
} // testCreateSILabelAdapter
/**
* Test method for
* {@link org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory#createSIRLabelAdapter()}.
*/
public void testCreateSIRLabelAdapter() {
final StandardRelativeValueProviderAdapterFactory fixture = getFixture();
final SIRLabel sirLabel = StandardFactory.eINSTANCE.createSIRLabel();
initializeDiseaseModelLabel(sirLabel);
((SIRLabelValue)sirLabel.getCurrentValue()).setS(NUM_S_POPULATION);
((SIRLabelValue)sirLabel.getCurrentValue()).setI(NUM_I_POPULATION);
((SIRLabelValue)sirLabel.getCurrentValue()).setR(NUM_R_POPULATION);
final RelativeValueProvider relativeValueProvider = (RelativeValueProvider) fixture
.adapt(sirLabel, RelativeValueProvider.class);
assertNotNull(relativeValueProvider);
final List<IItemPropertyDescriptor> properties = relativeValueProvider
.getProperties();
assertNotNull(properties);
assertTrue(properties.size() == NUM_SIR_DISEASE_MODEL_LABEL_VALUE_PROPERTIES);
assertTrue(relativeValueProvider
.getRelativeValue(StandardPackage.eINSTANCE
.getStandardDiseaseModelLabelValue_S()) == NUM_S_POPULATION
/ TOTAL_SIR_POPULATION);
assertTrue(relativeValueProvider
.getRelativeValue(StandardPackage.eINSTANCE.getSILabelValue_I()) == NUM_I_POPULATION
/ TOTAL_SIR_POPULATION);
assertTrue(relativeValueProvider
.getRelativeValue(StandardPackage.eINSTANCE
.getSIRLabelValue_R()) == NUM_R_POPULATION
/ TOTAL_SIR_POPULATION);
} // testCreateSIRLabelAdapter
/**
* Test method for
* {@link org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory#createSEIRLabelAdapter()}.
*/
public void testCreateSEIRLabelAdapter() {
final StandardRelativeValueProviderAdapterFactory fixture = getFixture();
final SEIRLabel seirLabel = createSEIRLabel();
final RelativeValueProvider relativeValueProvider = (RelativeValueProvider) fixture
.adapt(seirLabel, RelativeValueProvider.class);
assertNotNull(relativeValueProvider);
final List<IItemPropertyDescriptor> properties = relativeValueProvider
.getProperties();
assertNotNull(properties);
assertTrue(properties.size() == NUM_SEIR_DISEASE_MODEL_LABEL_VALUE_PROPERTIES);
assertTrue(relativeValueProvider
.getRelativeValue(StandardPackage.eINSTANCE
.getStandardDiseaseModelLabelValue_S()) == NUM_S_POPULATION
/ TOTAL_SEIR_POPULATION);
assertTrue(relativeValueProvider
.getRelativeValue(StandardPackage.eINSTANCE
.getSEIRLabelValue_E()) == NUM_E_POPULATION
/ TOTAL_SEIR_POPULATION);
assertTrue(relativeValueProvider
.getRelativeValue(StandardPackage.eINSTANCE.getSILabelValue_I()) == NUM_I_POPULATION
/ TOTAL_SEIR_POPULATION);
assertTrue(relativeValueProvider
.getRelativeValue(StandardPackage.eINSTANCE
.getSIRLabelValue_R()) == NUM_R_POPULATION
/ TOTAL_SEIR_POPULATION);
} // testCreateSEIRLabelAdapter
/**
* Test method for
* {@link org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory#createSILabelValueAdapter()}.
*/
public void testCreateSILabelValueAdapter() {
final StandardRelativeValueProviderAdapterFactory fixture = getFixture();
final SILabelValue sILabelValue = StandardFactory.eINSTANCE
.createSILabelValue();
initializeDiseaseModelLabelValues(sILabelValue);
sILabelValue.setS(NUM_S_POPULATION);
sILabelValue.setI(NUM_I_POPULATION);
final RelativeValueProvider relativeValueProvider = (RelativeValueProvider) fixture
.adapt(sILabelValue, RelativeValueProvider.class);
assertNotNull(relativeValueProvider);
final List<IItemPropertyDescriptor> properties = relativeValueProvider
.getProperties();
assertNotNull(properties);
assertTrue(properties.size() == NUM_SI_DISEASE_MODEL_LABEL_VALUE_PROPERTIES);
assertTrue(relativeValueProvider
.getRelativeValue(StandardPackage.eINSTANCE
.getStandardDiseaseModelLabelValue_S()) == NUM_S_POPULATION
/ TOTAL_SI_POPULATION);
assertTrue(relativeValueProvider
.getRelativeValue(StandardPackage.eINSTANCE.getSILabelValue_I()) == NUM_I_POPULATION
/ TOTAL_SI_POPULATION);
} // testCreateSILabelValueAdapter
/**
* Test method for
* {@link org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory#createSIRLabelValueAdapter()}.
*/
public void testCreateSIRLabelValueAdapter() {
final StandardRelativeValueProviderAdapterFactory fixture = getFixture();
final SIRLabelValue sIRLabelValue = StandardFactory.eINSTANCE
.createSIRLabelValue();
initializeDiseaseModelLabelValues(sIRLabelValue);
sIRLabelValue.setS(NUM_S_POPULATION);
sIRLabelValue.setI(NUM_I_POPULATION);
sIRLabelValue.setR(NUM_R_POPULATION);
final RelativeValueProvider relativeValueProvider = (RelativeValueProvider) fixture
.adapt(sIRLabelValue, RelativeValueProvider.class);
assertNotNull(relativeValueProvider);
final List<IItemPropertyDescriptor> properties = relativeValueProvider
.getProperties();
assertNotNull(properties);
assertTrue(properties.size() == NUM_SIR_DISEASE_MODEL_LABEL_VALUE_PROPERTIES);
assertTrue(relativeValueProvider
.getRelativeValue(StandardPackage.eINSTANCE
.getStandardDiseaseModelLabelValue_S()) == NUM_S_POPULATION
/ TOTAL_SIR_POPULATION);
assertTrue(relativeValueProvider
.getRelativeValue(StandardPackage.eINSTANCE.getSILabelValue_I()) == NUM_I_POPULATION
/ TOTAL_SIR_POPULATION);
assertTrue(relativeValueProvider
.getRelativeValue(StandardPackage.eINSTANCE
.getSIRLabelValue_R()) == NUM_R_POPULATION
/ TOTAL_SIR_POPULATION);
} // testCreateSIRLabelValueAdapter
/**
* Test method for
* {@link org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory#createSEIRLabelValueAdapter()}.
*/
public void testCreateSEIRLabelValueAdapter() {
final StandardRelativeValueProviderAdapterFactory fixture = getFixture();
final SEIRLabelValue sEIRLabelValue = StandardFactory.eINSTANCE
.createSEIRLabelValue();
initializeDiseaseModelLabelValues(sEIRLabelValue);
sEIRLabelValue.setS(NUM_S_POPULATION);
sEIRLabelValue.setE(NUM_E_POPULATION);
sEIRLabelValue.setI(NUM_I_POPULATION);
sEIRLabelValue.setR(NUM_R_POPULATION);
final RelativeValueProvider relativeValueProvider = (RelativeValueProvider) fixture
.adapt(sEIRLabelValue, RelativeValueProvider.class);
assertNotNull(relativeValueProvider);
final List<IItemPropertyDescriptor> properties = relativeValueProvider
.getProperties();
assertNotNull(properties);
assertTrue(properties.size() == NUM_SEIR_DISEASE_MODEL_LABEL_VALUE_PROPERTIES);
assertTrue(relativeValueProvider
.getRelativeValue(StandardPackage.eINSTANCE
.getStandardDiseaseModelLabelValue_S()) == NUM_S_POPULATION
/ TOTAL_SEIR_POPULATION);
assertTrue(relativeValueProvider
.getRelativeValue(StandardPackage.eINSTANCE
.getSEIRLabelValue_E()) == NUM_E_POPULATION
/ TOTAL_SEIR_POPULATION);
assertTrue(relativeValueProvider
.getRelativeValue(StandardPackage.eINSTANCE.getSILabelValue_I()) == NUM_I_POPULATION
/ TOTAL_SEIR_POPULATION);
assertTrue(relativeValueProvider
.getRelativeValue(StandardPackage.eINSTANCE
.getSIRLabelValue_R()) == NUM_R_POPULATION
/ TOTAL_SEIR_POPULATION);
} // testCreateSEIRLabelValueAdapter
/**
* Test that this factory is properly added to the composed adaptor factory
* <code>RelativeValueProviderAdapterFactoryImpl</code> so that the
* classes in the Standard (Disease model) package will be properly adapted
* to {@link RelativeValueProvider}'s.
*/
public void testProperAdapterFactoryComposition() {
final RelativeValueProviderAdapterFactory rvpaf = RelativeValueProviderAdapterFactory.INSTANCE;
// Make the label value to be adapted
final SEIRLabelValue sEIRLabelValue = StandardFactory.eINSTANCE
.createSEIRLabelValue();
initializeDiseaseModelLabelValues(sEIRLabelValue);
sEIRLabelValue.setS(NUM_S_POPULATION);
sEIRLabelValue.setE(NUM_E_POPULATION);
sEIRLabelValue.setI(NUM_I_POPULATION);
sEIRLabelValue.setR(NUM_R_POPULATION);
final RelativeValueProvider relativeValueProvider = (RelativeValueProvider) rvpaf
.adapt(sEIRLabelValue, RelativeValueProvider.class);
assertNotNull(relativeValueProvider);
assertTrue(relativeValueProvider instanceof StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelValueRelativeValueProvider);
} // testProperAdapterFactoryComposition
} // StandardRelativeValueProviderAdapterFactoryTest