/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.math.function.special; import static org.testng.AssertJUnit.assertEquals; import org.testng.annotations.Test; import com.opengamma.analytics.math.function.Function1D; import com.opengamma.util.test.TestGroup; /** * Tests related to the DoubleRampFunction. */ @Test(groups = TestGroup.UNIT) public class DoubleRampFunctionTest { private static final double X1 = 0.5; private static final double X2 = 0.6; private static final double Y1 = 1; private static final double Y2 = 0.99; private static final Function1D<Double, Double> F = new DoubleRampFunction(X1, X2, Y1, Y2); private static final double TOLERANCE_EVALUATE = 1.0E-10; @Test(expectedExceptions = IllegalArgumentException.class) public void wrongOrder() { new DoubleRampFunction(X2, X1, Y1, Y2); } @Test public void evaluate() { assertEquals("DoubleRampFunction: evaluate", F.evaluate(X1 - 1e-15), Y1, TOLERANCE_EVALUATE); assertEquals("DoubleRampFunction: evaluate", F.evaluate(X2 + 1e-15), Y2, TOLERANCE_EVALUATE); assertEquals("DoubleRampFunction: evaluate", F.evaluate(0.5 * X1 + 0.5 * X2), 0.5 * Y1 + 0.5 * Y2, TOLERANCE_EVALUATE); assertEquals("DoubleRampFunction: evaluate", F.evaluate(0.2 * X1 + 0.8 * X2), 0.2 * Y1 + 0.8 * Y2, TOLERANCE_EVALUATE); } }