final Map<String, List<DoublesPair>> sensi11 = new HashMap<>();
final Map<String, List<DoublesPair>> sensi12 = new HashMap<>();
final Map<String, List<DoublesPair>> sensi22 = new HashMap<>();
final Map<String, List<DoublesPair>> sensi33 = new HashMap<>();
sensi11.put(CURVE_NAME_1, SENSI_DATA_1);
final InflationSensitivity pvSensi_11 = InflationSensitivity.ofYieldDiscounting(sensi11);
sensi22.put(CURVE_NAME_2, SENSI_DATA_2);
final InflationSensitivity pvSensi_22 = InflationSensitivity.ofYieldDiscounting(sensi22);
sensi12.put(CURVE_NAME_1, SENSI_DATA_2);
final InflationSensitivity pvSensi_12 = InflationSensitivity.ofYieldDiscounting(sensi12);
sensi33.put(CURVE_NAME_3, SENSI_DATA_3);
final InflationSensitivity pvSensi_33 = InflationSensitivity.ofYieldDiscounting(sensi33);
// Simple add
final Map<String, List<DoublesPair>> expectedSensi11add22 = new HashMap<>();
expectedSensi11add22.put(CURVE_NAME_1, SENSI_DATA_1);
expectedSensi11add22.put(CURVE_NAME_2, SENSI_DATA_2);
assertEquals(expectedSensi11add22, pvSensi_11.plus(pvSensi_22).getYieldDiscountingSensitivities());
assertEquals(InflationSensitivity.ofYieldDiscounting(expectedSensi11add22), pvSensi_11.plus(pvSensi_22));
// Multiply
final List<DoublesPair> sensiData1Multiply050 = Arrays.asList(new DoublesPair[] {new DoublesPair(1, 5.0), new DoublesPair(2, 10.0), new DoublesPair(3, 15.0), new DoublesPair(4, 20.0)});
final Map<String, List<DoublesPair>> expectedSensi1Multiply05 = new HashMap<>();
expectedSensi1Multiply05.put(CURVE_NAME_1, sensiData1Multiply050);
assertEquals(expectedSensi1Multiply05, pvSensi_11.multipliedBy(0.5).getYieldDiscountingSensitivities());
assertEquals(InflationSensitivity.ofYieldDiscounting(expectedSensi1Multiply05), pvSensi_11.multipliedBy(0.5));
// Add on the same curve
final List<DoublesPair> expectedSensiData1add2 = new ArrayList<>();
expectedSensiData1add2.addAll(SENSI_DATA_1);
expectedSensiData1add2.addAll(SENSI_DATA_2);
final Map<String, List<DoublesPair>> expectedSensi11add12 = new HashMap<>();
expectedSensi11add12.put(CURVE_NAME_1, expectedSensiData1add2);
assertEquals(expectedSensi11add12, pvSensi_11.plus(pvSensi_12).getYieldDiscountingSensitivities());
assertEquals(InflationSensitivity.ofYieldDiscounting(expectedSensi11add12), pvSensi_11.plus(pvSensi_12));
// Add multi-curve
final Map<String, List<DoublesPair>> expectedSensiAddMulti = new HashMap<>();
expectedSensiAddMulti.put(CURVE_NAME_1, expectedSensiData1add2);
expectedSensiAddMulti.put(CURVE_NAME_2, SENSI_DATA_2);
expectedSensiAddMulti.put(CURVE_NAME_3, SENSI_DATA_3);
assertEquals(expectedSensiAddMulti, pvSensi_11.plus(pvSensi_22.plus(pvSensi_33.plus(pvSensi_12))).getYieldDiscountingSensitivities());
assertEquals(InflationSensitivity.ofYieldDiscounting(expectedSensiAddMulti), pvSensi_11.plus(pvSensi_22.plus(pvSensi_33.plus(pvSensi_12))));
}