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

Last change on this file since 8856 was 7937, checked in by bastiK, 10 years ago

add subversion property svn:eol=native

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