public void TestCalculate2() { var ir = new InterestRepayment(21, 46); var calculation = ir.Calculate(10000); Assert.AreEqual(6534, calculation.Item1); Assert.AreEqual(5566, calculation.Item2); calculation = ir.Calculate(6534); Assert.AreEqual(2907, calculation.Item1); Assert.AreEqual(5000, calculation.Item2); calculation = ir.Calculate(2907); Assert.AreEqual(0, calculation.Item1); Assert.AreEqual(3518, calculation.Item2); Assert.AreEqual(140.84m, ir.TotalRepayment); }
public void TestCalculate1() { var ir = new InterestRepayment(10, 10); var calculation = ir.Calculate(10000); Assert.AreEqual(6000, calculation.Item1); Assert.AreEqual(5000, calculation.Item2); calculation = ir.Calculate(6000); Assert.AreEqual(1600, calculation.Item1); Assert.AreEqual(5000, calculation.Item2); calculation = ir.Calculate(1600); Assert.AreEqual(0, calculation.Item1); Assert.AreEqual(1760, calculation.Item2); Assert.AreEqual(117.6m, ir.TotalRepayment); }
static void Main(string[] args) { Console.WriteLine("CAH"); Console.WriteLine("SPS"); string input = Console.ReadLine(); if (input.ToLowerInvariant() == "partb") { Console.WriteLine(new InterestRepayment(43, 46).Steps); } else if (input.ToLowerInvariant() == "partc") { decimal max = 0m; IList <ValueTuple <int, int, decimal> > maxima = new List <ValueTuple <int, int, decimal> >(); for (int i = 0; i <= 100; i++) { for (int r = 0; r <= 100; r++) { decimal rp = new InterestRepayment(i, r).TotalRepayment; if (rp == max) { maxima.Add((i, r, max)); } if (rp > max) { max = rp; maxima.Clear(); maxima.Add((i, r, max)); } } } foreach (ValueTuple <int, int, decimal> tuple in maxima) { Console.WriteLine($"({tuple.Item1},{tuple.Item2}) => {tuple.Item3}"); } } else { IList <string> numbers = input.Split(' '); Console.WriteLine(new InterestRepayment(int.Parse(numbers[0]), int.Parse(numbers[1])).TotalRepayment); } Console.ReadKey(); }