### Question:
CurrencyScenarioArray implements ScenarioArray<CurrencyAmount>, ScenarioFxConvertible<CurrencyScenarioArray>, ImmutableBean, Serializable { public static CurrencyScenarioArray of(CurrencyAmountArray amounts) { return new CurrencyScenarioArray(amounts); } private  CurrencyScenarioArray(
      CurrencyAmountArray amounts); static CurrencyScenarioArray of(CurrencyAmountArray amounts); static CurrencyScenarioArray of(Currency currency, DoubleArray values); static CurrencyScenarioArray of(List<CurrencyAmount> amounts); static CurrencyScenarioArray of(int size, IntFunction<CurrencyAmount> amountFunction); Currency getCurrency(); @Override int getScenarioCount(); @Override CurrencyAmount get(int index); @Override Stream<CurrencyAmount> stream(); @Override CurrencyScenarioArray convertedTo(Currency reportingCurrency, ScenarioFxRateProvider fxRateProvider); CurrencyScenarioArray plus(CurrencyScenarioArray other); CurrencyScenarioArray plus(CurrencyAmount amount); CurrencyScenarioArray minus(CurrencyScenarioArray other); CurrencyScenarioArray minus(CurrencyAmount amount); static CurrencyScenarioArray.Meta meta(); @Override CurrencyScenarioArray.Meta metaBean(); CurrencyAmountArray getAmounts(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void create_fromList_mixedCurrency() { List<CurrencyAmount> values = ImmutableList.of( CurrencyAmount.of(GBP, 1), CurrencyAmount.of(USD, 2), CurrencyAmount.of(GBP, 3)); assertThatIllegalArgumentException().isThrownBy(() -> CurrencyScenarioArray.of(values)); }
@Test public void coverage() { DoubleArray values = DoubleArray.of(1, 2, 3); CurrencyScenarioArray test = CurrencyScenarioArray.of(GBP, values); coverImmutableBean(test); DoubleArray values2 = DoubleArray.of(1, 2, 3); CurrencyScenarioArray test2 = CurrencyScenarioArray.of(USD, values2); coverBeanEquals(test, test2); }