package com.esri.hadoop.hive; import static org.junit.Assert.*; import org.junit.Test; import org.apache.hadoop.io.BytesWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.hive.serde2.io.DoubleWritable; // select ST_GeometryType(ST_Point(0, 0)) from onerow; // select ST_GeometryType(ST_Point('point (10.02 20.01)')) from onerow; // select ST_GeometryType(ST_Point('point z (10.02 20.01 2)')) from onerow; // select ST_GeometryType(ST_MultiPoint('multipoint ((1 2))')) from onerow; // select ST_GeometryType(ST_Linestring(10,10, 20,20)) from onerow; // select ST_GeometryType(ST_Linestring('linestring (10 10, 20 20)')) from onerow; // select ST_GeometryType(ST_Linestring('linestring z (10 10 2, 20 20 4)')) from onerow; // select ST_GeometryType(ST_GeomFromText('polygon ((0 0, 0 10, 10 0, 0 0))')) from onerow; // select ST_GeometryType(ST_Polygon('polygon ((0 0, 0 10, 10 0, 0 0))')) from onerow; // select ST_GeometryType(ST_Polygon(1,1, 1,4, 4,1)) from onerow; // select ST_GeometryType(ST_Polygon(1,1, 4,1, 1,4)) from onerow; // select ST_GeometryType(ST_Polygon(1,1, 1,4, 4,1, 1,1)) from onerow; // select ST_GeometryType(ST_Polygon(1,1, 4,1, 1,4, 1,1)) from onerow; // select ST_GeometryType(ST_GeomFromGeoJson('{"type":"Point", "coordinates":[1.2, 2.4]}')) from onerow; public class TestStGeometryType { @Test public void TestStGeometryType() throws Exception { ST_GeometryType typer = new ST_GeometryType(); ST_Point stPt = new ST_Point(); ST_MultiPoint stMp = new ST_MultiPoint(); ST_LineString stLn = new ST_LineString(); ST_Polygon stPoly = new ST_Polygon(); BytesWritable bwGeom = stPt.evaluate(new DoubleWritable(0), new DoubleWritable(0)); Text gty = typer.evaluate(bwGeom); assertEquals("ST_POINT", gty.toString()); bwGeom = stPt.evaluate(new Text("point z (10.02 20.01 2)")); gty = typer.evaluate(bwGeom); assertEquals("ST_POINT", gty.toString()); bwGeom = stLn.evaluate(new Text("linestring (10 10, 20 20)")); gty = typer.evaluate(bwGeom); assertEquals("ST_LINESTRING", gty.toString()); bwGeom = stPoly.evaluate(new Text("polygon ((0 0, 0 10, 10 0, 0 0))")); gty = typer.evaluate(bwGeom); assertEquals("ST_POLYGON", gty.toString()); } }