编写一个计算年度个人所得税的方法,该方法的参数为年收入。
设年收入 i 为整数 (元),月收入 k = i/12;
个税计算公式如下:
当k∈[0,3000]:
0.03*i
当k∈(3000,12000]:
0.1*i-12*210
当k∈(12000,25000]:
0.2*i-12*1410
当k∈(25000,35000]:
0.25*i-12*2660
当k∈(35000,55000]:
0.3*i-12*4410
当k∈(55000,80000]:
0.35*i-12*7160
当k∈(80000,):
0.45*i-12*15160
实现要求:
1 当输入i<0的时候,应当抛出异常 IllegalArgumentException ,异常消息为"年收入必须大于等于0“
2 个税精确到分
测试要求:
1 用JUnit测试
2 测试i<0时,是否抛出规定的异常
3 使用参数化测试,并使用下面的数据,input是输入(年收入),expceted是期望的计算结果。
input
expected
35988
1079.64
36000
1080
36012
1081.2
143988
11878.8
144000
11880
144012
11882.4
299988
43077.6
300000
43080
300012
43083
419988
73077
420000
73080
420012
73083.6
659988
145076.4
660000
145080
660012
145084.2
959988
250075.8
960000
250080
960012
250085.4
提示:
1 测试数据可以复制到excel中,并另存为 csv文件。
2 断言 double是否相等,需要断言方法
.Assert.assertEquals(double expected, double actual, double delta)
其中期望值和实际值的偏差必须小于delta,请根据题目的精度要求选择delta