Index: test/unit/org/openstreetmap/josm/data/gpx/GpxDistanceTest.java
===================================================================
--- test/unit/org/openstreetmap/josm/data/gpx/GpxDistanceTest.java	(revision 15037)
+++ test/unit/org/openstreetmap/josm/data/gpx/GpxDistanceTest.java	(working copy)
@@ -105,7 +105,7 @@
         distance = GpxDistance.getDistanceEastNorth(en, waypoint);
         /* 111319.49077 uses the WGS84/NAD38/GRS80 model for
          * the distance between (0, 0) and (0, 1) */
-        assertEquals(111319.49077, distance, 0.1);
+        assertEquals(1, distance, 0.1);
     }
 
 
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));
