1 package net.sf.openrocket.unit;
3 import static org.junit.Assert.assertEquals;
7 public class UnitToStringTest {
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
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));
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));
28 assertEquals("0.01",Unit.NOUNIT2.toString(0.0095)); // no trailing zeros after rounding
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));
37 assertEquals("0.095",Unit.NOUNIT2.toString(0.0949)); // boundary check
39 // positive numbers < 100
40 assertEquals("0.1",Unit.NOUNIT2.toString(0.095)); // boundary check
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));
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));
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));
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));
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));
78 assertEquals("123457",Unit.NOUNIT2.toString(123456.789));
80 assertEquals("1000000",Unit.NOUNIT2.toString(1000000)); // boundary check
82 // positive numbers > 1E6
83 assertEquals("1.23E6",Unit.NOUNIT2.toString(1234567.89));
84 assertEquals("1.23E7",Unit.NOUNIT2.toString(12345678.9));
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
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));
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));
108 assertEquals("-0.01",Unit.NOUNIT2.toString(-0.0095)); // no trailing zeros after rounding
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));
117 assertEquals("-0.095",Unit.NOUNIT2.toString(-0.0949)); // boundary check
119 // negative numbers < 100
120 assertEquals("-0.1",Unit.NOUNIT2.toString(-0.095)); // boundary check
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));
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));
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));
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));
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));
158 assertEquals("-123457",Unit.NOUNIT2.toString(-123456.789));
160 assertEquals("-1000000",Unit.NOUNIT2.toString(-1000000)); // boundary check
162 // negative numbers > 1E6
163 assertEquals("-1.23E6",Unit.NOUNIT2.toString(-1234567.89));
164 assertEquals("-1.23E7",Unit.NOUNIT2.toString(-12345678.9));