Index: test/unit/org/openstreetmap/josm/tools/GeometryTest.java
===================================================================
--- test/unit/org/openstreetmap/josm/tools/GeometryTest.java	(revision 15037)
+++ test/unit/org/openstreetmap/josm/tools/GeometryTest.java	(working copy)
@@ -26,6 +26,9 @@
 import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.search.SearchCompiler;
+import org.openstreetmap.josm.data.projection.Projection;
+import org.openstreetmap.josm.data.projection.ProjectionRegistry;
+import org.openstreetmap.josm.data.projection.Projections;
 import org.openstreetmap.josm.io.OsmReader;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
 
@@ -265,9 +268,19 @@
 
     /**
      * Test of {@link Geometry#getDistance} method.
+     * TODO Replace with @ParameterizedTest and @ValueSource when we switch to
+     * JUnit 5
      */
     @Test
-    public void testGetDistance() {
+    public void testGetDistanceProjection() {
+        testGetDistance(ProjectionRegistry.getProjection());
+        testGetDistance(Projections.getProjectionByCode("EPSG:3857"));
+        testGetDistance(Projections.getProjectionByCode("EPSG:4326"));
+        testGetClosestPrimitive(Projections.getProjectionByCode("EPSG:3395"));
+    }
+
+    private void testGetDistance(Projection projection) throws AssertionError {
+        ProjectionRegistry.setProjection(projection);
         Node node1 = new Node(new LatLon(0, 0));
         Node node2 = new Node(new LatLon(0.1, 1));
         Node node3 = new Node(new LatLon(1.1, 0.1));
@@ -316,9 +329,19 @@
 
     /**
      * Test of {@link Geometry#getClosestPrimitive} method
+     * TODO Replace with @ParameterizedTest and @ValueSource when we switch to
+     * JUnit 5
      */
     @Test
-    public void testGetClosestPrimitive() {
+    public void testGetClosestPrimitiveProjections() {
+        testGetClosestPrimitive(ProjectionRegistry.getProjection());
+        testGetClosestPrimitive(Projections.getProjectionByCode("EPSG:3857"));
+        testGetClosestPrimitive(Projections.getProjectionByCode("EPSG:4326"));
+        testGetClosestPrimitive(Projections.getProjectionByCode("EPSG:3395"));
+    }
+
+    private void testGetClosestPrimitive(Projection projection) throws AssertionError {
+        ProjectionRegistry.setProjection(projection);
         Node node1 = new Node(new LatLon(0, 0));
         Node node2 = new Node(new LatLon(0.1, 1));
         Node node3 = new Node(new LatLon(1.1, 0.1));
@@ -335,9 +358,19 @@
 
     /**
      * Test of {@link Geometry#getFurthestPrimitive} method
+     * TODO Replace with @ParameterizedTest and @ValueSource when we switch to
+     * JUnit 5
      */
     @Test
-    public void testGetFurthestPrimitive() {
+    public void testGetFurthestPrimitiveProjections() {
+        testGetFurthestPrimitive(ProjectionRegistry.getProjection());
+        testGetFurthestPrimitive(Projections.getProjectionByCode("EPSG:3857"));
+        testGetFurthestPrimitive(Projections.getProjectionByCode("EPSG:4326"));
+        testGetFurthestPrimitive(Projections.getProjectionByCode("EPSG:3395"));
+    }
+
+    private void testGetFurthestPrimitive(Projection projection) throws AssertionError {
+        ProjectionRegistry.setProjection(projection);
         Node node1 = new Node(new LatLon(0, 0));
         Node node2 = new Node(new LatLon(0, 1.1));
         Node node3 = new Node(new LatLon(1, 0.1));
@@ -350,6 +383,7 @@
         List<OsmPrimitive> primitives = new ArrayList<>();
         primitives.add(way1);
         OsmPrimitive furthest = Geometry.getFurthestPrimitive(new Node(new LatLon(0, 0.75)), primitives);
+
         assertEquals(way1, furthest);
         primitives.add(way2);
         primitives.add(way3);
@@ -378,9 +412,19 @@
 
     /**
      * Test of {@link Geometry#getDistanceSegmentSegment} method
+     * TODO Replace with @ParameterizedTest and @ValueSource when we switch to
+     * JUnit 5
      */
     @Test
-    public void testGetDistanceSegmentSegment() {
+    public void testGetDistanceSegmentSegmentProjections() {
+        testGetDistanceSegmentSegment(ProjectionRegistry.getProjection());
+        testGetDistanceSegmentSegment(Projections.getProjectionByCode("EPSG:3857"));
+        testGetDistanceSegmentSegment(Projections.getProjectionByCode("EPSG:4326"));
+        testGetDistanceSegmentSegment(Projections.getProjectionByCode("EPSG:3395"));
+    }
+
+    private void testGetDistanceSegmentSegment(Projection projection) throws AssertionError {
+        ProjectionRegistry.setProjection(projection);
         Node node1 = new Node(new LatLon(2.0, 2.0));
         Node node2 = new Node(new LatLon(2.0, 3.0));
         Node node3 = new Node(new LatLon(2.3, 2.5));
@@ -390,7 +434,7 @@
         assertEquals(0.0, Geometry.getDistanceSegmentSegment(node1, node2, node3, node1), 0.000001);
 
         // distance between node 1 and node4 is the shortest
-        double expected = node1.getEastNorth().distance(node4.getEastNorth());
+        double expected = node1.getCoor().distance(node4.getCoor());
         assertEquals(expected, Geometry.getDistanceSegmentSegment(node1, node2, node3, node4), 0.000001);
 
         // crossing segments
@@ -414,7 +458,7 @@
         // parallel segments, n1 and n3 at same longitude
         node3.setCoor(new LatLon(2.1, 2.0));
         node4.setCoor(new LatLon(2.1, 2.3));
-        expected = node1.getEastNorth().distance(node3.getEastNorth());
+        expected = node1.getCoor().distance(node3.getCoor());
         assertEquals(expected, Geometry.getDistanceSegmentSegment(node1, node2, node3, node4), 0.000001);
 
         // parallel segments
