### Question:
MultiCurrencyScenarioArray implements ScenarioArray<MultiCurrencyAmount>, ScenarioFxConvertible<CurrencyScenarioArray>, ImmutableBean, Serializable { public static MultiCurrencyScenarioArray of(MultiCurrencyAmountArray amounts) { return new MultiCurrencyScenarioArray(amounts); } private  MultiCurrencyScenarioArray(
      MultiCurrencyAmountArray amounts); static MultiCurrencyScenarioArray of(MultiCurrencyAmountArray amounts); static MultiCurrencyScenarioArray of(MultiCurrencyAmount... amounts); static MultiCurrencyScenarioArray of(List<MultiCurrencyAmount> amounts); static MultiCurrencyScenarioArray of(int size, IntFunction<MultiCurrencyAmount> amountFunction); static MultiCurrencyScenarioArray of(Map<Currency, DoubleArray> values); Set<Currency> getCurrencies(); DoubleArray getValues(Currency currency); @Override int getScenarioCount(); @Override MultiCurrencyAmount get(int index); @Override Stream<MultiCurrencyAmount> stream(); @Override CurrencyScenarioArray convertedTo(Currency reportingCurrency, ScenarioFxRateProvider fxRateProvider); static MultiCurrencyScenarioArray total(Iterable<CurrencyScenarioArray> arrays); static Collector<CurrencyScenarioArray, ?, MultiCurrencyScenarioArray> toMultiCurrencyScenarioArray(); static MultiCurrencyScenarioArray.Meta meta(); @Override MultiCurrencyScenarioArray.Meta metaBean(); MultiCurrencyAmountArray getAmounts(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void mapFactoryMethod() { MultiCurrencyScenarioArray array = MultiCurrencyScenarioArray.of( ImmutableMap.of( Currency.GBP, DoubleArray.of(20, 21, 22), Currency.USD, DoubleArray.of(30, 32, 33), Currency.EUR, DoubleArray.of(40, 43, 44))); assertThat(array).isEqualTo(VALUES_ARRAY); assertThatIllegalArgumentException() .isThrownBy( () -> MultiCurrencyScenarioArray.of( ImmutableMap.of( Currency.GBP, DoubleArray.of(20, 21), Currency.EUR, DoubleArray.of(40, 43, 44)))) .withMessageStartingWith("Arrays must have the same size"); }
@Test public void coverage() { coverImmutableBean(VALUES_ARRAY); MultiCurrencyScenarioArray test2 = MultiCurrencyScenarioArray.of( MultiCurrencyAmount.of( CurrencyAmount.of(Currency.GBP, 21), CurrencyAmount.of(Currency.USD, 31), CurrencyAmount.of(Currency.EUR, 41)), MultiCurrencyAmount.of( CurrencyAmount.of(Currency.GBP, 22), CurrencyAmount.of(Currency.USD, 33), CurrencyAmount.of(Currency.EUR, 44))); coverBeanEquals(VALUES_ARRAY, test2); }