create changelog entry
[debian/openrocket] / core / test / net / sf / openrocket / unit / UnitToStringTest.java
1 package net.sf.openrocket.unit;
2
3 import static org.junit.Assert.assertEquals;
4
5 import org.junit.Test;
6
7 public class UnitToStringTest {
8
9         @Test
10         public void testPositiveToString() {
11                 // very small positive numbers ( < 0.0005) are returned as "0"
12                 assertEquals("0",Unit.NOUNIT2.toString(0.00040));
13                 assertEquals("0",Unit.NOUNIT2.toString(0.00050)); // check boundary of change in format
14
15                 // positive number < 0.095 use 3 digit decimal format
16                 assertEquals("0.001",Unit.NOUNIT2.toString(0.00051));  // check boundary of change in format
17                 assertEquals("0.001",Unit.NOUNIT2.toString(0.00060));
18                 
19                 // rounding at third digit.
20                 assertEquals("0.001",Unit.NOUNIT2.toString(0.0014));
21                 assertEquals("0.002",Unit.NOUNIT2.toString(0.0015));  // round to even
22                 assertEquals("0.002",Unit.NOUNIT2.toString(0.0016));
23                 assertEquals("0.002",Unit.NOUNIT2.toString(0.0024));
24                 assertEquals("0.002",Unit.NOUNIT2.toString(0.0025)); // round to even
25                 assertEquals("0.003",Unit.NOUNIT2.toString(0.0026));
26                 assertEquals("0.009",Unit.NOUNIT2.toString(0.0094));
27
28                 assertEquals("0.01",Unit.NOUNIT2.toString(0.0095));  // no trailing zeros after rounding
29
30                 assertEquals("0.011",Unit.NOUNIT2.toString(0.0114));
31                 assertEquals("0.012",Unit.NOUNIT2.toString(0.0115)); // round to even
32                 assertEquals("0.012",Unit.NOUNIT2.toString(0.0119));
33                 assertEquals("0.012",Unit.NOUNIT2.toString(0.0124));
34                 assertEquals("0.012",Unit.NOUNIT2.toString(0.0125)); // round to even
35                 assertEquals("0.013",Unit.NOUNIT2.toString(0.0129));
36
37                 assertEquals("0.095",Unit.NOUNIT2.toString(0.0949)); // boundary check
38                 
39                 // positive numbers < 100 
40                 assertEquals("0.1",Unit.NOUNIT2.toString(0.095)); // boundary check
41                 
42                 assertEquals("0.11",Unit.NOUNIT2.toString(0.111));
43                 assertEquals("0.12",Unit.NOUNIT2.toString(0.115)); // round to even
44                 assertEquals("0.12",Unit.NOUNIT2.toString(0.117));
45                 assertEquals("0.12",Unit.NOUNIT2.toString(0.121));
46                 assertEquals("0.12",Unit.NOUNIT2.toString(0.125)); // round to even
47                 assertEquals("0.13",Unit.NOUNIT2.toString(0.127));
48
49                 assertEquals("1.11",Unit.NOUNIT2.toString(1.113));
50                 assertEquals("1.12",Unit.NOUNIT2.toString(1.115)); // round to even
51                 assertEquals("1.12",Unit.NOUNIT2.toString(1.117));
52                 assertEquals("1.12",Unit.NOUNIT2.toString(1.123));
53                 assertEquals("1.12",Unit.NOUNIT2.toString(1.125)); // round to even
54                 assertEquals("1.13",Unit.NOUNIT2.toString(1.127));
55
56                 assertEquals("12.3",Unit.NOUNIT2.toString(12.320));
57                 assertEquals("12.4",Unit.NOUNIT2.toString(12.350)); // round to even
58                 assertEquals("12.4",Unit.NOUNIT2.toString(12.355));
59                 assertEquals("12.4",Unit.NOUNIT2.toString(12.420));
60                 assertEquals("12.4",Unit.NOUNIT2.toString(12.450)); // round to even
61                 assertEquals("12.5",Unit.NOUNIT2.toString(12.455));
62
63                 // positive numbers <= 1E6
64                 assertEquals("123",Unit.NOUNIT2.toString(123.20));
65                 assertEquals("124",Unit.NOUNIT2.toString(123.50)); // round to even
66                 assertEquals("124",Unit.NOUNIT2.toString(123.55));
67                 assertEquals("124",Unit.NOUNIT2.toString(124.20));
68                 assertEquals("124",Unit.NOUNIT2.toString(124.50)); // round to even
69                 assertEquals("125",Unit.NOUNIT2.toString(124.55));
70                 
71                 assertEquals("1234",Unit.NOUNIT2.toString(1234.2));
72                 assertEquals("1234",Unit.NOUNIT2.toString(1234.5)); // round to even
73                 assertEquals("1235",Unit.NOUNIT2.toString(1234.6));
74                 assertEquals("1235",Unit.NOUNIT2.toString(1235.2));
75                 assertEquals("1236",Unit.NOUNIT2.toString(1235.5)); // round to even
76                 assertEquals("1236",Unit.NOUNIT2.toString(1235.6));
77
78                 assertEquals("123457",Unit.NOUNIT2.toString(123456.789));
79
80                 assertEquals("1000000",Unit.NOUNIT2.toString(1000000)); // boundary check
81                 
82                 // positive numbers > 1E6
83                 assertEquals("1.23E6",Unit.NOUNIT2.toString(1234567.89));
84                 assertEquals("1.23E7",Unit.NOUNIT2.toString(12345678.9));
85                 
86                 
87         }
88         
89         @Test
90         public void testNegativeToString() {
91                 // very small negative numbers ( < 0.0005) are returned as "0"
92                 assertEquals("0",Unit.NOUNIT2.toString(-0.00040));
93                 assertEquals("0",Unit.NOUNIT2.toString(-0.00050)); // check boundary of change in format
94
95                 // negative number < 0.095 use 3 digit decimal format
96                 assertEquals("-0.001",Unit.NOUNIT2.toString(-0.00051));  // check boundary of change in format
97                 assertEquals("-0.001",Unit.NOUNIT2.toString(-0.00060));
98                 
99                 // rounding at third digit.
100                 assertEquals("-0.001",Unit.NOUNIT2.toString(-0.0014));
101                 assertEquals("-0.002",Unit.NOUNIT2.toString(-0.0015));  // round to even
102                 assertEquals("-0.002",Unit.NOUNIT2.toString(-0.0016));
103                 assertEquals("-0.002",Unit.NOUNIT2.toString(-0.0024));
104                 assertEquals("-0.002",Unit.NOUNIT2.toString(-0.0025)); // round to even
105                 assertEquals("-0.003",Unit.NOUNIT2.toString(-0.0026));
106                 assertEquals("-0.009",Unit.NOUNIT2.toString(-0.0094));
107
108                 assertEquals("-0.01",Unit.NOUNIT2.toString(-0.0095));  // no trailing zeros after rounding
109
110                 assertEquals("-0.011",Unit.NOUNIT2.toString(-0.0114));
111                 assertEquals("-0.012",Unit.NOUNIT2.toString(-0.0115)); // round to even
112                 assertEquals("-0.012",Unit.NOUNIT2.toString(-0.0119));
113                 assertEquals("-0.012",Unit.NOUNIT2.toString(-0.0124));
114                 assertEquals("-0.012",Unit.NOUNIT2.toString(-0.0125)); // round to even
115                 assertEquals("-0.013",Unit.NOUNIT2.toString(-0.0129));
116
117                 assertEquals("-0.095",Unit.NOUNIT2.toString(-0.0949)); // boundary check
118                 
119                 // negative numbers < 100 
120                 assertEquals("-0.1",Unit.NOUNIT2.toString(-0.095)); // boundary check
121                 
122                 assertEquals("-0.11",Unit.NOUNIT2.toString(-0.111));
123                 assertEquals("-0.12",Unit.NOUNIT2.toString(-0.115)); // round to even
124                 assertEquals("-0.12",Unit.NOUNIT2.toString(-0.117));
125                 assertEquals("-0.12",Unit.NOUNIT2.toString(-0.121));
126                 assertEquals("-0.12",Unit.NOUNIT2.toString(-0.125)); // round to even
127                 assertEquals("-0.13",Unit.NOUNIT2.toString(-0.127));
128
129                 assertEquals("-1.11",Unit.NOUNIT2.toString(-1.113));
130                 assertEquals("-1.12",Unit.NOUNIT2.toString(-1.115)); // round to even
131                 assertEquals("-1.12",Unit.NOUNIT2.toString(-1.117));
132                 assertEquals("-1.12",Unit.NOUNIT2.toString(-1.123));
133                 assertEquals("-1.12",Unit.NOUNIT2.toString(-1.125)); // round to even
134                 assertEquals("-1.13",Unit.NOUNIT2.toString(-1.127));
135
136                 assertEquals("-12.3",Unit.NOUNIT2.toString(-12.320));
137                 assertEquals("-12.4",Unit.NOUNIT2.toString(-12.350)); // round to even
138                 assertEquals("-12.4",Unit.NOUNIT2.toString(-12.355));
139                 assertEquals("-12.4",Unit.NOUNIT2.toString(-12.420));
140                 assertEquals("-12.4",Unit.NOUNIT2.toString(-12.450)); // round to even
141                 assertEquals("-12.5",Unit.NOUNIT2.toString(-12.455));
142
143                 // negative numbers <= 1E6
144                 assertEquals("-123",Unit.NOUNIT2.toString(-123.20));
145                 assertEquals("-124",Unit.NOUNIT2.toString(-123.50)); // round to even
146                 assertEquals("-124",Unit.NOUNIT2.toString(-123.55));
147                 assertEquals("-124",Unit.NOUNIT2.toString(-124.20));
148                 assertEquals("-124",Unit.NOUNIT2.toString(-124.50)); // round to even
149                 assertEquals("-125",Unit.NOUNIT2.toString(-124.55));
150                 
151                 assertEquals("-1234",Unit.NOUNIT2.toString(-1234.2));
152                 assertEquals("-1234",Unit.NOUNIT2.toString(-1234.5)); // round to even
153                 assertEquals("-1235",Unit.NOUNIT2.toString(-1234.6));
154                 assertEquals("-1235",Unit.NOUNIT2.toString(-1235.2));
155                 assertEquals("-1236",Unit.NOUNIT2.toString(-1235.5)); // round to even
156                 assertEquals("-1236",Unit.NOUNIT2.toString(-1235.6));
157
158                 assertEquals("-123457",Unit.NOUNIT2.toString(-123456.789));
159
160                 assertEquals("-1000000",Unit.NOUNIT2.toString(-1000000)); // boundary check
161                 
162                 // negative numbers > 1E6
163                 assertEquals("-1.23E6",Unit.NOUNIT2.toString(-1234567.89));
164                 assertEquals("-1.23E7",Unit.NOUNIT2.toString(-12345678.9));
165                 
166                 
167         }
168         
169         
170 }