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的更多相关文章

  1. Compound Interest Calculator3.0

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

  2. Compound Interest Calculator2.0

    Compound Interest Calculator2.0 1.如果按照单利计算,本息又是多少呢? 2.假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多 ...

  3. Compound Interest Calculator1.0

    Compound Interest Calculator1.0 客户说:帮我开发一个复利计算软件. 计算:本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按 ...

  4. Compound Interest Calculator3.0续

    1.你写的程序能让客户随意操作吗?误输入数据.不小心做了非常规的操作程序是什么反应? 2.如果向银行贷款10万元,年利率6.5%,期限为10年,那么每月等额本息还款多少?(算复利条件下等额还款金额) ...

  5. <更新日期03-31-2016> 复利计算5.0 <已改进>

    作业要求: 1.客户说:帮我开发一个复利计算软件. 完成复利公式计算程序,并成功PUSH到github上. 客户提出: 2.如果按照单利计算,本息又是多少呢? 3.假如30年之后要筹措到300万元的养 ...

  6. DL4J (DeepLearning for java)

    http://deeplearning4j.org/lstm.html A Beginner’s Guide to Recurrent Networks and LSTMs Contents Feed ...

  7. 数学常数e的含义

    转载:   http://www.ruanyifeng.com/blog/2011/07/mathematical_constant_e.html 作者: 阮一峰 日期: 2011年7月 9日 1. ...

  8. linux下的文本处理命令sed&awk&grep

    Sedsed 是个精简的.非交互式的编辑器.他能执行和编辑vi和emacs相同的编辑任务.sed编辑器不提供交互使用方式:只能在命令行输入编辑命令.指定文件名,然后在屏幕上察看输出.sed编辑器没有破 ...

  9. C程序练习

    1.编程从键盘任意输入两个时间(例如4时55分和1时25分),计算并输出这两个时间之间的间隔.要求不输出时间差的负号. #include<stdio.h> int main() { int ...

随机推荐

  1. echo输出到stderr

    echo "Your error message here" >&2 This is a normal echo (which goes to stdout), ho ...

  2. [CF724B]Batch Sort(暴力,思维)

    题目链接:http://codeforces.com/contest/724/problem/B 题意:给出n*m的数字阵,每行数都是1-m的全排列,最多可以交换2个数一次,整个矩阵可以交换两列一次. ...

  3. [原创]AM3352 + TPS65910 调试方法+调试记录

    时间:20160912 一.电源时序排查 1.保证正确的上电时序,一般都会在CPU数据手册中提到.通常不会规定具体的上电先后时间的要求,多数情况下会要求前一个电平上升到90%满幅度之后才可以有下一个电 ...

  4. [SAP ABAP开发技术总结]初始值、空、NULL、INITIAL等问题

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  5. 生产者-消费者 用非阻塞队列、Object.wait()、Object.notify()实现

    非阻塞队列,需要考虑到: 1.并发中的同步 2.线程间通信 public class Quene_Pro_Con { //定义队列大小 private static int size = 10; // ...

  6. 3----lua的数据转换及运算符

    lua的基本数据类型转换 转换成字符串 tostring( ... ) 可以将布尔类型和数字类型的值转换为字符串类型的值 local num=1; print(type(num)) newNum = ...

  7. table布局注意点

    1.同行等高. 2.宽度自动调节(table-layout:fixed;). 3.处理垂直居中又是神器 参考链接: http://www.blueidea.com/tech/web/2008/6257 ...

  8. 转 基于Quick-cocos2dx 2.2.3 的动态更新实现完整篇。(打包,服务器接口,模块自更新

    1,如何设计更新服务器接口. 2,不改变原框架的代码的情况下如何实现更新,并且可以实现精确的进度. 3,如何按照版本打包. 4,如何跨n个小版本更新. 5,版本回滚. 6,如何更新你的自动更新模块和f ...

  9. JAVASCRIPT事件详解-------原生事件基础....

    javaScirpt事件详解-原生事件基础(一)   事件 JavaScript与HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间,通过监听特定事件的发生,你能 ...

  10. 5.2 i++

    答案:第一段21,第二段12 PS:注意运算符的优先级. 答案:A