复利计算器4.0JUnit
#因为是用IDEA首次写unit test,所以也是麻烦多多,于是就只写了一个函数的测试....
##需要测试的代码如下
public class Calculator {
// 本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:
public static double calculatingAmount(double capital,double rate,int year)
{
return capital*(Math.pow((1+rate),(double)year));
}; // 如果按照单利计算,本息又是多少呢
public double calculatingAmountForSingle(double capital, double rate, int year)
{
return capital*(1+(rate*year));
}; // 假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多少呢
public double calculatingCapital(double amount, double rate, int year)
{
return amount/(Math.pow((1+rate),(double)year));
}; // 利率这么低,复利计算收益都这么厉害了,如果拿100万元去买年报酬率10%的股票,若一切顺利,过多长时间,100万元就变成200万元呢
public int calculatingYear(double capital,double rate,double count)
{
return (int)(Math.log(1+rate)/Math.log(count/capital));
}; // 如果我希望在十年内将100万元变成200万元,应该找到报酬率在多少的投资工具来帮助我达成目标
public double calculatingRate(double capital,int year,double acount)
{
return Math.pow((acount/capital),(double)(1/year))-1;
}; // 如果想在5年后本金翻倍,报酬率就应至少为多少才行呢
public double calculatingRateInDoubleReturn()
{
return this.calculatingRate(100,5,200);
}; // .如果每年都将积蓄的3万元进行投资,每年都能获得3%的回报,然后将这些本利之和连同年金再投入新一轮的投资,那么,30年后资产总值将变为多少
public double calculatingAmountInNorm(double normCapital,double rate,int year){
double acount;
acount=normCapital;
for (int i=0;i<year;i++)
{
acount+=normCapital+acount*rate;
}
return acount;
}; // 如果向银行贷款10万元,年利率6.5%,期限为10年,那么每月等额本息还款多少
public double[][] calculatingInterest(double capital,double rate,int year)
{
double[][] interest=new double[year][12];
for (int i=0;i<year;i++)
{
for (int j=0;j<12;j++)
{
interest[i][j]=capital*Math.pow(rate+1,(double)(i))*rate;
}
}
return interest;
}; }
然后是测试代码
public class CalculatorTest { @org.junit.Test
public void testCalculatingAmount() throws Exception {
assertEquals(103.0301,Calculator.calculatingAmount(100.0301,0.01,3),0.1); } @org.junit.Test
public void testCalculatingAmountForSingle() throws Exception { } @org.junit.Test
public void testCalculatingCapital() throws Exception { } @org.junit.Test
public void testCalculatingYear() throws Exception { } @org.junit.Test
public void testCalculatingRate() throws Exception { } @org.junit.Test
public void testCalculatingRateInDoubleReturn() throws Exception { } @org.junit.Test
public void testCalculatingAmountInNorm() throws Exception { } @org.junit.Test
public void testCalculatingInterest() throws Exception { }
}
第一个函数而已,其他的都是自动生成的,先熟悉下IDEA环境下JUnit的使用,以后会添加真正的测试的。
下面是结果
#总结:浪费了很多时间,主要是百度中文搜索技术文很差,然后用了bing,看英文看了很...在一些小问题卡住很久,以后解决这种小问题还是需要不要没有思考的百度,很浪费时间,只是原地打转,百度不会什么都告诉你!还有就是学好英文。
附github地址https://github.com/LinJiTuan/BankCalculator
复利计算器4.0JUnit的更多相关文章
- 复利计算器(4)——jQuery界面美化、自动补全
一.分工 这次终于可以跟小伙伴合作了,经过讨论,我负责界面的美化和输入框自动补全,小伙伴擅长安卓,于是将复利计算器弄成app的任务就交给了小伙伴.为了我们两人团队,我们都好奋斗哈哈哈!! 二.界面美化 ...
- 复利计算器v1
public class MainFrame extends JFrame { /** * 文本框 */ private TextField[] texts = new TextField[5]; / ...
- java版复利计算器升级
github地址:https://github.com/iamcarson/Carson 伙伴:彭宏亮 学号:201406114148 与伙伴工作帅照: 本次升级的地方: 1.改善了界面显示,让界面整 ...
- 0406.复利计算器5.0版-release
复利计算器5.0-release 目录 项目简介 Github链接推送 客户需求 新增需求分析 项目设计 效果演示 操作说明 程序结构 结对分工 合作照片 总结 1.项目简介 项目名称:复利计算器 目 ...
- 单利 复利计算器程序1.0 2.0 3.0 [ 合 ] 之 WEB
对单复利计算器程序进行改进 更新为网页版的. 界面不太美观 请谅解 由于时间问题暂未完善好! 计算部分的主要源代码:
- 复利计算器app发布
复利计算器app发布 抱歉:由于无法实现服务端的持续开启,发布的app仅为简单的单机版,暂时舍弃了c/s版本的一些功能,如:投资动态管理功能. 应用详情博客:请点击这里 apk下载地址1(百度手机助手 ...
- 复利计算器4.0之再遇JUnit
复利计算器4.0之再遇JUnit 前言 虽然之前的复利计算器版本已经尝试过使用JUnit单元测试,但由于没有系统性地学习过JUnit的使用,用得并不好,主要问题表现在测试的场景太少,并没有达到测 ...
- 0329 复利计算器5.0 Juint单元测试 组员 254列志华 253韩麒麟
一.主要功能与需求分析 1.本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按复利计算公式来计算就是:1,000,000×(1+3%)^30 2.如果按照单 ...
- 复利计算器(软件工程)及Junit测试———郭志豪
计算:1.本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按复利计算公式来计算就是:1,000,000×(1+3%)^30 客户提出: 2.如果按照单利计算 ...
随机推荐
- MAN 手册各章节功能介绍及快捷键键位整理
前言 Man 手册页(Manua pages ,缩写man page) 是在linux操作系统在线软件文档的一种普遍形式.内容包括计算机程序库和系统调用等命令的帮助手册. 手册页是用troff排版 ...
- 了解vue
什么是Vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 状态,其实指的是实例之间的 ...
- spring security 表单认证的流程
spring security表单认证过程 表单认证过程 Spring security的表单认证过程是由org.springframework.security.web.authentication ...
- HTTPS 路径配置
1: 首先安装 fiddlercertmaker.exe 文件 2:Tools -> HTTPS 3: Connections 勾中Allow remote computer to ...
- c++ cout cin, 命名空间
cout<<a<<endl; cout<<a; 返回值其实就是一个输出流,(cout就是输出流) 上述语句等价于(cout<<a)<<end ...
- 从底层谈WebGIS 原理设计与实现(四):WebGIS中通过行列号来换算出多种瓦片的URL 之离线地图
从底层谈WebGIS 原理设计与实现(四):WebGIS中通过行列号来换算出多种瓦片的URL 之离线地图 作者:naaoveGI… 文章来源:naaoveGIS 点击数:1759 更 ...
- json decimal and datetime
python json模块默认不能序列化decimal和datetime数据,可以通过自定义一个序列化的类实现: link: http://www.cnblogs.com/buxizhizhoum/p ...
- ubuntu16.04 安装opencv3.3
from: http://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/ Step #1: Install O ...
- 【干货】国外程序员整理的 C++ 资源大全(转)
转zi:http://www.csdn.net/article/2014-10-24/2822269-c++ 关于 C++ 框架.库和资源的一些汇总列表,由 fffaraz发起和维护. 内容包括:标准 ...
- mongodb基础学习13-聚集aggregate操作
aggregate可以用的操作与sql的对应关系 下面来看具体操作例子: 分组求和: 求总记录数 商品价格大于50记录分组求和 商品价格大于50且分组记录大于2的分组记录条件 分组库存数,并按库存排序 ...