source: josm/trunk/test/unit/org/openstreetmap/josm/data/coor/LatLonTest.java@ 8926

Last change on this file since 8926 was 8857, checked in by Don-vip, 9 years ago

improve/cleanup unit tests

  • Property svn:eol-style set to native
File size: 6.0 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.data.coor;
3
4import static org.junit.Assert.assertEquals;
5
6import org.junit.Test;
7
8/**
9 * Unit tests for class {@link LatLon}.
10 */
11public class LatLonTest {
12
13 public static final double[] SAMPLE_VALUES = new double[]{
14 -180.0, -179.9, -179.6, -179.5, -179.4, -179.1, -179.0, -100.0, -99.9, -10.0, -9.9, -1.0, -0.1,
15 180.0, 179.9, 179.6, 179.5, 179.4, 179.1, 179.0, 100.0, 99.9, 10.0, 9.9, 1.0, 0.1,
16 0.12, 0.123, 0.1234, 0.12345, 0.123456, 0.1234567,
17 1.12, 1.123, 1.1234, 1.12345, 1.123456, 1.1234567,
18 10.12, 10.123, 10.1234, 10.12345, 10.123456, 10.1234567,
19 100.12, 100.123, 100.1234, 100.12345, 100.123456, 100.1234567
20 };
21
22 /**
23 * Test of {@link LatLon#roundToOsmPrecisionStrict}
24 */
25 @Test
26 public void testRoundToOsmPrecisionStrict() {
27
28 for (double value : SAMPLE_VALUES) {
29 assertEquals(LatLon.roundToOsmPrecisionStrict(value), value, 0);
30 }
31
32 assertEquals(LatLon.roundToOsmPrecisionStrict(0.0), 0.0, 0);
33 assertEquals(LatLon.roundToOsmPrecisionStrict(-0.0), 0.0, 0);
34
35 assertEquals(LatLon.roundToOsmPrecisionStrict(0.12345678), 0.1234568, 0);
36 assertEquals(LatLon.roundToOsmPrecisionStrict(0.123456789), 0.1234568, 0);
37
38 assertEquals(LatLon.roundToOsmPrecisionStrict(1.12345678), 1.1234568, 0);
39 assertEquals(LatLon.roundToOsmPrecisionStrict(1.123456789), 1.1234568, 0);
40
41 assertEquals(LatLon.roundToOsmPrecisionStrict(10.12345678), 10.1234568, 0);
42 assertEquals(LatLon.roundToOsmPrecisionStrict(10.123456789), 10.1234568, 0);
43
44 assertEquals(LatLon.roundToOsmPrecisionStrict(100.12345678), 100.1234568, 0);
45 assertEquals(LatLon.roundToOsmPrecisionStrict(100.123456789), 100.1234568, 0);
46
47 assertEquals(LatLon.roundToOsmPrecisionStrict(100.00000001), 100.0000000, 0);
48 assertEquals(LatLon.roundToOsmPrecisionStrict(100.000000001), 100.0000000, 0);
49 assertEquals(LatLon.roundToOsmPrecisionStrict(100.0000000001), 100.0000000, 0);
50 assertEquals(LatLon.roundToOsmPrecisionStrict(100.00000000001), 100.0000000, 0);
51 assertEquals(LatLon.roundToOsmPrecisionStrict(100.000000000001), 100.0000000, 0);
52 assertEquals(LatLon.roundToOsmPrecisionStrict(100.0000000000001), 100.0000000, 0);
53 assertEquals(LatLon.roundToOsmPrecisionStrict(100.00000000000001), 100.0000000, 0);
54 assertEquals(LatLon.roundToOsmPrecisionStrict(100.000000000000001), 100.0000000, 0);
55 assertEquals(LatLon.roundToOsmPrecisionStrict(100.0000000000000001), 100.0000000, 0);
56 assertEquals(LatLon.roundToOsmPrecisionStrict(100.00000000000000001), 100.0000000, 0);
57 assertEquals(LatLon.roundToOsmPrecisionStrict(100.000000000000000001), 100.0000000, 0);
58 assertEquals(LatLon.roundToOsmPrecisionStrict(100.0000000000000000001), 100.0000000, 0);
59 assertEquals(LatLon.roundToOsmPrecisionStrict(100.00000000000000000001), 100.0000000, 0);
60
61 assertEquals(LatLon.roundToOsmPrecisionStrict(99.999999999999999999999), 100.0000000, 0);
62 assertEquals(LatLon.roundToOsmPrecisionStrict(99.99999999999999999999), 100.0000000, 0);
63 assertEquals(LatLon.roundToOsmPrecisionStrict(99.9999999999999999999), 100.0000000, 0);
64 assertEquals(LatLon.roundToOsmPrecisionStrict(99.999999999999999999), 100.0000000, 0);
65 assertEquals(LatLon.roundToOsmPrecisionStrict(99.99999999999999999), 100.0000000, 0);
66 assertEquals(LatLon.roundToOsmPrecisionStrict(99.9999999999999999), 100.0000000, 0);
67 assertEquals(LatLon.roundToOsmPrecisionStrict(99.999999999999999), 100.0000000, 0);
68 assertEquals(LatLon.roundToOsmPrecisionStrict(99.99999999999999), 100.0000000, 0);
69 assertEquals(LatLon.roundToOsmPrecisionStrict(99.9999999999999), 100.0000000, 0);
70 assertEquals(LatLon.roundToOsmPrecisionStrict(99.999999999999), 100.0000000, 0);
71 assertEquals(LatLon.roundToOsmPrecisionStrict(99.99999999999), 100.0000000, 0);
72 assertEquals(LatLon.roundToOsmPrecisionStrict(99.9999999999), 100.0000000, 0);
73 assertEquals(LatLon.roundToOsmPrecisionStrict(99.999999999), 100.0000000, 0);
74 assertEquals(LatLon.roundToOsmPrecisionStrict(99.99999999), 100.0000000, 0);
75 assertEquals(LatLon.roundToOsmPrecisionStrict(99.9999999), 99.9999999, 0);
76 }
77
78 /**
79 * Test of {@link LatLon#toIntervalLon}
80 */
81 @Test
82 public void testToIntervalLon() {
83 assertEquals(-180.0, LatLon.toIntervalLon(-180.0), 0);
84 assertEquals(0.0, LatLon.toIntervalLon(0.0), 0);
85 assertEquals(180.0, LatLon.toIntervalLon(180.0), 0);
86
87 assertEquals(179.0, LatLon.toIntervalLon(-181.0), 0);
88 assertEquals(-179.0, LatLon.toIntervalLon(181.0), 0);
89
90 assertEquals(-1.0, LatLon.toIntervalLon(359.0), 0);
91 assertEquals(1.0, LatLon.toIntervalLon(-359.0), 0);
92
93 assertEquals(1.0, LatLon.toIntervalLon(361.0), 0);
94 assertEquals(-1.0, LatLon.toIntervalLon(-361.0), 0);
95
96 assertEquals(179.0, LatLon.toIntervalLon(539.0), 0);
97 assertEquals(-179.0, LatLon.toIntervalLon(-539.0), 0);
98
99 assertEquals(-179.0, LatLon.toIntervalLon(541.0), 0);
100 assertEquals(179.0, LatLon.toIntervalLon(-541.0), 0);
101 }
102
103 /**
104 * Test of {@link LatLon#equals}
105 */
106 @Test
107 public void testEquals() {
108 for (int i = 1; i < SAMPLE_VALUES.length; i++) {
109 LatLon a = new LatLon(SAMPLE_VALUES[i-1], SAMPLE_VALUES[i]);
110 LatLon b = new LatLon(SAMPLE_VALUES[i-1], SAMPLE_VALUES[i]);
111 assertEquals(a, b);
112 }
113 }
114
115 /**
116 * Test of {@link LatLon#hashCode}
117 */
118 @Test
119 public void testHashCode() {
120 for (int i = 1; i < SAMPLE_VALUES.length; i++) {
121 LatLon a = new LatLon(SAMPLE_VALUES[i-1], SAMPLE_VALUES[i]);
122 LatLon b = new LatLon(SAMPLE_VALUES[i-1], SAMPLE_VALUES[i]);
123 assertEquals(a.hashCode(), b.hashCode());
124 }
125 }
126}
Note: See TracBrowser for help on using the repository browser.