### Question:
CurrencyParameterSensitivities implements FxConvertible<CurrencyParameterSensitivities>, ImmutableBean, Serializable { public CurrencyAmount total(Currency resultCurrency, FxRateProvider rateProvider) { CurrencyParameterSensitivities converted = convertedTo(resultCurrency, rateProvider); double total = converted.sensitivities.stream() .mapToDouble(s -> s.getSensitivity().sum()) .sum(); return CurrencyAmount.of(resultCurrency, total); } @ImmutableConstructor private  CurrencyParameterSensitivities(List<? extends CurrencyParameterSensitivity> sensitivities); private  CurrencyParameterSensitivities(ImmutableList<CurrencyParameterSensitivity> sensitivities); static CurrencyParameterSensitivities empty(); static CurrencyParameterSensitivitiesBuilder builder(); static CurrencyParameterSensitivities of(CurrencyParameterSensitivity sensitivity); static CurrencyParameterSensitivities of(CurrencyParameterSensitivity... sensitivities); static CurrencyParameterSensitivities of(List<? extends CurrencyParameterSensitivity> sensitivities); int size(); CurrencyParameterSensitivity getSensitivity(MarketDataName<?> name, Currency currency); Optional<CurrencyParameterSensitivity> findSensitivity(MarketDataName<?> name, Currency currency); CurrencyParameterSensitivities combinedWith(CurrencyParameterSensitivity other); CurrencyParameterSensitivities combinedWith(CurrencyParameterSensitivities other); CurrencyParameterSensitivities mergedWith(CurrencyParameterSensitivities other); CurrencyParameterSensitivities withMarketDataNames(Function<MarketDataName<?>, MarketDataName<?>> nameFn); CurrencyParameterSensitivities withParameterMetadatas(UnaryOperator<ParameterMetadata> mdFn); @Override CurrencyParameterSensitivities convertedTo(Currency resultCurrency, FxRateProvider rateProvider); CurrencyParameterSensitivities split(); CurrencyAmount total(Currency resultCurrency, FxRateProvider rateProvider); MultiCurrencyAmount total(); CurrencyParameterSensitivities multipliedBy(double factor); CurrencyParameterSensitivities mapSensitivities(DoubleUnaryOperator operator); boolean equalWithTolerance(CurrencyParameterSensitivities other, double tolerance); CurrencyParameterSensitivitiesBuilder toBuilder(); static CurrencyParameterSensitivities.Meta meta(); @Override CurrencyParameterSensitivities.Meta metaBean(); ImmutableList<CurrencyParameterSensitivity> getSensitivities(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void test_total_multipleCurrency() { assertThat(SENSI_2.total(USD, FX_RATE).getAmount()).isCloseTo(VECTOR_USD2.sum() + VECTOR_EUR1.sum() * 1.6d, offset(1e-8)); }