OSDN Git Service

Merge branch 'master' of ssh://www.deister.jp/mnt/hdb1/git/hayashi
[hayashilib/hayashi.git] / test / jp / co / areaweb / tools / core / TestTax.java
1 /*\r
2  * Created on 2005/06/09\r
3  *\r
4  */\r
5 package jp.co.areaweb.tools.core;\r
6 \r
7 import jp.co.areaweb.tools.core.Tax;\r
8 import junit.framework.TestCase;\r
9 \r
10 /**\r
11  * @author y_hayashi\r
12  *\r
13  */\r
14 public class TestTax extends TestCase {\r
15 \r
16         /**\r
17          * テスト1\r
18          * 総額から税引き価格を求める\r
19          */\r
20         public void test001() throws Exception {\r
21                 assertEquals(95L, Tax.calcBody(100L));\r
22                 assertEquals(5L, Tax.calcTax(100L));\r
23                 assertEquals(5L, Tax.toTax(95L));\r
24                 assertEquals(100L, Tax.toTotal(95L));\r
25         }\r
26         \r
27         /**\r
28          * テスト2\r
29          * 端数は四捨五入されること\r
30          */\r
31         public void test002() throws Exception {\r
32                 assertEquals(99L, Tax.calcBody(104L));          // 99.04\r
33                 assertEquals(5L, Tax.calcTax(104L));\r
34                 assertEquals(100L, Tax.calcBody(105L));         // 100.0\r
35                 assertEquals(5L, Tax.calcTax(105L));\r
36                 assertEquals(101L, Tax.calcBody(106L));         // 100.9\r
37                 assertEquals(5L, Tax.calcTax(106L));\r
38                 assertEquals(102L, Tax.calcBody(107L));         // 101.9\r
39                 assertEquals(5L, Tax.calcTax(106L));\r
40 \r
41                 assertEquals(5L, Tax.toTax(99L));\r
42                 assertEquals(104L, Tax.toTotal(99L));\r
43                 assertEquals(5L, Tax.toTax(100L));\r
44                 assertEquals(105L, Tax.toTotal(100L));\r
45                 assertEquals(5L, Tax.toTax(101L));\r
46                 assertEquals(106L, Tax.toTotal(101L));\r
47                 assertEquals(5L, Tax.toTax(102L));\r
48                 assertEquals(107L, Tax.toTotal(102L));\r
49         }\r
50 \r
51         /**\r
52          * テスト3\r
53          * 10兆円までは計算できる。\r
54          */\r
55         public void test003() throws Exception {\r
56                 try {\r
57                         assertEquals(9523809523810L, Tax.calcBody(10000000000000L));\r
58                         assertEquals(476190476190L, Tax.calcTax(10000000000000L));\r
59                         assertEquals(500000000000L, Tax.toTax(10000000000000L));\r
60                         assertEquals(10500000000000L, Tax.toTotal(10000000000000L));\r
61                 }\r
62                 catch (Exception e) {\r
63                         fail();         // 例外が発生\r
64                 }\r
65         }\r
66 \r
67         /**\r
68          * テスト4\r
69          * 数値が負の場合\r
70          */\r
71         public void test004() throws Exception {\r
72                 assertEquals(-95L, Tax.calcBody(-100L));\r
73                 assertEquals(-5L, Tax.calcTax(-100L));\r
74                 assertEquals(-5L, Tax.toTax(-95L));\r
75                 assertEquals(-100L, Tax.toTotal(-95L));\r
76         }\r
77 }\r