You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by iv...@apache.org on 2019/02/19 16:03:00 UTC

[lucene-solr] branch branch_8x updated: LUCENE-8685: Refactor LatLonShape tests

This is an automated email from the ASF dual-hosted git repository.

ivera pushed a commit to branch branch_8x
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git


The following commit(s) were added to refs/heads/branch_8x by this push:
     new 6dff94e  LUCENE-8685: Refactor LatLonShape tests
6dff94e is described below

commit 6dff94e2a21a58496166a4d6578c7d5b82182418
Author: iverase <iv...@apache.org>
AuthorDate: Tue Feb 19 16:58:21 2019 +0100

    LUCENE-8685: Refactor LatLonShape tests
---
 lucene/CHANGES.txt                                 |   2 +
 .../apache/lucene/document/TestLatLonShape.java    | 532 ---------------------
 ...tLonShape.java => TestLatLonShapeEncoding.java} | 381 +--------------
 3 files changed, 5 insertions(+), 910 deletions(-)

diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index 0be7e65..eb7bb58 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -16,6 +16,8 @@ Other
 
 * LUCENE-8680: Refactor EdgeTree#relateTriangle method. (Ignacio Vera)
 
+* LUCENE-8685: Refactor LatLonShape tests. (Ignacio Vera)
+
 ======================= Lucene 8.0.0 =======================
 
 API Changes
diff --git a/lucene/sandbox/src/test/org/apache/lucene/document/TestLatLonShape.java b/lucene/sandbox/src/test/org/apache/lucene/document/TestLatLonShape.java
index f5584a4..ce99487 100644
--- a/lucene/sandbox/src/test/org/apache/lucene/document/TestLatLonShape.java
+++ b/lucene/sandbox/src/test/org/apache/lucene/document/TestLatLonShape.java
@@ -16,13 +16,10 @@
  */
 package org.apache.lucene.document;
 
-import java.util.Arrays;
-
 import com.carrotsearch.randomizedtesting.generators.RandomNumbers;
 import org.apache.lucene.document.LatLonShape.QueryRelation;
 import org.apache.lucene.geo.GeoEncodingUtils;
 import org.apache.lucene.geo.GeoTestUtil;
-import org.apache.lucene.geo.GeoUtils;
 import org.apache.lucene.geo.Line;
 import org.apache.lucene.geo.Polygon;
 import org.apache.lucene.geo.Polygon2D;
@@ -271,535 +268,6 @@ public class TestLatLonShape extends LuceneTestCase {
     IOUtils.close(r, dir);
   }
 
-  //One shared point with MBR -> MinLat, MinLon
-  public void testPolygonEncodingMinLatMinLon() {
-    double alat = 0.0;
-    double alon = 0.0;
-    double blat = 1.0;
-    double blon = 2.0;
-    double clat = 2.0;
-    double clon = 1.0;
-    int alatEnc = GeoEncodingUtils.encodeLatitude(alat);
-    int alonEnc = GeoEncodingUtils.encodeLongitude(alon);
-    int blatEnc = GeoEncodingUtils.encodeLatitude(blat);
-    int blonEnc = GeoEncodingUtils.encodeLongitude(blon);
-    int clatEnc = GeoEncodingUtils.encodeLatitude(clat);
-    int clonEnc = GeoEncodingUtils.encodeLongitude(clon);
-    verifyEncodingPermutations(alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc);
-    byte[] b = new byte[7 * LatLonShape.BYTES];
-    LatLonShape.encodeTriangle(b, alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc);
-    int[] encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    assertTrue(encoded[0] == alatEnc);
-    assertTrue(encoded[1] == alonEnc);
-    assertTrue(encoded[2] == blatEnc);
-    assertTrue(encoded[3] == blonEnc);
-    assertTrue(encoded[4] == clatEnc);
-    assertTrue(encoded[5] == clonEnc);
-  }
-
-  //One shared point with MBR -> MinLat, MaxLon
-  public void testPolygonEncodingMinLatMaxLon() {
-    double alat = 1.0;
-    double alon = 0.0;
-    double blat = 0.0;
-    double blon = 2.0;
-    double clat = 2.0;
-    double clon = 1.0;
-    int alatEnc = GeoEncodingUtils.encodeLatitude(alat);
-    int alonEnc = GeoEncodingUtils.encodeLongitude(alon);
-    int blatEnc = GeoEncodingUtils.encodeLatitude(blat);
-    int blonEnc = GeoEncodingUtils.encodeLongitude(blon);
-    int clatEnc = GeoEncodingUtils.encodeLatitude(clat);
-    int clonEnc = GeoEncodingUtils.encodeLongitude(clon);
-    verifyEncodingPermutations(alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc);
-    byte[] b = new byte[7 * LatLonShape.BYTES];
-    LatLonShape.encodeTriangle(b, alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc);
-    int[] encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    assertTrue(encoded[0] == alatEnc);
-    assertTrue(encoded[1] == alonEnc);
-    assertTrue(encoded[2] == blatEnc);
-    assertTrue(encoded[3] == blonEnc);
-    assertTrue(encoded[4] == clatEnc);
-    assertTrue(encoded[5] == clonEnc);
-  }
-
-  //One shared point with MBR -> MaxLat, MaxLon
-  public void testPolygonEncodingMaxLatMaxLon() {
-    double alat = 1.0;
-    double alon = 0.0;
-    double blat = 2.0;
-    double blon = 2.0;
-    double clat = 0.0;
-    double clon = 1.0;
-    int alatEnc = GeoEncodingUtils.encodeLatitude(alat);
-    int alonEnc = GeoEncodingUtils.encodeLongitude(alon);
-    int blatEnc = GeoEncodingUtils.encodeLatitude(clat);
-    int blonEnc = GeoEncodingUtils.encodeLongitude(clon);
-    int clatEnc = GeoEncodingUtils.encodeLatitude(blat);
-    int clonEnc = GeoEncodingUtils.encodeLongitude(blon);
-    verifyEncodingPermutations(alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc);
-    byte[] b = new byte[7 * LatLonShape.BYTES];
-    LatLonShape.encodeTriangle(b, alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc);
-    int[] encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    assertTrue(encoded[0] == alatEnc);
-    assertTrue(encoded[1] == alonEnc);
-    assertTrue(encoded[2] == blatEnc);
-    assertTrue(encoded[3] == blonEnc);
-    assertTrue(encoded[4] == clatEnc);
-    assertTrue(encoded[5] == clonEnc);
-  }
-
-  //One shared point with MBR -> MaxLat, MinLon
-  public void testPolygonEncodingMaxLatMinLon() {
-    double alat = 2.0;
-    double alon = 0.0;
-    double blat = 1.0;
-    double blon = 2.0;
-    double clat = 0.0;
-    double clon = 1.0;
-    int alatEnc = GeoEncodingUtils.encodeLatitude(alat);
-    int alonEnc = GeoEncodingUtils.encodeLongitude(alon);
-    int blatEnc = GeoEncodingUtils.encodeLatitude(clat);
-    int blonEnc = GeoEncodingUtils.encodeLongitude(clon);
-    int clatEnc = GeoEncodingUtils.encodeLatitude(blat);
-    int clonEnc = GeoEncodingUtils.encodeLongitude(blon);
-    verifyEncodingPermutations(alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc);
-    byte[] b = new byte[7 * LatLonShape.BYTES];
-    LatLonShape.encodeTriangle(b, alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc);
-    int[] encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    assertTrue(encoded[0] == alatEnc);
-    assertTrue(encoded[1] == alonEnc);
-    assertTrue(encoded[2] == blatEnc);
-    assertTrue(encoded[3] == blonEnc);
-    assertTrue(encoded[4] == clatEnc);
-    assertTrue(encoded[5] == clonEnc);
-  }
-
-  //Two shared point with MBR -> [MinLat, MinLon], [MaxLat, MaxLon], third point below
-  public void testPolygonEncodingMinLatMinLonMaxLatMaxLonBelow() {
-    double alat = 0.0;
-    double alon = 0.0;
-    double blat = 0.25;
-    double blon = 0.75;
-    double clat = 2.0;
-    double clon = 2.0;
-    int alatEnc = GeoEncodingUtils.encodeLatitude(alat);
-    int alonEnc = GeoEncodingUtils.encodeLongitude(alon);
-    int blatEnc = GeoEncodingUtils.encodeLatitude(blat);
-    int blonEnc = GeoEncodingUtils.encodeLongitude(blon);
-    int clatEnc = GeoEncodingUtils.encodeLatitude(clat);
-    int clonEnc = GeoEncodingUtils.encodeLongitude(clon);
-    verifyEncodingPermutations(alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc);
-    byte[] b = new byte[7 * LatLonShape.BYTES];
-    LatLonShape.encodeTriangle(b, alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc);
-    int[] encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    assertTrue(encoded[0] == alatEnc);
-    assertTrue(encoded[1] == alonEnc);
-    assertTrue(encoded[2] == blatEnc);
-    assertTrue(encoded[3] == blonEnc);
-    assertTrue(encoded[4] == clatEnc);
-    assertTrue(encoded[5] == clonEnc);
-  }
-
-  //Two shared point with MBR -> [MinLat, MinLon], [MaxLat, MaxLon], third point above
-  public void testPolygonEncodingMinLatMinLonMaxLatMaxLonAbove() {
-    double alat = 0.0;
-    double alon = 0.0;
-    double blat = 2.0;
-    double blon = 2.0;
-    double clat = 1.75;
-    double clon = 1.25;
-    int alatEnc = GeoEncodingUtils.encodeLatitude(alat);
-    int alonEnc = GeoEncodingUtils.encodeLongitude(alon);
-    int blatEnc = GeoEncodingUtils.encodeLatitude(blat);
-    int blonEnc = GeoEncodingUtils.encodeLongitude(blon);
-    int clatEnc = GeoEncodingUtils.encodeLatitude(clat);
-    int clonEnc = GeoEncodingUtils.encodeLongitude(clon);
-    verifyEncodingPermutations(alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc);
-    byte[] b = new byte[7 * LatLonShape.BYTES];
-    LatLonShape.encodeTriangle(b, alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc);
-    int[] encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    assertTrue(encoded[0] == alatEnc);
-    assertTrue(encoded[1] == alonEnc);
-    assertTrue(encoded[2] == blatEnc);
-    assertTrue(encoded[3] == blonEnc);
-    assertTrue(encoded[4] == clatEnc);
-    assertTrue(encoded[5] == clonEnc);
-  }
-
-  //Two shared point with MBR -> [MinLat, MaxLon], [MaxLat, MinLon], third point below
-  public void testPolygonEncodingMinLatMaxLonMaxLatMinLonBelow() {
-    double alat = 2.0;
-    double alon = 0.0;
-    double blat = 0.25;
-    double blon = 0.75;
-    double clat = 0.0;
-    double clon = 2.0;
-    int alatEnc = GeoEncodingUtils.encodeLatitude(alat);
-    int alonEnc = GeoEncodingUtils.encodeLongitude(alon);
-    int blatEnc = GeoEncodingUtils.encodeLatitude(blat);
-    int blonEnc = GeoEncodingUtils.encodeLongitude(blon);
-    int clatEnc = GeoEncodingUtils.encodeLatitude(clat);
-    int clonEnc = GeoEncodingUtils.encodeLongitude(clon);
-    verifyEncodingPermutations(alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc);
-    byte[] b = new byte[7 * LatLonShape.BYTES];
-    LatLonShape.encodeTriangle(b, alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc);
-    int[] encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    assertTrue(encoded[0] == alatEnc);
-    assertTrue(encoded[1] == alonEnc);
-    assertTrue(encoded[2] == blatEnc);
-    assertTrue(encoded[3] == blonEnc);
-    assertTrue(encoded[4] == clatEnc);
-    assertTrue(encoded[5] == clonEnc);
-  }
-
-  //Two shared point with MBR -> [MinLat, MaxLon], [MaxLat, MinLon], third point above
-  public void testPolygonEncodingMinLatMaxLonMaxLatMinLonAbove() {
-    double alat = 2.0;
-    double alon = 0.0;
-    double blat = 0.0;
-    double blon = 2.0;
-    double clat = 1.75;
-    double clon = 1.25;
-    int alatEnc = GeoEncodingUtils.encodeLatitude(alat);
-    int alonEnc = GeoEncodingUtils.encodeLongitude(alon);
-    int blatEnc = GeoEncodingUtils.encodeLatitude(blat);
-    int blonEnc = GeoEncodingUtils.encodeLongitude(blon);
-    int clatEnc = GeoEncodingUtils.encodeLatitude(clat);
-    int clonEnc = GeoEncodingUtils.encodeLongitude(clon);
-    verifyEncodingPermutations(alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc);
-    byte[] b = new byte[7 * LatLonShape.BYTES];
-    LatLonShape.encodeTriangle(b, alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc);
-    int[] encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    assertTrue(encoded[0] == alatEnc);
-    assertTrue(encoded[1] == alonEnc);
-    assertTrue(encoded[2] == blatEnc);
-    assertTrue(encoded[3] == blonEnc);
-    assertTrue(encoded[4] == clatEnc);
-    assertTrue(encoded[5] == clonEnc);
-  }
-
-  //all points shared with MBR
-  public void testPolygonEncodingAllSharedAbove() {
-    double alat = 0.0;
-    double alon = 0.0;
-    double blat = 0.0;
-    double blon = 2.0;
-    double clat = 2.0;
-    double clon = 2.0;
-    int alatEnc = GeoEncodingUtils.encodeLatitude(alat);
-    int alonEnc = GeoEncodingUtils.encodeLongitude(alon);
-    int blatEnc = GeoEncodingUtils.encodeLatitude(blat);
-    int blonEnc = GeoEncodingUtils.encodeLongitude(blon);
-    int clatEnc = GeoEncodingUtils.encodeLatitude(clat);
-    int clonEnc = GeoEncodingUtils.encodeLongitude(clon);
-    verifyEncodingPermutations(alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc);
-    byte[] b = new byte[7 * LatLonShape.BYTES];
-    LatLonShape.encodeTriangle(b, alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc);
-    int[] encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    assertTrue(encoded[0] == alatEnc);
-    assertTrue(encoded[1] == alonEnc);
-    assertTrue(encoded[2] == blatEnc);
-    assertTrue(encoded[3] == blonEnc);
-    assertTrue(encoded[4] == clatEnc);
-    assertTrue(encoded[5] == clonEnc);
-  }
-
-  //all points shared with MBR
-  public void testPolygonEncodingAllSharedBelow() {
-    double alat = 2.0;
-    double alon = 0.0;
-    double blat = 0.0;
-    double blon = 0.0;
-    double clat = 2.0;
-    double clon = 2.0;
-    int alatEnc = GeoEncodingUtils.encodeLatitude(alat);
-    int alonEnc = GeoEncodingUtils.encodeLongitude(alon);
-    int blatEnc = GeoEncodingUtils.encodeLatitude(blat);
-    int blonEnc = GeoEncodingUtils.encodeLongitude(blon);
-    int clatEnc = GeoEncodingUtils.encodeLatitude(clat);
-    int clonEnc = GeoEncodingUtils.encodeLongitude(clon);
-    byte[] b = new byte[7 * LatLonShape.BYTES];
-    LatLonShape.encodeTriangle(b, alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc);
-    int[] encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    assertTrue(encoded[0] == alatEnc);
-    assertTrue(encoded[1] == alonEnc);
-    assertTrue(encoded[2] == blatEnc);
-    assertTrue(encoded[3] == blonEnc);
-    assertTrue(encoded[4] == clatEnc);
-    assertTrue(encoded[5] == clonEnc);
-  }
-
-  //[a,b,c] == [c,a,b] == [b,c,a] == [c,b,a] == [b,a,c] == [a,c,b]
-  public void verifyEncodingPermutations(int alatEnc, int alonEnc, int blatEnc, int blonEnc, int clatEnc, int clonEnc) {
-    //this is only valid when points are not co-planar
-    assertTrue(GeoUtils.orient(alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc) != 0);
-    byte[] b = new byte[7 * LatLonShape.BYTES];
-    //[a,b,c]
-    LatLonShape.encodeTriangle(b, alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc);
-    int[] encodedABC = new int[6];
-    LatLonShape.decodeTriangle(b, encodedABC);
-    //[c,a,b]
-    LatLonShape.encodeTriangle(b, clatEnc, clonEnc, alatEnc, alonEnc, blatEnc, blonEnc);
-    int[] encodedCAB = new int[6];
-    LatLonShape.decodeTriangle(b, encodedCAB);
-    assertTrue(Arrays.equals(encodedABC, encodedCAB));
-    //[b,c,a]
-    LatLonShape.encodeTriangle(b, blatEnc, blonEnc, clatEnc, clonEnc, alatEnc, alonEnc);
-    int[] encodedBCA = new int[6];
-    LatLonShape.decodeTriangle(b, encodedBCA);
-    assertTrue(Arrays.equals(encodedABC, encodedBCA));
-    //[c,b,a]
-    LatLonShape.encodeTriangle(b, clatEnc, clonEnc, blatEnc, blonEnc, alatEnc, alonEnc);
-    int[] encodedCBA= new int[6];
-    LatLonShape.decodeTriangle(b, encodedCBA);
-    assertTrue(Arrays.equals(encodedABC, encodedCBA));
-    //[b,a,c]
-    LatLonShape.encodeTriangle(b, blatEnc, blonEnc, alatEnc, alonEnc, clatEnc, clonEnc);
-    int[] encodedBAC= new int[6];
-    LatLonShape.decodeTriangle(b, encodedBAC);
-    assertTrue(Arrays.equals(encodedABC, encodedBAC));
-    //[a,c,b]
-    LatLonShape.encodeTriangle(b, alatEnc, alonEnc, clatEnc, clonEnc, blatEnc, blonEnc);
-    int[] encodedACB= new int[6];
-    LatLonShape.decodeTriangle(b, encodedACB);
-    assertTrue(Arrays.equals(encodedABC, encodedACB));
-  }
-
-  public void testPointEncoding() {
-    double lat = 45.0;
-    double lon = 45.0;
-    int latEnc = GeoEncodingUtils.encodeLatitude(lat);
-    int lonEnc = GeoEncodingUtils.encodeLongitude(lon);
-    byte[] b = new byte[7 * LatLonShape.BYTES];
-    LatLonShape.encodeTriangle(b, latEnc, lonEnc, latEnc, lonEnc, latEnc, lonEnc);
-    int[] encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    assertTrue(encoded[0] == latEnc && encoded[2] == latEnc && encoded[4] == latEnc);
-    assertTrue(encoded[1] == lonEnc && encoded[3] == lonEnc && encoded[5] == lonEnc);
-  }
-
-  public void testLineEncodingSameLat() {
-    double lat = 2.0;
-    double alon = 0.0;
-    double blon = 2.0;
-    int latEnc = GeoEncodingUtils.encodeLatitude(lat);
-    int alonEnc = GeoEncodingUtils.encodeLongitude(alon);
-    int blonEnc = GeoEncodingUtils.encodeLongitude(blon);
-    byte[] b = new byte[7 * LatLonShape.BYTES];
-    LatLonShape.encodeTriangle(b, latEnc, alonEnc, latEnc, blonEnc, latEnc, alonEnc);
-    int[] encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    assertTrue(encoded[0] == latEnc);
-    assertTrue(encoded[1] == alonEnc);
-    assertTrue(encoded[2] == latEnc);
-    assertTrue(encoded[3] == blonEnc);
-    assertTrue(encoded[4] == latEnc);
-    assertTrue(encoded[5] == alonEnc);
-    LatLonShape.encodeTriangle(b, latEnc, alonEnc, latEnc, alonEnc, latEnc, blonEnc);
-    encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    assertTrue(encoded[0] == latEnc);
-    assertTrue(encoded[1] == alonEnc);
-    assertTrue(encoded[2] == latEnc);
-    assertTrue(encoded[3] == alonEnc);
-    assertTrue(encoded[4] == latEnc);
-    assertTrue(encoded[5] == blonEnc);
-    LatLonShape.encodeTriangle(b, latEnc, blonEnc, latEnc, alonEnc, latEnc, alonEnc);
-    encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    assertTrue(encoded[0] == latEnc);
-    assertTrue(encoded[1] == alonEnc);
-    assertTrue(encoded[2] == latEnc);
-    assertTrue(encoded[3] == blonEnc);
-    assertTrue(encoded[4] == latEnc);
-    assertTrue(encoded[5] == alonEnc);
-  }
-
-  public void testLineEncodingSameLon() {
-    double alat = 0.0;
-    double blat = 2.0;
-    double lon = 2.0;
-    int alatEnc = GeoEncodingUtils.encodeLatitude(alat);
-    int blatEnc = GeoEncodingUtils.encodeLatitude(blat);
-    int lonEnc = GeoEncodingUtils.encodeLongitude(lon);
-    byte[] b = new byte[7 * LatLonShape.BYTES];
-    LatLonShape.encodeTriangle(b, alatEnc, lonEnc, blatEnc, lonEnc, alatEnc, lonEnc);
-    int[] encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    assertTrue(encoded[0] == alatEnc);
-    assertTrue(encoded[1] == lonEnc);
-    assertTrue(encoded[2] == blatEnc);
-    assertTrue(encoded[3] == lonEnc);
-    assertTrue(encoded[4] == alatEnc);
-    assertTrue(encoded[5] == lonEnc);
-    LatLonShape.encodeTriangle(b, alatEnc, lonEnc, alatEnc, lonEnc, blatEnc, lonEnc);
-    encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    assertTrue(encoded[0] == alatEnc);
-    assertTrue(encoded[1] == lonEnc);
-    assertTrue(encoded[2] == alatEnc);
-    assertTrue(encoded[3] == lonEnc);
-    assertTrue(encoded[4] == blatEnc);
-    assertTrue(encoded[5] == lonEnc);
-    LatLonShape.encodeTriangle(b, blatEnc, lonEnc, alatEnc, lonEnc, alatEnc, lonEnc);
-    encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    assertTrue(encoded[0] == alatEnc);
-    assertTrue(encoded[1] == lonEnc);
-    assertTrue(encoded[2] == blatEnc);
-    assertTrue(encoded[3] == lonEnc);
-    assertTrue(encoded[4] == alatEnc);
-    assertTrue(encoded[5] == lonEnc);
-  }
-
-  public void testLineEncoding() {
-    double alat = 0.0;
-    double blat = 2.0;
-    double alon = 0.0;
-    double blon = 2.0;
-    int alatEnc = GeoEncodingUtils.encodeLatitude(alat);
-    int blatEnc = GeoEncodingUtils.encodeLatitude(blat);
-    int alonEnc = GeoEncodingUtils.encodeLongitude(alon);
-    int blonEnc = GeoEncodingUtils.encodeLongitude(blon);
-    byte[] b = new byte[7 * LatLonShape.BYTES];
-    LatLonShape.encodeTriangle(b, alatEnc, alonEnc, blatEnc, blonEnc, alatEnc, alonEnc);
-    int[] encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    assertTrue(encoded[0] == alatEnc);
-    assertTrue(encoded[1] == alonEnc);
-    assertTrue(encoded[2] == blatEnc);
-    assertTrue(encoded[3] == blonEnc);
-    assertTrue(encoded[4] == alatEnc);
-    assertTrue(encoded[5] == alonEnc);
-    LatLonShape.encodeTriangle(b, alatEnc, alonEnc, alatEnc, alonEnc, blatEnc, blonEnc);
-    encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    assertTrue(encoded[0] == alatEnc);
-    assertTrue(encoded[1] == alonEnc);
-    assertTrue(encoded[2] == alatEnc);
-    assertTrue(encoded[3] == alonEnc);
-    assertTrue(encoded[4] == blatEnc);
-    assertTrue(encoded[5] == blonEnc);
-    LatLonShape.encodeTriangle(b, blatEnc, blonEnc, alatEnc, alonEnc, alatEnc, alonEnc);
-    encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    assertTrue(encoded[0] == alatEnc);
-    assertTrue(encoded[1] == alonEnc);
-    assertTrue(encoded[2] == blatEnc);
-    assertTrue(encoded[3] == blonEnc);
-    assertTrue(encoded[4] == alatEnc);
-    assertTrue(encoded[5] == alonEnc);
-  }
-
-  public void testRandomPointEncoding() {
-    double alat = GeoTestUtil.nextLatitude();
-    double alon = GeoTestUtil.nextLongitude();
-    verifyEncoding(alat, alon, alat, alon, alat, alon);
-  }
-
-  public void testRandomLineEncoding() {
-    double alat = GeoTestUtil.nextLatitude();
-    double alon = GeoTestUtil.nextLongitude();
-    double blat = GeoTestUtil.nextLatitude();
-    double blon = GeoTestUtil.nextLongitude();
-    verifyEncoding(alat, alon, blat, blon, alat, alon);
-  }
-
-  public void testRandomPolygonEncoding() {
-    double alat = GeoTestUtil.nextLatitude();
-    double alon = GeoTestUtil.nextLongitude();
-    double blat = GeoTestUtil.nextLatitude();
-    double blon = GeoTestUtil.nextLongitude();
-    double clat = GeoTestUtil.nextLatitude();
-    double clon = GeoTestUtil.nextLongitude();
-    verifyEncoding(alat, alon, blat, blon, clat, clon);
-  }
-
-  private void verifyEncoding(double alat, double alon, double blat, double blon, double clat, double clon) {
-    int[] original = new int[]{GeoEncodingUtils.encodeLatitude(alat),
-        GeoEncodingUtils.encodeLongitude(alon),
-        GeoEncodingUtils.encodeLatitude(blat),
-        GeoEncodingUtils.encodeLongitude(blon),
-        GeoEncodingUtils.encodeLatitude(clat),
-        GeoEncodingUtils.encodeLongitude(clon)};
-
-    //quantize the triangle
-    byte[] b = new byte[7 * LatLonShape.BYTES];
-    LatLonShape.encodeTriangle(b, original[0], original[1], original[2], original[3], original[4], original[5]);
-    int[] encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    double[] encodedQuantize = new double[] {GeoEncodingUtils.decodeLatitude(encoded[0]),
-        GeoEncodingUtils.decodeLongitude(encoded[1]),
-        GeoEncodingUtils.decodeLatitude(encoded[2]),
-        GeoEncodingUtils.decodeLongitude(encoded[3]),
-        GeoEncodingUtils.decodeLatitude(encoded[4]),
-        GeoEncodingUtils.decodeLongitude(encoded[5])};
-
-    int orientation = GeoUtils.orient(original[1], original[0], original[3], original[2], original[5], original[4]);
-    //quantize original
-    double[] originalQuantize;
-    //we need to change the orientation if CW
-    if (orientation == -1) {
-      originalQuantize = new double[] {GeoEncodingUtils.decodeLatitude(original[4]),
-          GeoEncodingUtils.decodeLongitude(original[5]),
-          GeoEncodingUtils.decodeLatitude(original[2]),
-          GeoEncodingUtils.decodeLongitude(original[3]),
-          GeoEncodingUtils.decodeLatitude(original[0]),
-          GeoEncodingUtils.decodeLongitude(original[1])};
-    } else {
-      originalQuantize = new double[] {GeoEncodingUtils.decodeLatitude(original[0]),
-          GeoEncodingUtils.decodeLongitude(original[1]),
-          GeoEncodingUtils.decodeLatitude(original[2]),
-          GeoEncodingUtils.decodeLongitude(original[3]),
-          GeoEncodingUtils.decodeLatitude(original[4]),
-          GeoEncodingUtils.decodeLongitude(original[5])};
-    }
-
-    for (int i =0; i < 100; i ++) {
-      Polygon polygon = GeoTestUtil.nextPolygon();
-      Polygon2D polygon2D = Polygon2D.create(polygon);
-      PointValues.Relation originalRelation = polygon2D.relateTriangle(originalQuantize[1], originalQuantize[0], originalQuantize[3], originalQuantize[2], originalQuantize[5], originalQuantize[4]);
-      PointValues.Relation encodedRelation = polygon2D.relateTriangle(encodedQuantize[1], encodedQuantize[0], encodedQuantize[3], encodedQuantize[2], encodedQuantize[5], encodedQuantize[4]);
-      assertTrue(originalRelation == encodedRelation);
-    }
-  }
-
-  public void testDegeneratedTriangle() {
-    double alat = 1e-26d;
-    double alon = 0.0d;
-    double blat = -1.0d;
-    double blon = 0.0d;
-    double clat = 1.0d;
-    double clon = 0.0d;
-    int alatEnc = GeoEncodingUtils.encodeLatitude(alat);
-    int alonEnc = GeoEncodingUtils.encodeLongitude(alon);
-    int blatEnc = GeoEncodingUtils.encodeLatitude(blat);
-    int blonEnc = GeoEncodingUtils.encodeLongitude(blon);
-    int clatEnc = GeoEncodingUtils.encodeLatitude(clat);
-    int clonEnc = GeoEncodingUtils.encodeLongitude(clon);
-    byte[] b = new byte[7 * LatLonShape.BYTES];
-    LatLonShape.encodeTriangle(b, alatEnc, alonEnc, blatEnc, blonEnc, clatEnc, clonEnc);
-    int[] encoded = new int[6];
-    LatLonShape.decodeTriangle(b, encoded);
-    assertTrue(encoded[0] == blatEnc);
-    assertTrue(encoded[1] == blonEnc);
-    assertTrue(encoded[2] == clatEnc);
-    assertTrue(encoded[3] == clonEnc);
-    assertTrue(encoded[4] == alatEnc);
-    assertTrue(encoded[5] == alonEnc);
-  }
-
   public void testLUCENE8669() throws Exception {
     Directory dir = newDirectory();
     RandomIndexWriter w = new RandomIndexWriter(random(), dir);
diff --git a/lucene/sandbox/src/test/org/apache/lucene/document/TestLatLonShape.java b/lucene/sandbox/src/test/org/apache/lucene/document/TestLatLonShapeEncoding.java
similarity index 58%
copy from lucene/sandbox/src/test/org/apache/lucene/document/TestLatLonShape.java
copy to lucene/sandbox/src/test/org/apache/lucene/document/TestLatLonShapeEncoding.java
index f5584a4..e4cd2bc 100644
--- a/lucene/sandbox/src/test/org/apache/lucene/document/TestLatLonShape.java
+++ b/lucene/sandbox/src/test/org/apache/lucene/document/TestLatLonShapeEncoding.java
@@ -18,258 +18,17 @@ package org.apache.lucene.document;
 
 import java.util.Arrays;
 
-import com.carrotsearch.randomizedtesting.generators.RandomNumbers;
-import org.apache.lucene.document.LatLonShape.QueryRelation;
+
 import org.apache.lucene.geo.GeoEncodingUtils;
 import org.apache.lucene.geo.GeoTestUtil;
 import org.apache.lucene.geo.GeoUtils;
-import org.apache.lucene.geo.Line;
 import org.apache.lucene.geo.Polygon;
 import org.apache.lucene.geo.Polygon2D;
-import org.apache.lucene.geo.Rectangle;
-import org.apache.lucene.geo.Rectangle2D;
-import org.apache.lucene.geo.Tessellator;
-import org.apache.lucene.index.DirectoryReader;
-import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.PointValues;
-import org.apache.lucene.index.RandomIndexWriter;
-import org.apache.lucene.index.SerialMergeScheduler;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.store.Directory;
-import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.TestUtil;
-import org.junit.Ignore;
-
-import static org.apache.lucene.geo.GeoEncodingUtils.encodeLatitude;
-import static org.apache.lucene.geo.GeoEncodingUtils.encodeLongitude;
-
-/** Test case for indexing polygons and querying by bounding box */
-public class TestLatLonShape extends LuceneTestCase {
-  protected static String FIELDNAME = "field";
-  protected void addPolygonsToDoc(String field, Document doc, Polygon polygon) {
-    Field[] fields = LatLonShape.createIndexableFields(field, polygon);
-    for (Field f : fields) {
-      doc.add(f);
-    }
-  }
-
-  protected void addLineToDoc(String field, Document doc, Line line) {
-    Field[] fields = LatLonShape.createIndexableFields(field, line);
-    for (Field f : fields) {
-      doc.add(f);
-    }
-  }
-
-  protected Query newRectQuery(String field, double minLat, double maxLat, double minLon, double maxLon) {
-    return LatLonShape.newBoxQuery(field, QueryRelation.INTERSECTS, minLat, maxLat, minLon, maxLon);
-  }
-
-  @Ignore
-  public void testRandomPolygons() throws Exception {
-    int numVertices;
-    int numPolys = RandomNumbers.randomIntBetween(random(), 10, 20);
-
-    Directory dir = newDirectory();
-    RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-
-    Polygon polygon;
-    Document document;
-    for (int i = 0; i < numPolys;) {
-      document = new Document();
-      numVertices = TestUtil.nextInt(random(), 100000, 200000);
-      polygon = GeoTestUtil.createRegularPolygon(0, 0, atLeast(1000000), numVertices);
-      addPolygonsToDoc(FIELDNAME, document, polygon);
-      writer.addDocument(document);
-    }
-
-    // search and verify we found our doc
-    IndexReader reader = writer.getReader();
-    IndexSearcher searcher = newSearcher(reader);
-    assertEquals(0, searcher.count(newRectQuery("field", -89.9, -89.8, -179.9, -179.8d)));
-
-    reader.close();
-    writer.close();
-    dir.close();
-  }
-
-  /** test we can search for a point with a standard number of vertices*/
-  public void testBasicIntersects() throws Exception {
-    int numVertices = TestUtil.nextInt(random(), 50, 100);
-    Directory dir = newDirectory();
-    RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-
-    // add a random polygon document
-    Polygon p = GeoTestUtil.createRegularPolygon(0, 90, atLeast(1000000), numVertices);
-    Document document = new Document();
-    addPolygonsToDoc(FIELDNAME, document, p);
-    writer.addDocument(document);
-
-    // add a line document
-    document = new Document();
-    // add a line string
-    double lats[] = new double[p.numPoints() - 1];
-    double lons[] = new double[p.numPoints() - 1];
-    for (int i = 0; i < lats.length; ++i) {
-      lats[i] = p.getPolyLat(i);
-      lons[i] = p.getPolyLon(i);
-    }
-    Line l = new Line(lats, lons);
-    addLineToDoc(FIELDNAME, document, l);
-    writer.addDocument(document);
-
-    ////// search /////
-    // search an intersecting bbox
-    IndexReader reader = writer.getReader();
-    writer.close();
-    IndexSearcher searcher = newSearcher(reader);
-    double minLat = Math.min(lats[0], lats[1]);
-    double minLon = Math.min(lons[0], lons[1]);
-    double maxLat = Math.max(lats[0], lats[1]);
-    double maxLon = Math.max(lons[0], lons[1]);
-    Query q = newRectQuery(FIELDNAME, minLat, maxLat, minLon, maxLon);
-    assertEquals(2, searcher.count(q));
-
-    // search a disjoint bbox
-    q = newRectQuery(FIELDNAME, p.minLat-1d, p.minLat+1, p.minLon-1d, p.minLon+1d);
-    assertEquals(0, searcher.count(q));
-
-    IOUtils.close(reader, dir);
-  }
-
-  /** test random polygons with a single hole */
-  public void testPolygonWithHole() throws Exception {
-    int numVertices = TestUtil.nextInt(random(), 50, 100);
-    Directory dir = newDirectory();
-    RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-
-    // add a random polygon with a hole
-    Polygon inner = new Polygon(new double[] {-1d, -1d, 1d, 1d, -1d},
-        new double[] {-91d, -89d, -89d, -91.0, -91.0});
-    Polygon outer = GeoTestUtil.createRegularPolygon(0, -90, atLeast(1000000), numVertices);
-
-    Document document = new Document();
-    addPolygonsToDoc(FIELDNAME, document, new Polygon(outer.getPolyLats(), outer.getPolyLons(), inner));
-    writer.addDocument(document);
-
-    ///// search //////
-    IndexReader reader = writer.getReader();
-    writer.close();
-    IndexSearcher searcher = newSearcher(reader);
-
-    // search a bbox in the hole
-    Query q = newRectQuery(FIELDNAME, inner.minLat + 1e-6, inner.maxLat - 1e-6, inner.minLon + 1e-6, inner.maxLon - 1e-6);
-    assertEquals(0, searcher.count(q));
-
-    IOUtils.close(reader, dir);
-  }
-
-  /** test we can search for a point with a large number of vertices*/
-  public void testLargeVertexPolygon() throws Exception {
-    int numVertices = TestUtil.nextInt(random(), 200000, 500000);
-    IndexWriterConfig iwc = newIndexWriterConfig();
-    iwc.setMergeScheduler(new SerialMergeScheduler());
-    int mbd = iwc.getMaxBufferedDocs();
-    if (mbd != -1 && mbd < numVertices/100) {
-      iwc.setMaxBufferedDocs(numVertices/100);
-    }
-    Directory dir = newFSDirectory(createTempDir(getClass().getSimpleName()));
-    IndexWriter writer = new IndexWriter(dir, iwc);
-
-    // add a random polygon without a hole
-    Polygon p = GeoTestUtil.createRegularPolygon(0, 90, atLeast(1000000), numVertices);
-    Document document = new Document();
-    addPolygonsToDoc(FIELDNAME, document, p);
-    writer.addDocument(document);
-
-    // add a random polygon with a hole
-    Polygon inner = new Polygon(new double[] {-1d, -1d, 1d, 1d, -1d},
-        new double[] {-91d, -89d, -89d, -91.0, -91.0});
-    Polygon outer = GeoTestUtil.createRegularPolygon(0, -90, atLeast(1000000), numVertices);
-
-    document = new Document();
-    addPolygonsToDoc(FIELDNAME, document, new Polygon(outer.getPolyLats(), outer.getPolyLons(), inner));
-    writer.addDocument(document);
-
-    ////// search /////
-    // search an intersecting bbox
-    IndexReader reader = DirectoryReader.open(writer);
-    writer.close();
-    IndexSearcher searcher = newSearcher(reader);
-    Query q = newRectQuery(FIELDNAME, -1d, 1d, p.minLon, p.maxLon);
-    assertEquals(1, searcher.count(q));
 
-    // search a disjoint bbox
-    q = newRectQuery(FIELDNAME, p.minLat-1d, p.minLat+1, p.minLon-1d, p.minLon+1d);
-    assertEquals(0, searcher.count(q));
-
-    // search a bbox in the hole
-    q = newRectQuery(FIELDNAME, inner.minLat + 1e-6, inner.maxLat - 1e-6, inner.minLon + 1e-6, inner.maxLon - 1e-6);
-    assertEquals(0, searcher.count(q));
-
-    IOUtils.close(reader, dir);
-  }
-
-  public void testLUCENE8454() throws Exception {
-    Directory dir = newDirectory();
-    RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-
-    Polygon poly = new Polygon(new double[] {-1.490648725633769E-132d, 90d, 90d, -1.490648725633769E-132d},
-        new double[] {0d, 0d, 180d, 0d});
-
-    Rectangle rectangle = new Rectangle(-29.46555603761226d, 0.0d, 8.381903171539307E-8d, 0.9999999403953552d);
-    Rectangle2D rectangle2D = Rectangle2D.create(rectangle);
-
-    Tessellator.Triangle t = Tessellator.tessellate(poly).get(0);
-
-    byte[] encoded = new byte[7 * LatLonShape.BYTES];
-    LatLonShape.encodeTriangle(encoded, encodeLatitude(t.getLat(0)), encodeLongitude(t.getLon(0)),
-        encodeLatitude(t.getLat(1)), encodeLongitude(t.getLon(1)), encodeLatitude(t.getLat(2)), encodeLongitude(t.getLon(2)));
-    int[] decoded = new int[6];
-    LatLonShape.decodeTriangle(encoded, decoded);
-
-    int expected =rectangle2D.intersectsTriangle(decoded[1], decoded[0], decoded[3], decoded[2], decoded[5], decoded[4]) ? 0 : 1;
-
-    Document document = new Document();
-    addPolygonsToDoc(FIELDNAME, document, poly);
-    writer.addDocument(document);
-
-    ///// search //////
-    IndexReader reader = writer.getReader();
-    writer.close();
-    IndexSearcher searcher = newSearcher(reader);
-
-    // search a bbox in the hole
-    Query q = LatLonShape.newBoxQuery(FIELDNAME, QueryRelation.DISJOINT,-29.46555603761226d, 0.0d, 8.381903171539307E-8d, 0.9999999403953552d);
-    assertEquals(expected, searcher.count(q));
-
-    IOUtils.close(reader, dir);
-  }
-
-  public void testPointIndexAndQuery() throws Exception {
-    Directory dir = newDirectory();
-    RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
-    Document document = new Document();
-    BaseLatLonShapeTestCase.Point p = (BaseLatLonShapeTestCase.Point) BaseLatLonShapeTestCase.ShapeType.POINT.nextShape();
-    Field[] fields = LatLonShape.createIndexableFields(FIELDNAME, p.lat, p.lon);
-    for (Field f : fields) {
-      document.add(f);
-    }
-    writer.addDocument(document);
-
-    //// search
-    IndexReader r = writer.getReader();
-    writer.close();
-    IndexSearcher s = newSearcher(r);
-
-    // search by same point
-    Query q = LatLonShape.newBoxQuery(FIELDNAME, QueryRelation.INTERSECTS, p.lat, p.lat, p.lon, p.lon);
-    assertEquals(1, s.count(q));
-    IOUtils.close(r, dir);
-  }
+/** Test case for LatLonShape encoding */
+public class TestLatLonShapeEncoding extends LuceneTestCase {
 
   //One shared point with MBR -> MinLat, MinLon
   public void testPolygonEncodingMinLatMinLon() {
@@ -799,138 +558,4 @@ public class TestLatLonShape extends LuceneTestCase {
     assertTrue(encoded[4] == alatEnc);
     assertTrue(encoded[5] == alonEnc);
   }
-
-  public void testLUCENE8669() throws Exception {
-    Directory dir = newDirectory();
-    RandomIndexWriter w = new RandomIndexWriter(random(), dir);
-    Document doc = new Document();
-
-    Polygon indexPoly1 = new Polygon(
-        new double[] {-7.5d, 15d, 15d, 0d, -7.5d},
-        new double[] {-180d, -180d, -176d, -176d, -180d}
-    );
-
-    Polygon indexPoly2 = new Polygon(
-        new double[] {15d, -7.5d, -15d, -10d, 15d, 15d},
-        new double[] {180d, 180d, 176d, 174d, 176d, 180d}
-    );
-
-    Field[] fields = LatLonShape.createIndexableFields("test", indexPoly1);
-    for (Field f : fields) {
-      doc.add(f);
-    }
-    fields = LatLonShape.createIndexableFields("test", indexPoly2);
-    for (Field f : fields) {
-      doc.add(f);
-    }
-    w.addDocument(doc);
-    w.forceMerge(1);
-
-    ///// search //////
-    IndexReader reader = w.getReader();
-    w.close();
-    IndexSearcher searcher = newSearcher(reader);
-
-    Polygon[] searchPoly = new Polygon[] {
-        new Polygon(new double[] {-20d, 20d, 20d, -20d, -20d},
-            new double[] {-180d, -180d, -170d, -170d, -180d}),
-        new Polygon(new double[] {20d, -20d, -20d, 20d, 20d},
-            new double[] {180d, 180d, 170d, 170d, 180d})
-    };
-
-    Query q = LatLonShape.newPolygonQuery("test", QueryRelation.WITHIN, searchPoly);
-    assertEquals(1, searcher.count(q));
-
-    IOUtils.close(w, reader, dir);
-  }
-
-  public void testLUCENE8679() {
-    double alat = 1.401298464324817E-45;
-    double alon = 24.76789767911785;
-    double blat = 34.26468306870807;
-    double blon = -52.67048754768767;
-    Polygon polygon = new Polygon(new double[] {-14.448264200949083, 0, 0, -14.448264200949083, -14.448264200949083},
-                                  new double[] {0.9999999403953552, 0.9999999403953552, 124.50086371762484, 124.50086371762484, 0.9999999403953552});
-    Polygon2D polygon2D = Polygon2D.create(polygon);
-    PointValues.Relation rel = polygon2D.relateTriangle(GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(alon)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(blat)),
-        GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(blon)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(blat)),
-        GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(alon)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(alat)));
-
-    assertEquals(PointValues.Relation.CELL_OUTSIDE_QUERY, rel);
-
-    rel = polygon2D.relateTriangle(GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(alon)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(blat)),
-        GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(alon)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(alat)),
-        GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(blon)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(blat)));
-
-    assertEquals(PointValues.Relation.CELL_OUTSIDE_QUERY, rel);
-  }
-
-  public void testTriangleTouchingEdges() {
-    Polygon p = new Polygon(new double[] {0, 0, 1, 1, 0}, new double[] {0, 1, 1, 0, 0});
-    Polygon2D polygon2D = Polygon2D.create(p);
-    //3 shared points
-    PointValues.Relation rel = polygon2D.relateTriangle(GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(0.5)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(0)),
-        GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(1)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(0.5)),
-        GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(0.5)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(1)));
-    assertEquals(PointValues.Relation.CELL_INSIDE_QUERY, rel);
-    //2 shared points
-    rel = polygon2D.relateTriangle(GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(0.5)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(0)),
-        GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(1)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(0.5)),
-        GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(0.5)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(0.75)));
-    assertEquals(PointValues.Relation.CELL_INSIDE_QUERY, rel);
-    //1 shared point
-    rel = polygon2D.relateTriangle(
-        GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(0.5)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(0.5)),
-        GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(0.5)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(0)),
-        GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(0.75)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(0.75)));
-    assertEquals(PointValues.Relation.CELL_INSIDE_QUERY, rel);
-    // 1 shared point but out
-    rel = polygon2D.relateTriangle(GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(1)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(0.5)),
-        GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(2)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(0)),
-        GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(2)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(2)));
-    assertEquals(PointValues.Relation.CELL_CROSSES_QUERY, rel);
-    // 1 shared point but crossing
-    rel = polygon2D.relateTriangle(GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(0.5)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(0)),
-        GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(2)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(0.5)),
-        GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(0.5)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(1)));
-    assertEquals(PointValues.Relation.CELL_CROSSES_QUERY, rel);
-    //share one edge
-    rel = polygon2D.relateTriangle(GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(0)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(0)),
-        GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(0)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(1)),
-        GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(0.5)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(0.5)));
-    assertEquals(PointValues.Relation.CELL_INSIDE_QUERY, rel);
-    //share one edge outside
-    rel = polygon2D.relateTriangle(GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(0)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(1)),
-        GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(1.5)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(1.5)),
-        GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(1)),
-        GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(1)));
-    assertEquals(PointValues.Relation.CELL_CROSSES_QUERY, rel);
-  }
-
 }