public void TestMinComputeLessThanZero() { var service = new ChangeGenerator(); Exception ex = Assert.Throws <ArgumentOutOfRangeException>(() => service.ComputeChange(-1, (list) => { var reducer = new MinReducer(); return(reducer.Reduce(list)); })); }
public void TestMinComputePassOne() { var service = new ChangeGenerator(); var result = service.ComputeChange(103, (list) => { var reducer = new MinReducer(); return(reducer.Reduce(list)); }); Assert.Equal(result.TotalCoins, 4); }
public int Process() { var denList = new List <Denomination>(); var inputData = _input.LoadData(); foreach (var transaction in inputData) { IReducer reducer = GetReducer((int)transaction.AmountOwed); IChangeGenerator generator = new ChangeGenerator();// var result = generator.ComputeChange(transaction.AmountChangeCents, (list) => { return(reducer.Reduce(list)); }); denList.Add(result); } if (denList.Any()) { _output.SaveData(denList); } return(denList.Count); }