复利计算单元测试

测试环境如下:

测试模块 测试输入 预期结果 运行结果
计算本金(P = F / Math.pow((1 + i / m), N * m)) (终值F,利率i,年限N,次数m) 本金P  
1 (0.0,0.03,10,1) 0
1 (10000.0,0.03,10,1) 7440.93914896725
2 (9999999999999999999999999.0,0.03,10,1) 7.44093914896725E24
3 (10000, 0, 10,1) 10000.0
4 (10000, 0.03, 0,1) 10000.0
5 (10000.0, 0.03, 10,0) 无结果(除数不能为0) 10000.0
  测试模块     测试输入   预期结果 运行结果
求年限(N = (int) (Math.log(F / P) / Math.log(1 + i / m) / m)) (终值F,本金P,利率i,次数m) 年限N  
1 (100000, 1000, 0.03, 1) 155
2 (0, 1000, 0.03, 1) 无结果(log函数中的真数要大于0) -2147483648(乱码)
3 (10000, 0.0, 0.03, 1) 无结果(除数不能为0) 2147483647(乱码)
4 (10000, 1000, 0, 1) 无结果(因为log1=0) 2147483647(乱码)
5 (10000, 1000, 0.03, 0) 无结果(除数不能为0) 0

 其他方法的测试和以上两种类似:1.单利计算公式:F = P + P * N * i;

                                           2.求终值:F = P * Math.pow((1 + i / m), N * m);

                                           3.年利率计算公式:rate = m * (Math.pow(F / P, 1.0 / (N * m)) - 1);

                                           4.等额投资计算公式:final_value = P * 12 * (1 + i) * (Math.pow(1 + i, N) - 1) / i;

                                           5.等额还款公式:refund = F * i / (12 * (1 + i) * (Math.pow(1 + i, N) - 1));

测试主要代码:

     测试正常:

         测试异常:

源代码地址:github:https://github.com/zzy999/fulijisuan/blob/master/Compound_int.java

                博客园:http://www.cnblogs.com/zzy999/p/5323715.html

测试代码地址:https://github.com/zzy999/fulijisuan/blob/master/test.java

总结:

      第一次用单元测试来测试程序,感觉还是很吃力的,有很多不懂的地方,后来经过老师的指点,同学之间的交流和网上的查找,最终做出来了,可能还有很多不足的地方,这都有待我自己去改进。

原文地址:https://www.cnblogs.com/zzy999/p/5334365.html