Ejemplo n.º 1
0
 public void CC_Returns_2_Combos_Totalling_5_Coins_Where_Value_Is_3()
 {
     /*
      *  .5d,.5d,.5d
      *  1d,.5d
      */
     Assert.IsTrue(CoinCalculator.TotalCoinsForEachCombination(Gen(3).First()).Count() == 2);
     Assert.IsTrue(CoinCalculator.TotalCoinsForEachCombination(Gen(3).First()).Sum() == 5);
 }
Ejemplo n.º 2
0
        public void CalculateCoinBreakdown_WithNegativeCents()
        {
            // arrange

            // act
            var results = CoinCalculator.CalculateCoinBreakdown(-16);

            // assert
            Assert.Empty(results);
        }
Ejemplo n.º 3
0
 public void CC_Returns_3_Combos_Totalling_12_Coins_Where_Value_Is_5()
 {
     /*
      *  .5d,.5d,.5d,.5d,.5d,
      *  1d,.5d,.5d,5d
      *  1d,1d,.5d
      *
      */
     Assert.IsTrue(CoinCalculator.TotalCoinsForEachCombination(Gen(5).First()).Count() == 3);
     Assert.IsTrue(CoinCalculator.TotalCoinsForEachCombination(Gen(5).First()).Sum() == 12);
 }
Ejemplo n.º 4
0
 public void CC_Returns_4_Combos_Totalling_X_Coins_Where_Value_Is_6()
 {
     /*
      *  .5d,.5d,.5d,.5d,.5d,.5d
      *  1d,.5d,.5d,5d,.5d
      *  1d,1d,.5d,.5d
      * 1d,1d,1d
      * 3p
      *
      */
     Assert.IsTrue(CoinCalculator.TotalCoinsForEachCombination(Gen(6).First()).Count() == 5);
     Assert.IsTrue(CoinCalculator.TotalCoinsForEachCombination(Gen(6).First()).Sum() == 19);
 }
Ejemplo n.º 5
0
        public void CalculateCoinBreakdown_WithValidCents(
            int initialCents,
            int expectedQuarters,
            int expectedDimes,
            int expectedNickels,
            int expectedPennies)
        {
            // arrange

            // act
            var results = CoinCalculator.CalculateCoinBreakdown(initialCents);

            // assert
            Assert.Equal(4, results.Count);
            Assert.Equal(expectedQuarters, results.First(p => p.Type == CoinType.Quarter).Amount);
            Assert.Equal(expectedDimes, results.First(p => p.Type == CoinType.Dime).Amount);
            Assert.Equal(expectedNickels, results.First(p => p.Type == CoinType.Nickel).Amount);
            Assert.Equal(expectedPennies, results.First(p => p.Type == CoinType.Penny).Amount);
        }
Ejemplo n.º 6
0
        public void Convert()
        {
            try
            {
                ErrorMessage = null;
                if (string.IsNullOrEmpty(DollarValue))
                {
                    throw new FormatException();
                }

                Cents       = CalculateCents(DollarValue);
                CoinResults = CoinCalculator.CalculateCoinBreakdown(Cents);
            }
            catch
            {
                ErrorMessage = "The dollar value must be a valid number between 0.00 and 1000.00.";
                CoinResults.Clear();
            }
        }
Ejemplo n.º 7
0
 public void CC_Returns_2377_Where_Value_Is_24d()
 {
     Assert.IsTrue(CoinCalculator.CalculateTotalWaysToShare(48, CoinFactory.GenerateCoinStatic()) == 2377);
 }
Ejemplo n.º 8
0
 public void CC_Returns_141_Where_Value_Is_12d()
 {
     Assert.IsTrue(CoinCalculator.CalculateTotalWaysToShare(24, CoinFactory.GenerateCoinStatic()) == 141);
 }
Ejemplo n.º 9
0
 public void CC_Returns_2_Combos_Totalling_3_Coins_Where_Value_Is_2()
 {
     Assert.IsTrue(CoinCalculator.TotalCoinsForEachCombination(Gen(2).First()).Count() == 2);
     Assert.IsTrue(CoinCalculator.TotalCoinsForEachCombination(Gen(2).First()).Sum() == 3);
 }
Ejemplo n.º 10
0
 public void CC_Returns_0_Where_Value_Is_0()
 {
     Assert.IsTrue(CoinCalculator.TotalCoinsForEachCombination(Gen(0).First()).Sum() == 0);
 }
Ejemplo n.º 11
0
 IEnumerable <RuntimeCoin> Gen(int val)
 {
     return(CoinCalculator.GenerateAllCombinationsForValue(val, CoinFactory.GenerateCoinStatic()));
 }