• 复利计算-单元测试


     对我们和复利计算程序,写单元测试。 

       有哪些场景?

       期待的返回值

       写测试程序。

       运行测试。

     测试部分:

     1 // 1.复利计算终值
     2     static float CFutureValue() {
     3         Scanner fuli = new Scanner(System.in);
     4         System.out.println("请输入本金:");
     5         double PresentValue = fuli.nextDouble(); // 本金
     6         System.out.println("请输入存款年数:");
     7         int year = fuli.nextInt(); // 存钱年数
     8         System.out.println("请输入利率:");
     9         double r = fuli.nextDouble(); // 利率
    10         double FutureValue = 1;
    11 
    12         for (int i = 1; i <= year; i++) {
    13             FutureValue = (1 + r) * FutureValue;
    14             
    15         }
    16         float f=(float) (Math.round(FutureValue * PresentValue * 100)) / 100;
    17         System.out.println("总额为:"+ f);
    18         return f;
    19     }
    20 
    21 
    22     // 2.复利计算本金
    23     static void CPresentValue() {
    24         Scanner fuli = new Scanner(System.in);
    25         System.out.println("请输入终值:");
    26         double FutureValue = fuli.nextDouble(); // 复利终值
    27         System.out.println("请输入存款年数:");
    28         int year = fuli.nextInt(); // 存钱年数
    29         System.out.println("请输入利率:");
    30         double r = fuli.nextDouble(); // 利率
    31         double PresentValue = 1;
    32         for (int i = 1; i <= year; i++) {
    33             PresentValue = (1 + r) * PresentValue;
    34         }
    35         float f=(float) (Math.round(FutureValue * (1 / PresentValue) * 100))/ 100;
    36         System.out.println("总额为:"+ f);
    37     }

    测试的代码:

     1 @Test
     2     public void test() {//测试"复利计算终值"公式是否正确,计算结果与预想结果误差是否大于1
     3         double PresentValue=1000000.0;
     4         int year=30;
     5         double r=0.03;
     6         double FutureValue = 1;
     7         for (int i = 1; i <= year; i++) {
     8             FutureValue = (1 + r) * FutureValue;
     9             
    10         }
    11         float F=(float) (Math.round(FutureValue * PresentValue * 100)) / 100;
    12         Assert.assertEquals(F, 2427262,1.0);//计算结果与预想结果误差是否大于1
    13     } 
    14     
    15     @Test
    16     public void test2() {//测试计算"复利计算本金"公式是否正确,计算结果与预想结果误差是否大于1
    17         double FutureValue=3000000.0;
    18         int year=10;
    19         double r=0.03;
    20         double PresentValue = 1;
    21         for (int i = 1; i <= year; i++) {
    22             PresentValue = (1 + r) * PresentValue;
    23         }
    24         float f=(float) (Math.round(FutureValue * (1 / PresentValue) * 100))/ 100;
    25         Assert.assertEquals(f, 2232281,1.0);//计算结果与预想结果误差是否大于1
    26     }

    这次做的单元只是测试了两个公式是否错误和计算结果与预期的差距是否在1以内,其他公式的测试以此类推。

    其实发现自己代码bug挺多的,基础比较差,很多bug都不会修复,所以先测试最简单的部分,等后期比较完善后再测试一些其他内容。

  • 相关阅读:
    周末郑州程序员朋友技术交流中的PPT
    WCF并发连接数的问题
    郑州.Net技术人员的招聘信息
    在路上
    Windows8体验(1)安装
    挖掘0day打进不同学校
    记一次绕过宝塔防火墙的BC站渗透
    一次实战中对tp5网站getshell方式的测试
    一次从弱口令到getshell
    一次HW实战
  • 原文地址:https://www.cnblogs.com/jjy520/p/5334782.html
Copyright © 2020-2023  润新知