/**
* Copyright (C) 2016 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.strata.market.curve;
import static com.opengamma.strata.collect.TestHelper.coverBeanEquals;
import static com.opengamma.strata.collect.TestHelper.coverImmutableBean;
import static org.testng.Assert.assertEquals;
import org.testng.annotations.Test;
import com.opengamma.strata.basics.ReferenceData;
import com.opengamma.strata.basics.date.DayCounts;
import com.opengamma.strata.collect.array.DoubleArray;
import com.opengamma.strata.data.scenario.MarketDataBox;
import com.opengamma.strata.market.curve.interpolator.CurveInterpolators;
/**
* Test {@link CurveParallelShifts}.
*/
@Test
public class CurveParallelShiftsTest {
private static final ReferenceData REF_DATA = ReferenceData.standard();
public void test_absolute() {
CurveParallelShifts test = CurveParallelShifts.absolute(1d, 2d, 4d);
Curve baseCurve = InterpolatedNodalCurve.of(
Curves.zeroRates("curve", DayCounts.ACT_365F),
DoubleArray.of(1, 2, 3),
DoubleArray.of(5, 6, 7),
CurveInterpolators.LOG_LINEAR);
MarketDataBox<Curve> shiftedCurveBox = test.applyTo(MarketDataBox.ofSingleValue(baseCurve), REF_DATA);
assertEquals(shiftedCurveBox.getValue(0), ParallelShiftedCurve.absolute(baseCurve, 1d));
assertEquals(shiftedCurveBox.getValue(1), ParallelShiftedCurve.absolute(baseCurve, 2d));
assertEquals(shiftedCurveBox.getValue(2), ParallelShiftedCurve.absolute(baseCurve, 4d));
}
public void test_relative() {
CurveParallelShifts test = CurveParallelShifts.relative(0.1d, 0.2d, 0.4d);
Curve baseCurve = InterpolatedNodalCurve.of(
Curves.zeroRates("curve", DayCounts.ACT_365F),
DoubleArray.of(1, 2, 3),
DoubleArray.of(5, 6, 7),
CurveInterpolators.LOG_LINEAR);
MarketDataBox<Curve> shiftedCurveBox = test.applyTo(MarketDataBox.ofSingleValue(baseCurve), REF_DATA);
assertEquals(shiftedCurveBox.getValue(0), ParallelShiftedCurve.relative(baseCurve, 0.1d));
assertEquals(shiftedCurveBox.getValue(1), ParallelShiftedCurve.relative(baseCurve, 0.2d));
assertEquals(shiftedCurveBox.getValue(2), ParallelShiftedCurve.relative(baseCurve, 0.4d));
}
//-------------------------------------------------------------------------
public void coverage() {
CurveParallelShifts test = CurveParallelShifts.absolute(1d, 2d, 4d);
coverImmutableBean(test);
CurveParallelShifts test2 = CurveParallelShifts.relative(2d, 3d, 4d);
coverBeanEquals(test, test2);
}
}