/// <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); }
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); }