天天看点

复利计算的单元测试情况0330

测试环境

测试模块 测试输入的数据 预期结果 误差允许的范围 最后测试结果

复利计算年利率公式

 q = n * (Math.pow(F / P, 1.0 / (year * n)) - 1)

( 本金p,复利次数n,年终值F,年限year)  年利率q
1 (10000  ,2,  20000  ,3) 0.24492409661874603 0.0 ture
                                 2 (10000,2,20000,3)  0.26 0.01             false

复利计算本金

P = F / Math.pow((1 + q / n), year * n)

( 年利率q,复利次数n,年终值F,年限year)  本金p
                                  1 (0.03,2,20000,3)   18290.843850357436 0.0   ture
 2 18290.88   0.02  false
                                 3  (0.03,0,20000,3)  20000.0  0.0

以上是部分功能的测试模块几个结果

测试的主要代码如下:

测试年利率:

正常情况

public void testAPY() {
//        fail("尚未实现");
        int year=3, n=2;
        double q, F=20000, P=10000;
        q = n * (Math.pow(F / P, 1.0 / (year * n)) - 1);
        //assertEquals(0.26,0.24492409661874603,0.01 );
        assertEquals(0.24492409661874603,0.24492409661874603,0.0 );
    }      

异常情况

public void testAPY() {
//        fail("尚未实现");
        int year=3, n=2;
        double q, F=20000, P=10000;
        q = n * (Math.pow(F / P, 1.0 / (year * n)) - 1);
        assertEquals(0.26,0.24492409661874603,0.01 );
        //assertEquals(0.24492409661874603,0.24492409661874603,0.0 );
    }      

测试本金:

public void testPrincipal() {
        //fail("尚未实现");
        double q=0.03;
        double P;
        int year=3,n=2;
        double F=20000;
        P = F / Math.pow((1 + q / n), year * n);
        Assert.assertEquals(18290.843850357436, 18290.843850357436,0.0);
        //assertEquals(18290.88, 18290.843850357436,0.02);
    }      

测试结果:

复利计算的单元测试情况0330
复利计算的单元测试情况0330
复利计算的单元测试情况0330

 源代码:http://www.cnblogs.com/4249ken/p/5338718.html

测试代码:http://www.cnblogs.com/4249ken/p/5338730.html

应用到的测试功能的学习网址:http://tips1000.com/archives/189.html