예제 #1
0
        /// <summary>
        /// Подбирает подходящую купюру к выдаче
        /// </summary>
        /// <param name="sum">double Сумма которую необходимо выдать</param>
        /// <param name="item">MoneyCost предпочитаемая купюра</param>
        /// <returns> пара ключ-значение купюра из хранилища </returns>
        private KeyValuePair <Guid, MoneyCost> getNextCut(double sum, MoneyCost cost, out bool result)
        {
            result = true;
            KeyValuePair <Guid, MoneyCost> res = new KeyValuePair <Guid, MoneyCost>(Guid.Empty, MoneyCost.Ten);
            var items = storage.Where(a => a.Value.Equals(cost)); // ищем предпочитаемую купюру

            if (items.Count() > 0 & sum > cost.GetValue())
            {
                res = items.First();
            }
            else
            {
                items = storage.Where((a) => a.Value.GetValue() == sum);// ищем купюру, равную сумме
                if (items.Count() > 0)
                {
                    res = items.First();
                }
                else
                {
                    items = storage.Where((a) => a.Value.GetValue() < sum); // ищем купюру меньше суммы
                    if (items.Count() > 0)
                    {
                        res = items.First();
                    }
                    else
                    {
                        result = false;
                    }
                }
            }
            return(res);
        }
예제 #2
0
        public void TestValueAtrribute()
        {
            MoneyCost cost = MoneyCost.Hundred;

            Assert.AreEqual(cost.GetValue(), 100);
            Assert.AreNotEqual(MoneyCost.FiveHundred.GetValue(), MoneyCost.FiveThousand.GetValue());
            Assert.AreEqual(MoneyCost.Ten.GetValue(), 10);
        }