source: josm/trunk/test/unit/org/openstreetmap/josm/data/coor/EastNorthTest.java@ 10915

Last change on this file since 10915 was 10915, checked in by michael2402, 8 years ago

Trim interpolate in EastNorth/LatLon for performance and add comment explaining it. Added unit tests.

File size: 1.7 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 * Test the {@link EastNorth} class
10 * @author Michael Zangl
11 * @since 10915
12 */
13public class EastNorthTest {
14
15 /**
16 * Test {@link EastNorth#interpolate(EastNorth, double)}
17 */
18 @Test
19 public void testInterpolate() {
20 EastNorth en1 = new EastNorth(0, 0);
21 EastNorth en2 = new EastNorth(30, 60);
22 EastNorth en3 = new EastNorth(-70, -40);
23 // east:
24 assertEquals(15, en1.interpolate(en2, 0.5).east(), 1e-10);
25 assertEquals(0, en1.interpolate(en2, 0).east(), 1e-10);
26 assertEquals(30, en1.interpolate(en2, 1).east(), 1e-10);
27 assertEquals(0, en3.interpolate(en2, .7).east(), 1e-10);
28 // north
29 assertEquals(30, en1.interpolate(en2, 0.5).north(), 1e-10);
30 assertEquals(0, en1.interpolate(en2, 0).north(), 1e-10);
31 assertEquals(60, en1.interpolate(en2, 1).north(), 1e-10);
32 assertEquals(0, en3.interpolate(en2, .4).north(), 1e-10);
33 }
34
35 /**
36 * Test {@link EastNorth#getCenter(EastNorth)}
37 */
38 @Test
39 public void testGetCenter() {
40 EastNorth en1 = new EastNorth(0, 0);
41 EastNorth en2 = new EastNorth(30, 60);
42 EastNorth en3 = new EastNorth(-70, -40);
43
44 assertEquals(15, en1.getCenter(en2).east(), 1e-10);
45 assertEquals(15, en2.getCenter(en1).east(), 1e-10);
46 assertEquals(-20, en3.getCenter(en2).east(), 1e-10);
47
48 assertEquals(30, en1.getCenter(en2).north(), 1e-10);
49 assertEquals(30, en2.getCenter(en1).north(), 1e-10);
50 assertEquals(10, en3.getCenter(en2).north(), 1e-10);
51 }
52}
Note: See TracBrowser for help on using the repository browser.