Index: trunk/test/unit/org/openstreetmap/josm/data/coor/LatLonTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/data/coor/LatLonTest.java	(revision 6213)
+++ trunk/test/unit/org/openstreetmap/josm/data/coor/LatLonTest.java	(revision 6226)
@@ -21,6 +21,9 @@
            };
     
+    /**
+     * Test of {@link LatLon#roundToOsmPrecisionStrict}
+     */
     @Test
-    public void roundingTests() {
+    public void testRoundToOsmPrecisionStrict() {
         
         for (double value : sampleValues) {
@@ -74,6 +77,9 @@
     }
     
+    /**
+     * Test of {@link LatLon#toIntervalLon}
+     */
     @Test
-    public void toIntervalLonTests() {
+    public void testToIntervalLon() {
         assertEquals(-180.0, LatLon.toIntervalLon(-180.0), 0);
         assertEquals(0.0, LatLon.toIntervalLon(0.0), 0);
@@ -95,3 +101,27 @@
         assertEquals(179.0, LatLon.toIntervalLon(-541.0), 0);
     }
+
+    /**
+     * Test of {@link LatLon#equals}
+     */
+    @Test
+    public void testEquals() {
+        for (int i = 1; i < sampleValues.length; i++) {
+            LatLon a = new LatLon(sampleValues[i-1], sampleValues[i]);
+            LatLon b = new LatLon(sampleValues[i-1], sampleValues[i]);
+            assertEquals(a, b);
+        }
+    }
+
+    /**
+     * Test of {@link LatLon#hashCode}
+     */
+    @Test
+    public void testHashCode() {
+        for (int i = 1; i < sampleValues.length; i++) {
+            LatLon a = new LatLon(sampleValues[i-1], sampleValues[i]);
+            LatLon b = new LatLon(sampleValues[i-1], sampleValues[i]);
+            assertEquals(a.hashCode(), b.hashCode());
+        }
+    }
 }
Index: trunk/test/unit/org/openstreetmap/josm/data/validation/tests/DuplicateNodeTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/data/validation/tests/DuplicateNodeTest.java	(revision 6226)
+++ trunk/test/unit/org/openstreetmap/josm/data/validation/tests/DuplicateNodeTest.java	(revision 6226)
@@ -0,0 +1,49 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.validation.tests;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Preferences;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.projection.Projections;
+import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
+
+/**
+ * JUnit Test of "Duplicate node" validation test. 
+ */
+public class DuplicateNodeTest {
+
+    /**
+     * Setup test by initializing JOSM preferences and projection. 
+     */
+    @BeforeClass
+    public static void setUp() {
+        Main.setProjection(Projections.getProjectionByCode("EPSG:3857")); // Mercator
+        Main.pref = new Preferences();
+    }
+
+    /**
+     * Test of "Duplicate node" validation test.
+     */
+    @Test
+    public void test() {
+        DataSet ds = new DataSet();
+
+        Node a = new Node(new LatLon(10.0, 5.0));
+        Node b = new Node(new LatLon(10.0, 5.0));
+        ds.addPrimitive(a);
+        ds.addPrimitive(b);
+
+        DuplicateNode test = new DuplicateNode();
+        test.startTest(NullProgressMonitor.INSTANCE);
+        test.visit(ds.allPrimitives());
+        test.endTest();
+        
+        assertEquals(1, test.getErrors().size());
+    }
+}
