public void test_of_list_none() { ImmutableList<UnitParameterSensitivity> list = ImmutableList.of(); UnitParameterSensitivities test = UnitParameterSensitivities.of(list); assertEquals(test.size(), 0); }
public void test_of_array_none() { UnitParameterSensitivities test = UnitParameterSensitivities.of(); assertEquals(test.size(), 0); }
public void test_of_list_notNormalized() { ImmutableList<UnitParameterSensitivity> list = ImmutableList.of(ENTRY1, ENTRY3); UnitParameterSensitivities test = UnitParameterSensitivities.of(list); assertEquals(test.size(), 2); assertEquals(test.getSensitivities(), ImmutableList.of(ENTRY1, ENTRY3)); }
public void test_of_single() { UnitParameterSensitivities test = UnitParameterSensitivities.of(ENTRY1); assertEquals(test.size(), 1); assertEquals(test.getSensitivities(), ImmutableList.of(ENTRY1)); }
public void test_of_list_normalized() { ImmutableList<UnitParameterSensitivity> list = ImmutableList.of(ENTRY1, ENTRY2); UnitParameterSensitivities test = UnitParameterSensitivities.of(list); assertEquals(test.size(), 1); assertEquals(test.getSensitivities(), ImmutableList.of(ENTRY_TOTAL_1_2)); }
public void test_empty() { UnitParameterSensitivities test = UnitParameterSensitivities.empty(); assertEquals(test.size(), 0); assertEquals(test.getSensitivities().size(), 0); }
private DoubleArray sensitivitySwap(BasicFixedLeg swap, NodalCurve curve, double swapRate) { int nPayments = swap.getNumPayments(); double annuity = 0d; UnitParameterSensitivities sensi = UnitParameterSensitivities.empty(); for (int i = 0; i < nPayments - 1; i++) { double t = swap.getPaymentTime(i); double df = Math.exp(-curve.yValue(t) * t); annuity += swap.getYearFraction(i) * df; sensi = sensi.combinedWith(curve.yValueParameterSensitivity(t).multipliedBy(-df * t * swap.getYearFraction(i) * swapRate)); } int lastIndex = nPayments - 1; double t = swap.getPaymentTime(lastIndex); double df = Math.exp(-curve.yValue(t) * t); annuity += swap.getYearFraction(lastIndex) * df; sensi = sensi.combinedWith( curve.yValueParameterSensitivity(t).multipliedBy(-df * t * (1d + swap.getYearFraction(lastIndex) * swapRate))); sensi = sensi.multipliedBy(-1d / annuity); ArgChecker.isTrue(sensi.size() == 1); return sensi.getSensitivities().get(0).getSensitivity(); }