Compound Interest Calculator4.0
Compound Interest Calculator4.0
1.团队协作准备:每个同学在github上完成FORK,COMMENT(学号后三位+姓名),PR,MERGE的过程。
2.你的RP由你的程序质量决定。
对我们和复利计算程序,写单元测试。
测试模块 | 测试输入 | 预期结果 | 运行结果 | bug跟踪 |
计算终值 | (本金,年限,利率,次数) | 终值 | ||
1 | (1000000,30,0.03,30) | 2427262 | 2427262.4711896623 | |
2 | (3000000,30,0.03,30) | 1235960 | 1235960.2785477191 | |
3 | (1000000,3000000,0.03) | 37 | 37 | |
4 | (1000000,3000000,30) | 0.1 | 0.1 |
import org.junit.Test;
import org.junit.Assert;
import junit.framework.TestCase; public class CalculatorTest extends TestCase {
//所有的终值误差在1.0以内算是正确的
@Test
public void testFuli(){
Calculator4 k=new Calculator4();
double money=1000000;
double rate=0.03;
int years=30;
double sum;
sum=money*(Math.pow(1+rate, years));
System.out.println("sum="+sum);
Assert.assertEquals(2427262, sum,1.0);
} @Test
public void testPrincipal(){
Calculator4 k=new Calculator4();
double sum=3000000;
int years=30;
double rate=0.03;
double money;
money=sum/(Math.pow(1+rate, years));
System.out.println("money="+money);
Assert.assertEquals(1235960, money,1.0);
} @Test
public void testStock(){
Calculator4 k=new Calculator4();
double money=1000000;
double sum=3000000;
double rate=0.03;
int years;
years=(int) ((Math.log(sum)/Math.log(1+rate))-(Math.log(money)/Math.log(1+rate)));
System.out.println("years="+years);
Assert.assertEquals(37, years,1.0);
} @Test
public void testRate(){
Calculator4 k=new Calculator4();
double money=1000000;
double sum=3000000;
int years=30;
double rate;
rate=sum/(money*years);
System.out.println("rate="+rate);
Assert.assertEquals(0.1, rate,1.0);
} @Test
public void testAssets(){
Calculator4 k=new Calculator4();
double money=1000000;
double rate=0.03;
int years=30;
double sum1;
sum1=money*rate*years;
System.out.println("sum1="+sum1);
Assert.assertEquals(900000.0, sum1,1.0);
} @Test
public void testRepayment(){
Calculator4 k=new Calculator4();
double money=1000000;
double rate=0.03;
int years=10;
double sum2;
double i=rate/12;
int month=years*12;
sum2=money*i*Math.pow(1+i, month)/(Math.pow(1+i,month)-1);
System.out.println("sum2="+sum2);
Assert.assertEquals(9656, sum2,1.0);
}
}
测试截图:
还是不太懂单元测试到底要怎么写,感觉自己写的单元测试是错的,但是实在是不知道要怎么写
Compound Interest Calculator4.0的更多相关文章
- Compound Interest Calculator3.0
Compound Interest Calculator3.0 1.利率这么低,复利计算收益都这么厉害了,如果拿100万元去买年报酬率10%的股票,若一切顺利,过多长时间,100万元就变成200万元呢 ...
- Compound Interest Calculator2.0
Compound Interest Calculator2.0 1.如果按照单利计算,本息又是多少呢? 2.假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多 ...
- Compound Interest Calculator1.0
Compound Interest Calculator1.0 客户说:帮我开发一个复利计算软件. 计算:本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按 ...
- Compound Interest Calculator3.0续
1.你写的程序能让客户随意操作吗?误输入数据.不小心做了非常规的操作程序是什么反应? 2.如果向银行贷款10万元,年利率6.5%,期限为10年,那么每月等额本息还款多少?(算复利条件下等额还款金额) ...
- <更新日期03-31-2016> 复利计算5.0 <已改进>
作业要求: 1.客户说:帮我开发一个复利计算软件. 完成复利公式计算程序,并成功PUSH到github上. 客户提出: 2.如果按照单利计算,本息又是多少呢? 3.假如30年之后要筹措到300万元的养 ...
- DL4J (DeepLearning for java)
http://deeplearning4j.org/lstm.html A Beginner’s Guide to Recurrent Networks and LSTMs Contents Feed ...
- 数学常数e的含义
转载: http://www.ruanyifeng.com/blog/2011/07/mathematical_constant_e.html 作者: 阮一峰 日期: 2011年7月 9日 1. ...
- linux下的文本处理命令sed&awk&grep
Sedsed 是个精简的.非交互式的编辑器.他能执行和编辑vi和emacs相同的编辑任务.sed编辑器不提供交互使用方式:只能在命令行输入编辑命令.指定文件名,然后在屏幕上察看输出.sed编辑器没有破 ...
- C程序练习
1.编程从键盘任意输入两个时间(例如4时55分和1时25分),计算并输出这两个时间之间的间隔.要求不输出时间差的负号. #include<stdio.h> int main() { int ...
随机推荐
- echo输出到stderr
echo "Your error message here" >&2 This is a normal echo (which goes to stdout), ho ...
- [CF724B]Batch Sort(暴力,思维)
题目链接:http://codeforces.com/contest/724/problem/B 题意:给出n*m的数字阵,每行数都是1-m的全排列,最多可以交换2个数一次,整个矩阵可以交换两列一次. ...
- [原创]AM3352 + TPS65910 调试方法+调试记录
时间:20160912 一.电源时序排查 1.保证正确的上电时序,一般都会在CPU数据手册中提到.通常不会规定具体的上电先后时间的要求,多数情况下会要求前一个电平上升到90%满幅度之后才可以有下一个电 ...
- [SAP ABAP开发技术总结]初始值、空、NULL、INITIAL等问题
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- 生产者-消费者 用非阻塞队列、Object.wait()、Object.notify()实现
非阻塞队列,需要考虑到: 1.并发中的同步 2.线程间通信 public class Quene_Pro_Con { //定义队列大小 private static int size = 10; // ...
- 3----lua的数据转换及运算符
lua的基本数据类型转换 转换成字符串 tostring( ... ) 可以将布尔类型和数字类型的值转换为字符串类型的值 local num=1; print(type(num)) newNum = ...
- table布局注意点
1.同行等高. 2.宽度自动调节(table-layout:fixed;). 3.处理垂直居中又是神器 参考链接: http://www.blueidea.com/tech/web/2008/6257 ...
- 转 基于Quick-cocos2dx 2.2.3 的动态更新实现完整篇。(打包,服务器接口,模块自更新
1,如何设计更新服务器接口. 2,不改变原框架的代码的情况下如何实现更新,并且可以实现精确的进度. 3,如何按照版本打包. 4,如何跨n个小版本更新. 5,版本回滚. 6,如何更新你的自动更新模块和f ...
- JAVASCRIPT事件详解-------原生事件基础....
javaScirpt事件详解-原生事件基础(一) 事件 JavaScript与HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间,通过监听特定事件的发生,你能 ...
- 5.2 i++
答案:第一段21,第二段12 PS:注意运算符的优先级. 答案:A