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

Last change on this file since 4580 was 4580, checked in by Don-vip, 12 years ago

see #2212 - Allow JOSM to download data crossing the 180th meridian

File size: 5.2 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 * @author Vincent
10 *
11 */
12public class LatLonTest {
13
14 protected static final double[] sampleValues = new double[]{
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 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,
17 0.12, 0.123, 0.1234, 0.12345, 0.123456, 0.1234567,
18 1.12, 1.123, 1.1234, 1.12345, 1.123456, 1.1234567,
19 10.12, 10.123, 10.1234, 10.12345, 10.123456, 10.1234567,
20 100.12, 100.123, 100.1234, 100.12345, 100.123456, 100.1234567
21 };
22
23 @Test
24 public void roundingTests() {
25
26 for (double value : sampleValues) {
27 assertEquals(LatLon.roundToOsmPrecisionStrict(value), value, 0);
28 }
29
30 assertEquals(LatLon.roundToOsmPrecisionStrict(0.0), 0.0, 0);
31 assertEquals(LatLon.roundToOsmPrecisionStrict(-0.0), 0.0, 0);
32
33 assertEquals(LatLon.roundToOsmPrecisionStrict(0.12345678), 0.1234568, 0);
34 assertEquals(LatLon.roundToOsmPrecisionStrict(0.123456789), 0.1234568, 0);
35
36 assertEquals(LatLon.roundToOsmPrecisionStrict(1.12345678), 1.1234568, 0);
37 assertEquals(LatLon.roundToOsmPrecisionStrict(1.123456789), 1.1234568, 0);
38
39 assertEquals(LatLon.roundToOsmPrecisionStrict(10.12345678), 10.1234568, 0);
40 assertEquals(LatLon.roundToOsmPrecisionStrict(10.123456789), 10.1234568, 0);
41
42 assertEquals(LatLon.roundToOsmPrecisionStrict(100.12345678), 100.1234568, 0);
43 assertEquals(LatLon.roundToOsmPrecisionStrict(100.123456789), 100.1234568, 0);
44
45 assertEquals(LatLon.roundToOsmPrecisionStrict(100.00000001), 100.0000000, 0);
46 assertEquals(LatLon.roundToOsmPrecisionStrict(100.000000001), 100.0000000, 0);
47 assertEquals(LatLon.roundToOsmPrecisionStrict(100.0000000001), 100.0000000, 0);
48 assertEquals(LatLon.roundToOsmPrecisionStrict(100.00000000001), 100.0000000, 0);
49 assertEquals(LatLon.roundToOsmPrecisionStrict(100.000000000001), 100.0000000, 0);
50 assertEquals(LatLon.roundToOsmPrecisionStrict(100.0000000000001), 100.0000000, 0);
51 assertEquals(LatLon.roundToOsmPrecisionStrict(100.00000000000001), 100.0000000, 0);
52 assertEquals(LatLon.roundToOsmPrecisionStrict(100.000000000000001), 100.0000000, 0);
53 assertEquals(LatLon.roundToOsmPrecisionStrict(100.0000000000000001), 100.0000000, 0);
54 assertEquals(LatLon.roundToOsmPrecisionStrict(100.00000000000000001), 100.0000000, 0);
55 assertEquals(LatLon.roundToOsmPrecisionStrict(100.000000000000000001), 100.0000000, 0);
56 assertEquals(LatLon.roundToOsmPrecisionStrict(100.0000000000000000001), 100.0000000, 0);
57 assertEquals(LatLon.roundToOsmPrecisionStrict(100.00000000000000000001), 100.0000000, 0);
58
59 assertEquals(LatLon.roundToOsmPrecisionStrict(99.999999999999999999999), 100.0000000, 0);
60 assertEquals(LatLon.roundToOsmPrecisionStrict(99.99999999999999999999), 100.0000000, 0);
61 assertEquals(LatLon.roundToOsmPrecisionStrict(99.9999999999999999999), 100.0000000, 0);
62 assertEquals(LatLon.roundToOsmPrecisionStrict(99.999999999999999999), 100.0000000, 0);
63 assertEquals(LatLon.roundToOsmPrecisionStrict(99.99999999999999999), 100.0000000, 0);
64 assertEquals(LatLon.roundToOsmPrecisionStrict(99.9999999999999999), 100.0000000, 0);
65 assertEquals(LatLon.roundToOsmPrecisionStrict(99.999999999999999), 100.0000000, 0);
66 assertEquals(LatLon.roundToOsmPrecisionStrict(99.99999999999999), 100.0000000, 0);
67 assertEquals(LatLon.roundToOsmPrecisionStrict(99.9999999999999), 100.0000000, 0);
68 assertEquals(LatLon.roundToOsmPrecisionStrict(99.999999999999), 100.0000000, 0);
69 assertEquals(LatLon.roundToOsmPrecisionStrict(99.99999999999), 100.0000000, 0);
70 assertEquals(LatLon.roundToOsmPrecisionStrict(99.9999999999), 100.0000000, 0);
71 assertEquals(LatLon.roundToOsmPrecisionStrict(99.999999999), 100.0000000, 0);
72 assertEquals(LatLon.roundToOsmPrecisionStrict(99.99999999), 100.0000000, 0);
73 assertEquals(LatLon.roundToOsmPrecisionStrict(99.9999999), 99.9999999, 0);
74 }
75
76 @Test
77 public void toIntervalLonTests() {
78 assertEquals(-180.0, LatLon.toIntervalLon(-180.0), 0);
79 assertEquals(0.0, LatLon.toIntervalLon(0.0), 0);
80 assertEquals(180.0, LatLon.toIntervalLon(180.0), 0);
81
82 assertEquals(179.0, LatLon.toIntervalLon(-181.0), 0);
83 assertEquals(-179.0, LatLon.toIntervalLon(181.0), 0);
84
85 assertEquals(-1.0, LatLon.toIntervalLon(359.0), 0);
86 assertEquals(1.0, LatLon.toIntervalLon(-359.0), 0);
87
88 assertEquals(1.0, LatLon.toIntervalLon(361.0), 0);
89 assertEquals(-1.0, LatLon.toIntervalLon(-361.0), 0);
90
91 assertEquals(179.0, LatLon.toIntervalLon(539.0), 0);
92 assertEquals(-179.0, LatLon.toIntervalLon(-539.0), 0);
93
94 assertEquals(-179.0, LatLon.toIntervalLon(541.0), 0);
95 assertEquals(179.0, LatLon.toIntervalLon(-541.0), 0);
96 }
97}
Note: See TracBrowser for help on using the repository browser.