Index: lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/PlaneTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/PlaneTest.java	(revision 0cd9f7f35af84ce769a37a2ef1afe8990c5b061a)
+++ lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/PlaneTest.java	(revision )
@@ -27,7 +27,6 @@
  */
 public class PlaneTest {
 
-
   @Test
   public void testIdenticalPlanes() {
     final GeoPoint p = new GeoPoint(PlanetModel.SPHERE, 0.123, -0.456);
@@ -44,6 +43,15 @@
     assertTrue(p1.isNumericallyIdentical(p2));
   }
 
+  @Test
+  public void testIdenticalVector() {
+    final Vector v1  = new Vector(1, 0 , 0);
+    final Vector v2  = new Vector(1, 0 , 0);
+    final Vector v3  = new Vector(-1, 0 , 0);
+    assertTrue(v1.isNumericallyIdentical(v2));
+    assertFalse(v1.isNumericallyIdentical(v3));
+  }
+
   @Test
   public void testInterpolation() {
     // [X=0.35168818443386646, Y=-0.19637966197066342, Z=0.9152870857244183],
