|
@@ -16,6 +16,8 @@ import org.elasticsearch.geometry.Rectangle;
|
|
|
import org.elasticsearch.test.ESTestCase;
|
|
|
import org.hamcrest.Matchers;
|
|
|
|
|
|
+import static org.elasticsearch.common.geo.GeoUtils.normalizeLat;
|
|
|
+import static org.elasticsearch.common.geo.GeoUtils.normalizeLon;
|
|
|
import static org.elasticsearch.search.aggregations.bucket.geogrid.GeoTileUtils.MAX_ZOOM;
|
|
|
import static org.elasticsearch.search.aggregations.bucket.geogrid.GeoTileUtils.checkPrecisionRange;
|
|
|
import static org.elasticsearch.search.aggregations.bucket.geogrid.GeoTileUtils.hashToGeoPoint;
|
|
@@ -53,20 +55,20 @@ public class GeoTileUtilsTests extends ESTestCase {
|
|
|
assertEquals(0x77FFFF4580000000L, longEncode(179.999, 89.999, 29));
|
|
|
assertEquals(0x740000BA7FFFFFFFL, longEncode(-179.999, -89.999, 29));
|
|
|
assertEquals(0x0800000040000001L, longEncode(1, 1, 2));
|
|
|
- assertEquals(0x0C00000060000000L, longEncode(-20, 100, 3));
|
|
|
+ assertEquals(0x0C00000060000000L, longEncode(-20, normalizeLat(100), 3));
|
|
|
assertEquals(0x71127D27C8ACA67AL, longEncode(13, -15, 28));
|
|
|
assertEquals(0x4C0077776003A9ACL, longEncode(-12, 15, 19));
|
|
|
- assertEquals(0x140000024000000EL, longEncode(-328.231870, 16.064082, 5));
|
|
|
- assertEquals(0x6436F96B60000000L, longEncode(-590.769588, 89.549167, 25));
|
|
|
- assertEquals(0x6411BD6BA0A98359L, longEncode(999.787079, 51.830093, 25));
|
|
|
- assertEquals(0x751BD6BBCA983596L, longEncode(999.787079, 51.830093, 29));
|
|
|
- assertEquals(0x77CF880A20000000L, longEncode(-557.039740, -632.103969, 29));
|
|
|
+ assertEquals(0x140000024000000EL, longEncode(normalizeLon(-328.231870), 16.064082, 5));
|
|
|
+ assertEquals(0x6436F96B60000000L, longEncode(normalizeLon(-590.769588), 89.549167, 25));
|
|
|
+ assertEquals(0x6411BD6BA0A98359L, longEncode(normalizeLon(999.787079), 51.830093, 25));
|
|
|
+ assertEquals(0x751BD6BBCA983596L, longEncode(normalizeLon(999.787079), 51.830093, 29));
|
|
|
+ assertEquals(0x77CF880A20000000L, longEncode(normalizeLon(-557.039740), normalizeLat(-632.103969), 29));
|
|
|
assertEquals(0x7624FA4FA0000000L, longEncode(13, 88, 29));
|
|
|
assertEquals(0x7624FA4FBFFFFFFFL, longEncode(13, -88, 29));
|
|
|
assertEquals(0x0400000020000000L, longEncode(13, 89, 1));
|
|
|
assertEquals(0x0400000020000001L, longEncode(13, -89, 1));
|
|
|
- assertEquals(0x0400000020000000L, longEncode(13, 95, 1));
|
|
|
- assertEquals(0x0400000020000001L, longEncode(13, -95, 1));
|
|
|
+ assertEquals(0x0400000020000000L, longEncode(13, normalizeLat(95), 1));
|
|
|
+ assertEquals(0x0400000020000001L, longEncode(13, normalizeLat(-95), 1));
|
|
|
|
|
|
expectThrows(IllegalArgumentException.class, () -> longEncode(0, 0, -1));
|
|
|
expectThrows(IllegalArgumentException.class, () -> longEncode(-1, 0, MAX_ZOOM + 1));
|
|
@@ -78,20 +80,20 @@ public class GeoTileUtilsTests extends ESTestCase {
|
|
|
assertEquals(0x77FFFF4580000000L, longEncode(stringEncode(longEncode(179.999, 89.999, 29))));
|
|
|
assertEquals(0x740000BA7FFFFFFFL, longEncode(stringEncode(longEncode(-179.999, -89.999, 29))));
|
|
|
assertEquals(0x0800000040000001L, longEncode(stringEncode(longEncode(1, 1, 2))));
|
|
|
- assertEquals(0x0C00000060000000L, longEncode(stringEncode(longEncode(-20, 100, 3))));
|
|
|
+ assertEquals(0x0C00000060000000L, longEncode(stringEncode(longEncode(-20, normalizeLat(100), 3))));
|
|
|
assertEquals(0x71127D27C8ACA67AL, longEncode(stringEncode(longEncode(13, -15, 28))));
|
|
|
assertEquals(0x4C0077776003A9ACL, longEncode(stringEncode(longEncode(-12, 15, 19))));
|
|
|
- assertEquals(0x140000024000000EL, longEncode(stringEncode(longEncode(-328.231870, 16.064082, 5))));
|
|
|
- assertEquals(0x6436F96B60000000L, longEncode(stringEncode(longEncode(-590.769588, 89.549167, 25))));
|
|
|
- assertEquals(0x6411BD6BA0A98359L, longEncode(stringEncode(longEncode(999.787079, 51.830093, 25))));
|
|
|
- assertEquals(0x751BD6BBCA983596L, longEncode(stringEncode(longEncode(999.787079, 51.830093, 29))));
|
|
|
- assertEquals(0x77CF880A20000000L, longEncode(stringEncode(longEncode(-557.039740, -632.103969, 29))));
|
|
|
+ assertEquals(0x140000024000000EL, longEncode(stringEncode(longEncode(normalizeLon(-328.231870), 16.064082, 5))));
|
|
|
+ assertEquals(0x6436F96B60000000L, longEncode(stringEncode(longEncode(normalizeLon(-590.769588), 89.549167, 25))));
|
|
|
+ assertEquals(0x6411BD6BA0A98359L, longEncode(stringEncode(longEncode(normalizeLon(999.787079), 51.830093, 25))));
|
|
|
+ assertEquals(0x751BD6BBCA983596L, longEncode(stringEncode(longEncode(normalizeLon(999.787079), 51.830093, 29))));
|
|
|
+ assertEquals(0x77CF880A20000000L, longEncode(stringEncode(longEncode(normalizeLon(-557.039740), normalizeLat(-632.103969), 29))));
|
|
|
assertEquals(0x7624FA4FA0000000L, longEncode(stringEncode(longEncode(13, 88, 29))));
|
|
|
assertEquals(0x7624FA4FBFFFFFFFL, longEncode(stringEncode(longEncode(13, -88, 29))));
|
|
|
assertEquals(0x0400000020000000L, longEncode(stringEncode(longEncode(13, 89, 1))));
|
|
|
assertEquals(0x0400000020000001L, longEncode(stringEncode(longEncode(13, -89, 1))));
|
|
|
- assertEquals(0x0400000020000000L, longEncode(stringEncode(longEncode(13, 95, 1))));
|
|
|
- assertEquals(0x0400000020000001L, longEncode(stringEncode(longEncode(13, -95, 1))));
|
|
|
+ assertEquals(0x0400000020000000L, longEncode(stringEncode(longEncode(13, normalizeLat(95), 1))));
|
|
|
+ assertEquals(0x0400000020000001L, longEncode(stringEncode(longEncode(13, normalizeLat(-95), 1))));
|
|
|
|
|
|
expectThrows(IllegalArgumentException.class, () -> longEncode("12/asdf/1"));
|
|
|
expectThrows(IllegalArgumentException.class, () -> longEncode("foo"));
|