package eu.choreos.vv; import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; import eu.choreos.vv.data.ReportData; import eu.choreos.vv.increasefunctions.ExponentialIncrease; import eu.choreos.vv.increasefunctions.LinearIncrease; import eu.choreos.vv.increasefunctions.ScalabilityFunction; import eu.choreos.vv.stop.IterationsStop; public class ScaleCasterTest { ScaleCaster caster; @Before public void setUp() { caster = new ScaleCaster(new Scalable() { @Override public ReportData execute(ScaleCaster scaleCaster) throws Exception { // TODO Auto-generated method stub return new ReportData(); } },"name", new IterationsStop(5)); } @Test public void oneParameter() { ScalabilityFunction function = new LinearIncrease(10); String key = caster.addInitialParameterValue(0, function); caster.execute(); int value = caster.getCurrentParameterValue(key).intValue(); assertEquals(50, value); } @Test public void twoParametersOneFunction() { ScalabilityFunction function = new ExponentialIncrease(2); String key1 = caster.addInitialParameterValue(1, function); String key2 = caster.addInitialParameterValue(2, function); caster.execute(); int value1 = caster.getCurrentParameterValue(key1).intValue(); int value2 = caster.getCurrentParameterValue(key2).intValue(); assertEquals(32, value1); assertEquals(64, value2); } @Test public void twoParametersTwoFunctions() { String key1 = caster.addInitialParameterValue(1, new ExponentialIncrease(2)); String key2 = caster.addInitialParameterValue(2, new LinearIncrease(2)); caster.execute(); int value1 = caster.getCurrentParameterValue(key1).intValue(); int value2 = caster.getCurrentParameterValue(key2).intValue(); assertEquals(32, value1); assertEquals(12, value2); } }