public void TestReduceMoneyDifferentCurrency()
            {
                Bank bank = new Bank();
                bank.AddRate("CHF", "USD", 2);

                Money actual = bank.Reduce(Money.Franc(2), "USD");

                Assert.Equal(Money.Dollar(1), actual);
            }
        public void TestSumTimes()
        {
            Expression fiveBucks = Money.Dollar(5);
            Expression tenFrancs = Money.Franc(10);
            Bank bank = new Bank();
            bank.AddRate("CHF", "USD", 2);
            Expression sum = new Sum(fiveBucks, tenFrancs).Times(2);

            Money actual = bank.Reduce(sum, "USD");

            Assert.Equal(Money.Dollar(20), actual);
        }
            public void TestMixedAddition()
            {
                Expression fiveBucks = Money.Dollar(5);
                Expression tenFrancs = Money.Franc(10);
                Bank bank = new Bank();
                bank.AddRate("CHF", "USD", 2);

                Money actual = bank.Reduce(fiveBucks.Plus(tenFrancs), "USD");

                Assert.Equal(Money.Dollar(10), actual);
            }