Index: trunk/test/unit/org/CustomMatchers.java
===================================================================
--- trunk/test/unit/org/CustomMatchers.java	(revision 8514)
+++ trunk/test/unit/org/CustomMatchers.java	(revision 8759)
@@ -2,10 +2,14 @@
 package org;
 
+import java.awt.geom.Point2D;
 import java.util.Collection;
 
+import org.hamcrest.CustomTypeSafeMatcher;
 import org.hamcrest.Description;
 import org.hamcrest.Matcher;
 import org.hamcrest.TypeSafeMatcher;
 import org.junit.Ignore;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.tools.Predicate;
 
@@ -60,3 +64,32 @@
     }
 
+    public static Matcher<? super Point2D> is(final Point2D expected) {
+        return new CustomTypeSafeMatcher<Point2D>("the same Point2D") {
+            @Override
+            protected boolean matchesSafely(Point2D actual) {
+                return expected.distance(actual) <= 0.0000001;
+            }
+        };
+    }
+
+    public static Matcher<? super LatLon> is(final LatLon expected) {
+        return new CustomTypeSafeMatcher<LatLon>("the same LatLon") {
+            @Override
+            protected boolean matchesSafely(LatLon actual) {
+                return Math.abs(expected.getX() - actual.getX()) <= LatLon.MAX_SERVER_PRECISION
+                        && Math.abs(expected.getY() - actual.getY()) <= LatLon.MAX_SERVER_PRECISION;
+            }
+        };
+    }
+
+    public static Matcher<? super EastNorth> is(final EastNorth expected) {
+        return new CustomTypeSafeMatcher<EastNorth>("the same EastNorth") {
+            @Override
+            protected boolean matchesSafely(EastNorth actual) {
+                return Math.abs(expected.getX() - actual.getX()) <= LatLon.MAX_SERVER_PRECISION
+                        && Math.abs(expected.getY() - actual.getY()) <= LatLon.MAX_SERVER_PRECISION;
+            }
+        };
+    }
+
 }
