package eu.scape_project.planning.model.transform; import junit.framework.Assert; import org.junit.Test; import eu.scape_project.planning.model.values.FloatValue; import eu.scape_project.planning.model.values.TargetValue; public class NumericTransformerTest { @Test public void testDefaults() { NumericTransformer numTran = new NumericTransformer(); numTran.defaults(5, 1); Assert.assertTrue(numTran.getThreshold1() == 1); Assert.assertTrue(numTran.getThreshold2() == 2); Assert.assertTrue(numTran.getThreshold3() == 3); Assert.assertTrue(numTran.getThreshold4() == 4); Assert.assertTrue(numTran.getThreshold5() == 5); numTran.defaults(1.2, 0.8); Assert.assertTrue(numTran.getThreshold1() == 0.8); Assert.assertTrue(numTran.getThreshold2() == 0.9); Assert.assertTrue(numTran.getThreshold3() == 1.0); Assert.assertTrue(numTran.getThreshold4() == 1.1); Assert.assertTrue(numTran.getThreshold5() == 1.2); } @Test public void testTransformBack_increasingOrder() { NumericTransformer numTran = new NumericTransformer(); numTran.defaults(1.2, 0.8); double res = numTran.transformBack(4.5); Assert.assertEquals(1.2, res); } @Test public void testTransformBack_decreasingOrder() { NumericTransformer numTran = new NumericTransformer(); numTran.defaults(0.8, 1.2); double res = numTran.transformBack(4.5); Assert.assertEquals(0.8, res); } @Test public void testTransformThresholdStepping_increasingOrder() { NumericTransformer numTran = new NumericTransformer(); numTran.setMode(TransformationMode.THRESHOLD_STEPPING); numTran.defaults(1.2, 0.8); FloatValue value = new FloatValue(); value.setValue(1.12); TargetValue res = numTran.transform(value); Assert.assertTrue(res.getValue() == 4); value.setValue(0.81); res = numTran.transform(value); Assert.assertTrue(res.getValue() == 1); } @Test public void testTransformThresholdStepping_decreasingOrder() { NumericTransformer numTran = new NumericTransformer(); numTran.setMode(TransformationMode.THRESHOLD_STEPPING); numTran.defaults(0.8, 1.2); FloatValue value = new FloatValue(); value.setValue(1.201); TargetValue res = numTran.transform(value); Assert.assertTrue(res.getValue() == 0); value.setValue(1.02); res = numTran.transform(value); Assert.assertTrue(res.getValue() == 2); } @Test public void testTransformLinear_increasingOrder() { NumericTransformer numTran = new NumericTransformer(); numTran.setMode(TransformationMode.LINEAR); numTran.defaults(1.2, 0.8); FloatValue value = new FloatValue(); value.setValue(0.5); TargetValue res = numTran.transform(value); Assert.assertTrue(res.getValue() == 0); value.setValue(0.85); res = numTran.transform(value); // System.out.println(res.getValue()); Assert.assertTrue(Math.abs(res.getValue() - 1.5) <= 10e-8); FloatValue x1 = new FloatValue(); x1.setValue(0.91); FloatValue x2 = new FloatValue(); x2.setValue(1.07); TargetValue y1 = numTran.transform(x1); TargetValue y2 = numTran.transform(x2); FloatValue xt = new FloatValue(); xt.setValue(1.02); double expected = ((y2.getValue() - y1.getValue()) / (x2.getValue() - x1.getValue())) * (xt.getValue() - x1.getValue()) + y1.getValue(); TargetValue rez = numTran.transform(xt); // System.out.println(expected + " " + rez.getValue()); Assert.assertTrue(Math.abs(rez.getValue() - expected) <= 10e-8); } @Test public void testTransformLinear_decreasingOrder() { NumericTransformer numTran = new NumericTransformer(); numTran.setMode(TransformationMode.LINEAR); numTran.defaults(0.8, 1.2); FloatValue x1 = new FloatValue(); x1.setValue(0.91); FloatValue x2 = new FloatValue(); x2.setValue(1.07); TargetValue y1 = numTran.transform(x1); TargetValue y2 = numTran.transform(x2); FloatValue xt = new FloatValue(); xt.setValue(1.02); double expected = ((y2.getValue() - y1.getValue()) / (x2.getValue() - x1.getValue())) * (xt.getValue() - x1.getValue()) + y1.getValue(); TargetValue rez = numTran.transform(xt); // System.out.println(expected + " " + rez.getValue()); Assert.assertTrue(Math.abs(rez.getValue() - expected) <= 10e-8); } }