一.主要功能与需求分析

1.本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按复利计算公式来计算就是:1,000,000×(1+3%)^30

2.如果按照单利计算,本息的最终收益

3.假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多少呢?

4.利率这么低,复利计算收益都这么厉害了,如果拿100万元去买年报酬率10%的股票,若一切顺利,过多长时间,100万元就变成200万元呢?

5.如果我希望在十年内将100万元变成200万元,应该找到报酬率在多少的投资工具来帮助我达成目标?如果想在5年后本金翻倍,报酬率就应至少为多少才行呢?

6.如果每年都将积蓄的3万元进行投资,每年都能获得3%的回报,然后将这些本利之和连同年金再投入新一轮的投资,那么,30年后资产总值将变为多少?如果换成每月定投3000呢?(定额定投收益计算办法)

7. 如果向银行贷款10万元,年利率6.5%,期限为10年,那么每月等额本息还款多少?(算复利条件下等额还款金额)

二.单元测试预期结果及其代码。

测试模块

测试输入

预期结果

运行结果

bug跟踪

复利计算

(本金,年限,利率,次数)

终值

   

测试运算结果

(100.0,1,0.05,1)

105.0

 

测试输出正数

(100.0,1,0.05,1)

True

测试输入负数

 (-100.0,1,-0.05,1)  False  √  要添加输入控制

单利计算

(利率,本金,年限)

 终值    
 测试运算结果  ("0.05","100.0","1")  105.0   √  
 测试输入负数  ("0.05","100.0","1")  True   √  
测试输出正数 ("-0.05","-100.0","1") False  √   要添加输入控制
投资年限 (利率,本金,终值,次数)      
测试运算结果 ("0.05","100.0","105.0","1") 1  
测试输出正数 ("0.05","100.0","105.0","1") True  
测试输入负数 ("-0.05","-100.0","105.0","1") false   要添加输入控制
...... 以下结果与上表一致      
 package com.Junit.test;

 import static org.junit.Assert.*;
import interest.BestProject;
import interest.CompoundInterrest;
import interest.InterestTime;
import interest.PeriodicIncome;
import interest.Principal;
import interest.Refund;
import interest.SingleInterest; public class Test { @org.junit.Test
public void testCompoundInterrest() {
double f = new CompoundInterrest("0.05","100.0","1","1").Interrest();
assertEquals(105.0,f ,0.001);
assertTrue("输出为负数", f > 0);
double s = new CompoundInterrest("-0.05", "-100.0", "1", "1").Interrest();
assertFalse(s > 0);
}
@org.junit.Test
public void testSingleInterest() {
double f = new SingleInterest("0.05","100.0","1").Interest();
assertEquals(105.0, f, 0.001);
assertTrue("输出为负数", f > 0);
double s = new SingleInterest("-0.05","-100.0","1").Interest();
assertFalse(s > 0);
}
@org.junit.Test
public void testInterestTime() {
int t = new InterestTime("0.05","100.0","105.0","1").Interrest();
assertEquals(1, t);
assertTrue("输出为负数", t > 0);
double s = new InterestTime("-0.05","-100.0","105.0","1").Interrest();
assertFalse(s > 0);
}
@org.junit.Test
public void testPeriodicIncome() {
double f = new PeriodicIncome("0.01","100","1").Interrest();
assertEquals(101.0, f ,0.001);
assertTrue("输出为负数", f > 0);
double s = new PeriodicIncome("-0.01","-100","1").Interrest();
assertFalse(s > 0);
}
@org.junit.Test
public void testPrincipal () {
double f = new Principal("0.05","105.0","1","1").Interrest();
assertEquals(100.0, f, 0.001);
assertTrue("输出为负数", f > 0);
double s = new Principal("-0.05","-105.0","1","1").Interrest();
assertFalse(s > 0);
} @org.junit.Test
public void testBestProject () {
double f = new BestProject("200","100","1","1").Interrest();
assertEquals(1.0, f, 0.001);
assertTrue("输出为负数", f > 0);
double s = new BestProject("-200","100","1","1").Interrest();
assertFalse(s > 0);
}
@org.junit.Test
public void testRefund () {
double f = new Refund("0.87","1200","3").Interrest();
assertEquals(94.6147, f ,0.001);
assertTrue("输出为负数", f > 0);
double s = new Refund("-0.87","-1200","3").Interrest();
assertFalse(s > 0);
} }

三.运行情况

四.代码链接

https://github.com/liezh/Compound-Interest-5.0-Junit

0329 复利计算器5.0 Juint单元测试 组员 254列志华 253韩麒麟的更多相关文章

  1. 复利计算器4.0之再遇JUnit

    复利计算器4.0之再遇JUnit 前言    虽然之前的复利计算器版本已经尝试过使用JUnit单元测试,但由于没有系统性地学习过JUnit的使用,用得并不好,主要问题表现在测试的场景太少,并没有达到测 ...

  2. 0406.复利计算器5.0版-release

    复利计算器5.0-release 目录 项目简介 Github链接推送 客户需求 新增需求分析 项目设计 效果演示 操作说明 程序结构 结对分工 合作照片 总结 1.项目简介 项目名称:复利计算器 目 ...

  3. 复利计算器4.0 【java版】

    import java.util.Scanner; public class FuLi { public static void main(String[] args) { ; Scanner sca ...

  4. 复利计算器(软件工程)及Junit测试———郭志豪

    计算:1.本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按复利计算公式来计算就是:1,000,000×(1+3%)^30 客户提出: 2.如果按照单利计算 ...

  5. 单利 复利计算器程序1.0 2.0 3.0 [ 合 ] 之 WEB

    对单复利计算器程序进行改进 更新为网页版的. 界面不太美观 请谅解 由于时间问题暂未完善好! 计算部分的主要源代码:

  6. 复利计算器v1

    public class MainFrame extends JFrame { /** * 文本框 */ private TextField[] texts = new TextField[5]; / ...

  7. 0414-复利计算器6.0.Release

    复利计算器6.0--Release 前言 本次复利计算器的版本更新,主要有以下内容的完善: 1.优化了Web版的页面,提供了更舒服美观的用户体现. 2.新增了移动端(安卓)app版本. 版本信息 项目 ...

  8. 复利计算--4.0 单元测试之JAVA版-软件工程

    复利计算--4.0 单元测试-软件工程 前言:由于本人之前做的是C语言版的复利计算,所以为了更好地学习单元测试,于是将C语言版的复利计算修改为JAVA版的. 一.主要的功能需求细分: 1.本金为100 ...

  9. 复利计算器app发布

    复利计算器app发布 抱歉:由于无法实现服务端的持续开启,发布的app仅为简单的单机版,暂时舍弃了c/s版本的一些功能,如:投资动态管理功能. 应用详情博客:请点击这里 apk下载地址1(百度手机助手 ...

随机推荐

  1. alpha融合

    //alpha融合 //作者:sandy //时间:2015-10-6 //将一只狗的头像融合在蜗牛头上 #include <cv.h> #include <highgui.h> ...

  2. [ Redis ] Redis 未授权访问漏洞被利用,服务器登陆不上

    一.缘由: 突然有一天某台服务器远程登陆不上,试了好几个人的账号都行,顿时慌了,感觉服务器被黑.在终于找到一个还在登陆状态的同事后,经查看/ect/passwd 和/etc/passwd-异常,文件中 ...

  3. 关于Rotation和Quaternion的一些问题

    当我们使用unity的时候,面对一个物体,一个不可避免的问题就是:控制物体的旋转. unity的Transform组件的第二个属性Rotation为我们提供控制物体旋转的功能.在一个物体的Inspec ...

  4. mysql索引之四(索引使用注意规则:索引失效--存在索引但不使用索引)

    但是如果是同样的sql如果在之前能够使用到索引,那么现在使用不到索引,以下几种主要情况: 1. 随着表的增长,where条件出来的数据太多,大于15%,使得索引失效(会导致CBO计算走索引花费大于走全 ...

  5. 表空间、Schema和用户

    源地址:http://www.cnblogs.com/kevinanni/p/3688921.html

  6. C++学习37 string字符串的访问和拼接

    访问字符串中的字符 string 字符串也可以像字符串数组一样按照下标来访问其中的每一个字符.string 字符串的起始下标仍是从 0 开始.请看下面的代码: #include <iostrea ...

  7. [ActionScript 3.0] AS3.0 Loader加载子swf时是否需要指定新的应用程序域ApplicationDomain

    实际应用中, Loader加载子swf时是否需要指定新的应用程序域ApplicationDomain,需要择情况而定. 1.如果在本地将项目位置添加到flashplayer受信任位置(上一篇文章所述) ...

  8. [ActionScript 3.0] AS3 时间格式化方法

    /** * 格式化时间,格式 00:00:00 * @param total 总时间(毫秒) */ function getFormatTime(total:uint):String { if (to ...

  9. Microsoft Visual C++ 2015 Redistributable(x64) - 14.0.2306 设置失败

    想要在Windows 2008 R2 中 安装PHP, 需要安装 Microsoft Visual C++ 2015 Redistributable(x64) ,结果提供设置失败. 先中找到以下文字, ...

  10. POJ题目分类(转)

    初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推. ...