@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case 1226228605: // sensitivities return ((CrossGammaParameterSensitivities) bean).getSensitivities(); } return super.propertyGet(bean, propertyName, quiet); }
public void test_combinedWith_one_notNormalized() { CrossGammaParameterSensitivities test = SENSI_1.combinedWith(ENTRY_EUR); assertEquals(test.getSensitivities(), ImmutableList.of(ENTRY_USD, ENTRY_EUR)); }
public void test_convertedTo_multipleCurrency() { CrossGammaParameterSensitivities test = SENSI_2.convertedTo(USD, FX_RATE); assertEquals(test.getSensitivities(), ImmutableList.of(ENTRY_USD2, ENTRY_EUR_IN_USD)); }
public void test_combinedWith_one_normalized() { CrossGammaParameterSensitivities test = SENSI_1.combinedWith(ENTRY_USD2); assertEquals(test.getSensitivities(), ImmutableList.of(ENTRY_USD_TOTAL)); }
public void test_combinedWith_other() { CrossGammaParameterSensitivities test = SENSI_1.combinedWith(SENSI_2); assertEquals(test.getSensitivities(), ImmutableList.of(ENTRY_USD_TOTAL, ENTRY_EUR)); }
public void test_of_list_notNormalized() { ImmutableList<CrossGammaParameterSensitivity> list = ImmutableList.of(ENTRY_USD, ENTRY_EUR); CrossGammaParameterSensitivities test = CrossGammaParameterSensitivities.of(list); assertEquals(test.size(), 2); assertEquals(test.getSensitivities(), ImmutableList.of(ENTRY_USD, ENTRY_EUR)); }
public void test_of_list_normalized() { ImmutableList<CrossGammaParameterSensitivity> list = ImmutableList.of(ENTRY_USD, ENTRY_USD2); CrossGammaParameterSensitivities test = CrossGammaParameterSensitivities.of(list); assertEquals(test.size(), 1); assertEquals(test.getSensitivities(), ImmutableList.of(ENTRY_USD_TOTAL)); }
public void test_empty() { CrossGammaParameterSensitivities test = CrossGammaParameterSensitivities.empty(); assertEquals(test.size(), 0); assertEquals(test.getSensitivities().size(), 0); }
public void test_of_single() { CrossGammaParameterSensitivities test = CrossGammaParameterSensitivities.of(ENTRY_USD); assertEquals(test.size(), 1); assertEquals(test.getSensitivities(), ImmutableList.of(ENTRY_USD)); }
public void test_convertedTo_singleCurrency() { CrossGammaParameterSensitivities test = SENSI_1.convertedTo(USD, FxMatrix.empty()); assertEquals(test.getSensitivities(), ImmutableList.of(ENTRY_USD)); }
public void test_convertedTo_multipleCurrency_mergeWhenSameName() { CrossGammaParameterSensitivities test = SENSI_1.combinedWith(ENTRY_USD2_IN_EUR).convertedTo(USD, FX_RATE); assertEquals(test.getSensitivities(), ImmutableList.of(ENTRY_USD_TOTAL)); }
private CrossGammaParameterSensitivity combineSensitivities( CurrencyParameterSensitivity baseDeltaSingle, CrossGammaParameterSensitivities blockCrossGamma) { double[][] valuesTotal = new double[baseDeltaSingle.getParameterCount()][]; List<Pair<MarketDataName<?>, List<? extends ParameterMetadata>>> order = new ArrayList<>(); for (int i = 0; i < baseDeltaSingle.getParameterCount(); ++i) { ArrayList<Double> innerList = new ArrayList<>(); for (CrossGammaParameterSensitivity gammaSingle : blockCrossGamma.getSensitivities()) { innerList.addAll(gammaSingle.getSensitivity().row(i).toList()); if (i == 0) { order.add(gammaSingle.getOrder().get(0)); } } valuesTotal[i] = Doubles.toArray(innerList); } return CrossGammaParameterSensitivity.of( baseDeltaSingle.getMarketDataName(), baseDeltaSingle.getParameterMetadata(), order, baseDeltaSingle.getCurrency(), DoubleMatrix.ofUnsafe(valuesTotal)); }
public void test_mapSensitivities() { CrossGammaParameterSensitivities multiplied = SENSI_1.mapSensitivities(a -> 1 / a); DoubleMatrix test = multiplied.getSensitivities().get(0).getSensitivity(); for (int i = 0; i < MATRIX_USD1.columnCount(); i++) { for (int j = 0; j < MATRIX_USD1.rowCount(); j++) { assertEquals(test.get(i, j), 1 / MATRIX_USD1.get(i, j)); } } }
public void test_multipliedBy() { CrossGammaParameterSensitivities multiplied = SENSI_1.multipliedBy(FACTOR1); DoubleMatrix test = multiplied.getSensitivities().get(0).getSensitivity(); for (int i = 0; i < MATRIX_USD1.columnCount(); i++) { for (int j = 0; j < MATRIX_USD1.rowCount(); j++) { assertEquals(test.get(i, j), MATRIX_USD1.get(i, j) * FACTOR1); } } }
assertEquals(sensi.size(), 1); assertEquals(diagonalComputed.size(), 1); DoubleMatrix s = sensi.getSensitivities().get(0).getSensitivity(); assertEquals(s.columnCount(), times.size()); for (int i = 0; i < times.size(); i++) {