public void test_of() {
assertThat(VALUES_ARRAY.getValues(Currency.GBP)).isEqualTo(DoubleArray.of(20, 21, 22));
assertThat(VALUES_ARRAY.getValues(Currency.USD)).isEqualTo(DoubleArray.of(30, 32, 33));
assertThat(VALUES_ARRAY.getValues(Currency.EUR)).isEqualTo(DoubleArray.of(40, 43, 44));
MultiCurrencyAmountArray raggedArray = MultiCurrencyAmountArray.of(
ImmutableList.of(
MultiCurrencyAmount.of(
CurrencyAmount.of(Currency.EUR, 4)),
MultiCurrencyAmount.of(
CurrencyAmount.of(Currency.GBP, 21),
CurrencyAmount.of(Currency.USD, 32),
CurrencyAmount.of(Currency.EUR, 43)),
MultiCurrencyAmount.of(
CurrencyAmount.of(Currency.EUR, 44))));
assertThat(raggedArray.size()).isEqualTo(3);
assertThat(VALUES_ARRAY.getCurrencies()).containsExactlyInAnyOrder(Currency.GBP, Currency.USD, Currency.EUR);
assertThat(raggedArray.getValues(Currency.GBP)).isEqualTo(DoubleArray.of(0, 21, 0));
assertThat(raggedArray.getValues(Currency.USD)).isEqualTo(DoubleArray.of(0, 32, 0));
assertThat(raggedArray.getValues(Currency.EUR)).isEqualTo(DoubleArray.of(4, 43, 44));
assertThrowsIllegalArg(() -> raggedArray.getValues(Currency.AUD));
}