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);
        }
Esempio n. 3
0
        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();
        }