//-------------------------------------------------------------------------
        private void assertMCA(MultiCurrencyAmount actual, params CurrencyAmount[] expected)
        {
            assertEquals(actual.size(), expected.Length);
            assertEquals(actual.Amounts.size(), expected.Length);
            assertEquals(actual.Amounts, ImmutableSet.copyOf(expected));
            ISet <Currency> currencies = new HashSet <Currency>();

            foreach (CurrencyAmount expectedAmount in expected)
            {
                currencies.Add(expectedAmount.Currency);
                assertEquals(actual.contains(expectedAmount.Currency), true);
                assertEquals(actual.getAmount(expectedAmount.Currency), expectedAmount);
                assertEquals(actual.getAmountOrZero(expectedAmount.Currency), expectedAmount);
            }
            assertEquals(actual.Currencies, currencies);
            Currency nonExisting = Currency.of("FRZ");

            assertEquals(actual.contains(nonExisting), false);
            assertThrowsIllegalArg(() => actual.getAmount(nonExisting));
            assertEquals(actual.getAmountOrZero(nonExisting), CurrencyAmount.zero(nonExisting));
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Returns a new array containing the values from this array with the values from the amount subtracted.
 /// <para>
 /// The amount is subtracted from each element in this array.
 ///
 /// </para>
 /// </summary>
 /// <param name="amount">  the amount to subtract </param>
 /// <returns> a new array containing the values from this array with the values from the amount subtracted </returns>
 public MultiCurrencyAmountArray minus(MultiCurrencyAmount amount)
 {
     ImmutableMap.Builder <Currency, DoubleArray> builder = ImmutableMap.builder();
     foreach (Currency currency in Sets.union(values.Keys, amount.Currencies))
     {
         DoubleArray array = values.get(currency);
         if (array == null)
         {
             builder.put(currency, DoubleArray.filled(size_Renamed, -amount.getAmount(currency).Amount));
         }
         else if (!amount.contains(currency))
         {
             builder.put(currency, array);
         }
         else
         {
             builder.put(currency, array.minus(amount.getAmount(currency).Amount));
         }
     }
     return(MultiCurrencyAmountArray.of(builder.build()));
 }
        //-------------------------------------------------------------------------
        public virtual void test_contains_null()
        {
            MultiCurrencyAmount @base = MultiCurrencyAmount.of(CA1, CA2);

            assertThrowsIllegalArg(() => @base.contains(null));
        }