zoukankan      html  css  js  c++  java
  • 复利计算-单元测试

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

       有哪些场景?

       期待的返回值

       写测试程序。

       运行测试。

     测试部分:

     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都不会修复,所以先测试最简单的部分,等后期比较完善后再测试一些其他内容。

  • 相关阅读:
    DHCP工作过程
    园区网——网络架构
    ARP协议
    网络拓扑结构设计+网络设备简介
    Linux- 常用命令
    Linux-FTP
    【noip2018】【luogu5021】赛道修建
    【noip2018】【luogu5024】保卫王国
    【codeforces】【Round#523D】TV shows
    【bzoj4810】【ynoi2018】由乃的玉米田
  • 原文地址:https://www.cnblogs.com/jjy520/p/5334782.html
Copyright © 2011-2022 走看看