updates for 0.9.3
[debian/openrocket] / test / net / sf / openrocket / util / TextUtilTest.java
1 package net.sf.openrocket.util;
2
3 import static java.lang.Math.PI;
4 import static org.junit.Assert.assertEquals;
5
6 import org.junit.Test;
7
8 public class TextUtilTest {
9
10         @Test
11         public void specialCaseTest() {
12                 assertEquals("NaN",TextUtil.doubleToString(Double.NaN));
13                 assertEquals("Inf",TextUtil.doubleToString(Double.POSITIVE_INFINITY));
14                 assertEquals("-Inf",TextUtil.doubleToString(Double.NEGATIVE_INFINITY));
15                 assertEquals("0",TextUtil.doubleToString(0.0));
16                 assertEquals("0",TextUtil.doubleToString(MathUtil.EPSILON/3));
17                 assertEquals("0",TextUtil.doubleToString(-MathUtil.EPSILON/3));
18         }
19         
20         @Test
21         public void longTest() {
22                 
23                 assertEquals("3.1416e-5", TextUtil.doubleToString(PI*1e-5));
24                 assertEquals("3.1416e-4", TextUtil.doubleToString(PI*1e-4));
25                 assertEquals("0.0031416", TextUtil.doubleToString(PI*1e-3));
26                 assertEquals("0.031416",  TextUtil.doubleToString(PI*1e-2));
27                 assertEquals("0.31416",   TextUtil.doubleToString(PI*1e-1));
28                 assertEquals("3.1416",    TextUtil.doubleToString(PI));
29                 assertEquals("31.416",    TextUtil.doubleToString(PI*1e1));
30                 assertEquals("314.16",    TextUtil.doubleToString(PI*1e2));
31                 assertEquals("3141.6",    TextUtil.doubleToString(PI*1e3));
32                 assertEquals("31416",     TextUtil.doubleToString(PI*1e4));
33                 assertEquals("314159",    TextUtil.doubleToString(PI*1e5));
34                 assertEquals("3141593",   TextUtil.doubleToString(PI*1e6));
35                 assertEquals("31415927",  TextUtil.doubleToString(PI*1e7));
36                 assertEquals("3.1416e8",  TextUtil.doubleToString(PI*1e8));
37                 assertEquals("3.1416e9",  TextUtil.doubleToString(PI*1e9));
38                 assertEquals("3.1416e10", TextUtil.doubleToString(PI*1e10));
39
40                 assertEquals("-3.1416e-5", TextUtil.doubleToString(-PI*1e-5));
41                 assertEquals("-3.1416e-4", TextUtil.doubleToString(-PI*1e-4));
42                 assertEquals("-0.0031416", TextUtil.doubleToString(-PI*1e-3));
43                 assertEquals("-0.031416",  TextUtil.doubleToString(-PI*1e-2));
44                 assertEquals("-0.31416",   TextUtil.doubleToString(-PI*1e-1));
45                 assertEquals("-3.1416",    TextUtil.doubleToString(-PI));
46                 assertEquals("-31.416",    TextUtil.doubleToString(-PI*1e1));
47                 assertEquals("-314.16",    TextUtil.doubleToString(-PI*1e2));
48                 assertEquals("-3141.6",    TextUtil.doubleToString(-PI*1e3));
49                 assertEquals("-31416",     TextUtil.doubleToString(-PI*1e4));
50                 assertEquals("-314159",    TextUtil.doubleToString(-PI*1e5));
51                 assertEquals("-3141593",   TextUtil.doubleToString(-PI*1e6));
52                 assertEquals("-31415927",  TextUtil.doubleToString(-PI*1e7));
53                 assertEquals("-3.1416e8",  TextUtil.doubleToString(-PI*1e8));
54                 assertEquals("-3.1416e9",  TextUtil.doubleToString(-PI*1e9));
55                 assertEquals("-3.1416e10", TextUtil.doubleToString(-PI*1e10));
56
57         }
58         
59         @Test
60         public void shortTest() {
61                 double p = 3.1;
62                 assertEquals("3.1e-5", TextUtil.doubleToString(p*1e-5));
63                 assertEquals("3.1e-4", TextUtil.doubleToString(p*1e-4));
64                 assertEquals("0.0031", TextUtil.doubleToString(p*1e-3));
65                 assertEquals("0.031",  TextUtil.doubleToString(p*1e-2));
66                 assertEquals("0.31",   TextUtil.doubleToString(p*1e-1));
67                 assertEquals("3.1",    TextUtil.doubleToString(p));
68                 assertEquals("31",     TextUtil.doubleToString(p*1e1));
69                 assertEquals("310",    TextUtil.doubleToString(p*1e2));
70                 assertEquals("3100",   TextUtil.doubleToString(p*1e3));
71                 assertEquals("31000",  TextUtil.doubleToString(p*1e4));
72                 assertEquals("3.1e5",  TextUtil.doubleToString(p*1e5));
73                 assertEquals("3.1e6",  TextUtil.doubleToString(p*1e6));
74                 assertEquals("3.1e7",  TextUtil.doubleToString(p*1e7));
75                 assertEquals("3.1e8",  TextUtil.doubleToString(p*1e8));
76                 assertEquals("3.1e9",  TextUtil.doubleToString(p*1e9));
77                 assertEquals("3.1e10", TextUtil.doubleToString(p*1e10));
78
79                 assertEquals("-3.1e-5", TextUtil.doubleToString(-p*1e-5));
80                 assertEquals("-3.1e-4", TextUtil.doubleToString(-p*1e-4));
81                 assertEquals("-0.0031", TextUtil.doubleToString(-p*1e-3));
82                 assertEquals("-0.031",  TextUtil.doubleToString(-p*1e-2));
83                 assertEquals("-0.31",   TextUtil.doubleToString(-p*1e-1));
84                 assertEquals("-3.1",    TextUtil.doubleToString(-p));
85                 assertEquals("-31",     TextUtil.doubleToString(-p*1e1));
86                 assertEquals("-310",    TextUtil.doubleToString(-p*1e2));
87                 assertEquals("-3100",   TextUtil.doubleToString(-p*1e3));
88                 assertEquals("-31000",  TextUtil.doubleToString(-p*1e4));
89                 assertEquals("-3.1e5",  TextUtil.doubleToString(-p*1e5));
90                 assertEquals("-3.1e6",  TextUtil.doubleToString(-p*1e6));
91                 assertEquals("-3.1e7",  TextUtil.doubleToString(-p*1e7));
92                 assertEquals("-3.1e8",  TextUtil.doubleToString(-p*1e8));
93                 assertEquals("-3.1e9",  TextUtil.doubleToString(-p*1e9));
94                 assertEquals("-3.1e10", TextUtil.doubleToString(-p*1e10));
95
96                 p = 3;
97                 assertEquals("3e-5", TextUtil.doubleToString(p*1e-5));
98                 assertEquals("3e-4", TextUtil.doubleToString(p*1e-4));
99                 assertEquals("3e-3", TextUtil.doubleToString(p*1e-3));
100                 assertEquals("0.03", TextUtil.doubleToString(p*1e-2));
101                 assertEquals("0.3",  TextUtil.doubleToString(p*1e-1));
102                 assertEquals("3",    TextUtil.doubleToString(p));
103                 assertEquals("30",   TextUtil.doubleToString(p*1e1));
104                 assertEquals("300",  TextUtil.doubleToString(p*1e2));
105                 assertEquals("3e3",  TextUtil.doubleToString(p*1e3));
106                 assertEquals("3e4",  TextUtil.doubleToString(p*1e4));
107                 assertEquals("3e5",  TextUtil.doubleToString(p*1e5));
108                 assertEquals("3e6",  TextUtil.doubleToString(p*1e6));
109                 assertEquals("3e7",  TextUtil.doubleToString(p*1e7));
110                 assertEquals("3e8",  TextUtil.doubleToString(p*1e8));
111                 assertEquals("3e9",  TextUtil.doubleToString(p*1e9));
112                 assertEquals("3e10", TextUtil.doubleToString(p*1e10));
113
114                 assertEquals("-3e-5", TextUtil.doubleToString(-p*1e-5));
115                 assertEquals("-3e-4", TextUtil.doubleToString(-p*1e-4));
116                 assertEquals("-3e-3", TextUtil.doubleToString(-p*1e-3));
117                 assertEquals("-0.03", TextUtil.doubleToString(-p*1e-2));
118                 assertEquals("-0.3",  TextUtil.doubleToString(-p*1e-1));
119                 assertEquals("-3",    TextUtil.doubleToString(-p));
120                 assertEquals("-30",   TextUtil.doubleToString(-p*1e1));
121                 assertEquals("-300",  TextUtil.doubleToString(-p*1e2));
122                 assertEquals("-3e3",  TextUtil.doubleToString(-p*1e3));
123                 assertEquals("-3e4",  TextUtil.doubleToString(-p*1e4));
124                 assertEquals("-3e5",  TextUtil.doubleToString(-p*1e5));
125                 assertEquals("-3e6",  TextUtil.doubleToString(-p*1e6));
126                 assertEquals("-3e7",  TextUtil.doubleToString(-p*1e7));
127                 assertEquals("-3e8",  TextUtil.doubleToString(-p*1e8));
128                 assertEquals("-3e9",  TextUtil.doubleToString(-p*1e9));
129                 assertEquals("-3e10", TextUtil.doubleToString(-p*1e10));
130
131         }
132         
133         @Test
134         public void roundingTest() {
135                 
136                 /*
137                  * Not testing with 1.00015 because it might be changed during number formatting
138                  * calculations.  Its rounding is basically arbitrary anyway.
139                  */
140                 
141                 assertEquals("1.0002e-5", TextUtil.doubleToString(1.0001500001e-5));
142                 assertEquals("1.0001e-5", TextUtil.doubleToString(1.0001499999e-5));
143                 assertEquals("1.0002e-4", TextUtil.doubleToString(1.0001500001e-4));
144                 assertEquals("1.0001e-4", TextUtil.doubleToString(1.0001499999e-4));
145                 assertEquals("0.0010002", TextUtil.doubleToString(1.0001500001e-3));
146                 assertEquals("0.0010001", TextUtil.doubleToString(1.0001499999e-3));
147                 assertEquals("0.010002",  TextUtil.doubleToString(1.0001500001e-2));
148                 assertEquals("0.010001",  TextUtil.doubleToString(1.0001499999e-2));
149                 assertEquals("0.10002",   TextUtil.doubleToString(1.0001500001e-1));
150                 assertEquals("0.10001",   TextUtil.doubleToString(1.0001499999e-1));
151                 assertEquals("1.0002",    TextUtil.doubleToString(1.0001500001));
152                 assertEquals("1.0001",    TextUtil.doubleToString(1.0001499999));
153                 assertEquals("10.002",    TextUtil.doubleToString(1.0001500001e1));
154                 assertEquals("10.001",    TextUtil.doubleToString(1.0001499999e1));
155                 assertEquals("100.02",    TextUtil.doubleToString(1.0001500001e2));
156                 assertEquals("100.01",    TextUtil.doubleToString(1.0001499999e2));
157                 assertEquals("1000.2",    TextUtil.doubleToString(1.0001500001e3));
158                 assertEquals("1000.1",    TextUtil.doubleToString(1.0001499999e3));
159                 assertEquals("10002",     TextUtil.doubleToString(1.0001500001e4));
160                 assertEquals("10001",     TextUtil.doubleToString(1.0001499999e4));
161                 assertEquals("100012",    TextUtil.doubleToString(1.00011500001e5));
162                 assertEquals("100011",    TextUtil.doubleToString(1.00011499999e5));
163                 assertEquals("1000112",   TextUtil.doubleToString(1.000111500001e6));
164                 assertEquals("1000111",   TextUtil.doubleToString(1.000111499999e6));
165                 assertEquals("10001112",  TextUtil.doubleToString(1.0001111500001e7));
166                 assertEquals("10001111",  TextUtil.doubleToString(1.0001111499999e7));
167                 assertEquals("1.0002e8",  TextUtil.doubleToString(1.0001500001e8));
168                 assertEquals("1.0001e8",  TextUtil.doubleToString(1.0001499999e8));
169                 assertEquals("1.0002e9",  TextUtil.doubleToString(1.0001500001e9));
170                 assertEquals("1.0001e9",  TextUtil.doubleToString(1.0001499999e9));
171                 assertEquals("1.0002e10", TextUtil.doubleToString(1.0001500001e10));
172                 assertEquals("1.0001e10", TextUtil.doubleToString(1.0001499999e10));
173                 
174
175                 assertEquals("-1.0002e-5", TextUtil.doubleToString(-1.0001500001e-5));
176                 assertEquals("-1.0001e-5", TextUtil.doubleToString(-1.0001499999e-5));
177                 assertEquals("-1.0002e-4", TextUtil.doubleToString(-1.0001500001e-4));
178                 assertEquals("-1.0001e-4", TextUtil.doubleToString(-1.0001499999e-4));
179                 assertEquals("-0.0010002", TextUtil.doubleToString(-1.0001500001e-3));
180                 assertEquals("-0.0010001", TextUtil.doubleToString(-1.0001499999e-3));
181                 assertEquals("-0.010002",  TextUtil.doubleToString(-1.0001500001e-2));
182                 assertEquals("-0.010001",  TextUtil.doubleToString(-1.0001499999e-2));
183                 assertEquals("-0.10002",   TextUtil.doubleToString(-1.0001500001e-1));
184                 assertEquals("-0.10001",   TextUtil.doubleToString(-1.0001499999e-1));
185                 assertEquals("-1.0002",    TextUtil.doubleToString(-1.0001500001));
186                 assertEquals("-1.0001",    TextUtil.doubleToString(-1.0001499999));
187                 assertEquals("-10.002",    TextUtil.doubleToString(-1.0001500001e1));
188                 assertEquals("-10.001",    TextUtil.doubleToString(-1.0001499999e1));
189                 assertEquals("-100.02",    TextUtil.doubleToString(-1.0001500001e2));
190                 assertEquals("-100.01",    TextUtil.doubleToString(-1.0001499999e2));
191                 assertEquals("-1000.2",    TextUtil.doubleToString(-1.0001500001e3));
192                 assertEquals("-1000.1",    TextUtil.doubleToString(-1.0001499999e3));
193                 assertEquals("-10002",     TextUtil.doubleToString(-1.0001500001e4));
194                 assertEquals("-10001",     TextUtil.doubleToString(-1.0001499999e4));
195                 assertEquals("-100012",    TextUtil.doubleToString(-1.00011500001e5));
196                 assertEquals("-100011",    TextUtil.doubleToString(-1.00011499999e5));
197                 assertEquals("-1000112",   TextUtil.doubleToString(-1.000111500001e6));
198                 assertEquals("-1000111",   TextUtil.doubleToString(-1.000111499999e6));
199                 assertEquals("-10001112",  TextUtil.doubleToString(-1.0001111500001e7));
200                 assertEquals("-10001111",  TextUtil.doubleToString(-1.0001111499999e7));
201                 assertEquals("-1.0002e8",  TextUtil.doubleToString(-1.0001500001e8));
202                 assertEquals("-1.0001e8",  TextUtil.doubleToString(-1.0001499999e8));
203                 assertEquals("-1.0002e9",  TextUtil.doubleToString(-1.0001500001e9));
204                 assertEquals("-1.0001e9",  TextUtil.doubleToString(-1.0001499999e9));
205                 assertEquals("-1.0002e10", TextUtil.doubleToString(-1.0001500001e10));
206                 assertEquals("-1.0001e10", TextUtil.doubleToString(-1.0001499999e10));
207                 
208         }
209         
210 }