public void test_minusAmount() { MultiCurrencyAmountArray array = MultiCurrencyAmountArray.of( ImmutableMap.of( Currency.USD, DoubleArray.of(30, 32, 33), Currency.EUR, DoubleArray.of(40, 43, 44), Currency.CHF, DoubleArray.of(50, 54, 56))); MultiCurrencyAmount amount = MultiCurrencyAmount.of( ImmutableMap.of( Currency.GBP, 21d, Currency.EUR, 143d, Currency.CHF, 254d)); MultiCurrencyAmountArray expected = MultiCurrencyAmountArray.of( ImmutableMap.of( Currency.GBP, DoubleArray.of(-21, -21, -21), Currency.USD, DoubleArray.of(30, 32, 33), Currency.EUR, DoubleArray.of(-103, -100, -99), Currency.CHF, DoubleArray.of(-204, -200, -198))); assertThat(array.minus(amount)).isEqualTo(expected); }
public void test_minusDifferentSize() { MultiCurrencyAmountArray array1 = MultiCurrencyAmountArray.of( ImmutableMap.of( Currency.USD, DoubleArray.of(30, 32), Currency.EUR, DoubleArray.of(40, 43), Currency.CHF, DoubleArray.of(50, 54))); MultiCurrencyAmountArray array2 = MultiCurrencyAmountArray.of( ImmutableMap.of( Currency.GBP, DoubleArray.of(20, 21, 22), Currency.EUR, DoubleArray.of(140, 143, 144), Currency.CHF, DoubleArray.of(250, 254, 256))); assertThrowsIllegalArg(() -> array1.minus(array2)); }
public void test_minusArray() { MultiCurrencyAmountArray array1 = MultiCurrencyAmountArray.of( ImmutableMap.of( Currency.USD, DoubleArray.of(30, 32, 33), Currency.EUR, DoubleArray.of(40, 43, 44), Currency.CHF, DoubleArray.of(50, 54, 56))); MultiCurrencyAmountArray array2 = MultiCurrencyAmountArray.of( ImmutableMap.of( Currency.GBP, DoubleArray.of(20, 21, 22), Currency.EUR, DoubleArray.of(140, 143, 144), Currency.CHF, DoubleArray.of(250, 254, 256))); MultiCurrencyAmountArray expected = MultiCurrencyAmountArray.of( ImmutableMap.of( Currency.GBP, DoubleArray.of(-20, -21, -22), Currency.USD, DoubleArray.of(30, 32, 33), Currency.EUR, DoubleArray.of(-100, -100, -100), Currency.CHF, DoubleArray.of(-200, -200, -200))); assertThat(array1.minus(array2)).isEqualTo(expected); }