From 9ab911edbd31ee01bdfc62a12677a2cc451b95b3 Mon Sep 17 00:00:00 2001 From: Bborie Park Date: Tue, 3 Jul 2012 22:30:20 +0000 Subject: [PATCH] Addition of regression tests for ST_PixelAsCentroids and ST_PixelAsPoints git-svn-id: http://svn.osgeo.org/postgis/trunk@10025 b70326c6-7e19-0410-871a-916f4a2858ee --- raster/test/regress/rt_pixelascentroids.sql | 68 ++++++ .../test/regress/rt_pixelascentroids_expected | 204 ++++++++++++++++++ raster/test/regress/rt_pixelaspoints.sql | 68 ++++++ raster/test/regress/rt_pixelaspoints_expected | 204 ++++++++++++++++++ 4 files changed, 544 insertions(+) create mode 100644 raster/test/regress/rt_pixelascentroids.sql create mode 100644 raster/test/regress/rt_pixelascentroids_expected create mode 100644 raster/test/regress/rt_pixelaspoints.sql create mode 100644 raster/test/regress/rt_pixelaspoints_expected diff --git a/raster/test/regress/rt_pixelascentroids.sql b/raster/test/regress/rt_pixelascentroids.sql new file mode 100644 index 000000000..f550e95e9 --- /dev/null +++ b/raster/test/regress/rt_pixelascentroids.sql @@ -0,0 +1,68 @@ +DROP TABLE IF EXISTS raster_pixelascentroids; +CREATE TABLE raster_pixelascentroids ( + rast raster +); +CREATE OR REPLACE FUNCTION make_test_raster() + RETURNS void + AS $$ + DECLARE + width int := 10; + height int := 10; + x int; + y int; + rast raster; + BEGIN + rast := ST_MakeEmptyRaster(width, height, 0, 0, 1, -1, 0, 0, 0); + rast := ST_AddBand(rast, 1, '32BUI', 0, 0); + + FOR x IN 1..width LOOP + FOR y IN 1..height LOOP + IF (x + y) % 2 = 1 THEN + rast := ST_SetValue(rast, 1, x, y, x + y); + END IF; + END LOOP; + END LOOP; + + INSERT INTO raster_pixelascentroids VALUES (rast); + + RETURN; + END; + $$ LANGUAGE 'plpgsql'; +SELECT make_test_raster(); +DROP FUNCTION make_test_raster(); + +SELECT + (pix).x, + (pix).y, + ST_Raster2WorldCoordX(rast, (pix).x, (pix).y), + ST_Raster2WorldCoordY(rast, (pix).x, (pix).y), + (pix).val, + ST_AsText((pix).geom) +FROM (SELECT rast, ST_PixelAsCentroids(rast) AS pix FROM raster_pixelascentroids) foo +ORDER BY 1, 2, 3, 4, 6; + +SELECT + (pix).x, + (pix).y, + ST_Raster2WorldCoordX(rast, (pix).x, (pix).y), + ST_Raster2WorldCoordY(rast, (pix).x, (pix).y), + (pix).val, + ST_AsText((pix).geom) +FROM (SELECT rast, ST_PixelAsCentroids(rast, NULL) AS pix FROM raster_pixelascentroids) foo +ORDER BY 1, 2, 3, 4, 6; + +SELECT + (pix).x, + (pix).y, + ST_Raster2WorldCoordX(rast, (pix).x, (pix).y), + ST_Raster2WorldCoordY(rast, (pix).x, (pix).y), + (pix).val, + ST_AsText((pix).geom) +FROM (SELECT rast, ST_PixelAsCentroids(rast, 1, FALSE) AS pix FROM raster_pixelascentroids) foo +ORDER BY 1, 2, 3, 4, 6; + +SELECT ST_AsText(ST_PixelAsCentroid(rast, 1, 1)) FROM raster_pixelascentroids; +SELECT ST_AsText(ST_PixelAsCentroid(rast, 1, 2)) FROM raster_pixelascentroids; +SELECT ST_AsText(ST_PixelAsCentroid(rast, -1, -1)) FROM raster_pixelascentroids; + +DROP TABLE IF EXISTS raster_pixelascentroids; diff --git a/raster/test/regress/rt_pixelascentroids_expected b/raster/test/regress/rt_pixelascentroids_expected new file mode 100644 index 000000000..d3aebb976 --- /dev/null +++ b/raster/test/regress/rt_pixelascentroids_expected @@ -0,0 +1,204 @@ +NOTICE: table "raster_pixelascentroids" does not exist, skipping +1|1|0|0||POINT(0.5 -0.5) +1|2|0|-1|3|POINT(0.5 -1.5) +1|3|0|-2||POINT(0.5 -2.5) +1|4|0|-3|5|POINT(0.5 -3.5) +1|5|0|-4||POINT(0.5 -4.5) +1|6|0|-5|7|POINT(0.5 -5.5) +1|7|0|-6||POINT(0.5 -6.5) +1|8|0|-7|9|POINT(0.5 -7.5) +1|9|0|-8||POINT(0.5 -8.5) +1|10|0|-9|11|POINT(0.5 -9.5) +2|1|1|0|3|POINT(1.5 -0.5) +2|2|1|-1||POINT(1.5 -1.5) +2|3|1|-2|5|POINT(1.5 -2.5) +2|4|1|-3||POINT(1.5 -3.5) +2|5|1|-4|7|POINT(1.5 -4.5) +2|6|1|-5||POINT(1.5 -5.5) +2|7|1|-6|9|POINT(1.5 -6.5) +2|8|1|-7||POINT(1.5 -7.5) +2|9|1|-8|11|POINT(1.5 -8.5) +2|10|1|-9||POINT(1.5 -9.5) +3|1|2|0||POINT(2.5 -0.5) +3|2|2|-1|5|POINT(2.5 -1.5) +3|3|2|-2||POINT(2.5 -2.5) +3|4|2|-3|7|POINT(2.5 -3.5) +3|5|2|-4||POINT(2.5 -4.5) +3|6|2|-5|9|POINT(2.5 -5.5) +3|7|2|-6||POINT(2.5 -6.5) +3|8|2|-7|11|POINT(2.5 -7.5) +3|9|2|-8||POINT(2.5 -8.5) +3|10|2|-9|13|POINT(2.5 -9.5) +4|1|3|0|5|POINT(3.5 -0.5) +4|2|3|-1||POINT(3.5 -1.5) +4|3|3|-2|7|POINT(3.5 -2.5) +4|4|3|-3||POINT(3.5 -3.5) +4|5|3|-4|9|POINT(3.5 -4.5) +4|6|3|-5||POINT(3.5 -5.5) +4|7|3|-6|11|POINT(3.5 -6.5) +4|8|3|-7||POINT(3.5 -7.5) +4|9|3|-8|13|POINT(3.5 -8.5) +4|10|3|-9||POINT(3.5 -9.5) +5|1|4|0||POINT(4.5 -0.5) +5|2|4|-1|7|POINT(4.5 -1.5) +5|3|4|-2||POINT(4.5 -2.5) +5|4|4|-3|9|POINT(4.5 -3.5) +5|5|4|-4||POINT(4.5 -4.5) +5|6|4|-5|11|POINT(4.5 -5.5) +5|7|4|-6||POINT(4.5 -6.5) +5|8|4|-7|13|POINT(4.5 -7.5) +5|9|4|-8||POINT(4.5 -8.5) +5|10|4|-9|15|POINT(4.5 -9.5) +6|1|5|0|7|POINT(5.5 -0.5) +6|2|5|-1||POINT(5.5 -1.5) +6|3|5|-2|9|POINT(5.5 -2.5) +6|4|5|-3||POINT(5.5 -3.5) +6|5|5|-4|11|POINT(5.5 -4.5) +6|6|5|-5||POINT(5.5 -5.5) +6|7|5|-6|13|POINT(5.5 -6.5) +6|8|5|-7||POINT(5.5 -7.5) +6|9|5|-8|15|POINT(5.5 -8.5) +6|10|5|-9||POINT(5.5 -9.5) +7|1|6|0||POINT(6.5 -0.5) +7|2|6|-1|9|POINT(6.5 -1.5) +7|3|6|-2||POINT(6.5 -2.5) +7|4|6|-3|11|POINT(6.5 -3.5) +7|5|6|-4||POINT(6.5 -4.5) +7|6|6|-5|13|POINT(6.5 -5.5) +7|7|6|-6||POINT(6.5 -6.5) +7|8|6|-7|15|POINT(6.5 -7.5) +7|9|6|-8||POINT(6.5 -8.5) +7|10|6|-9|17|POINT(6.5 -9.5) +8|1|7|0|9|POINT(7.5 -0.5) +8|2|7|-1||POINT(7.5 -1.5) +8|3|7|-2|11|POINT(7.5 -2.5) +8|4|7|-3||POINT(7.5 -3.5) +8|5|7|-4|13|POINT(7.5 -4.5) +8|6|7|-5||POINT(7.5 -5.5) +8|7|7|-6|15|POINT(7.5 -6.5) +8|8|7|-7||POINT(7.5 -7.5) +8|9|7|-8|17|POINT(7.5 -8.5) +8|10|7|-9||POINT(7.5 -9.5) +9|1|8|0||POINT(8.5 -0.5) +9|2|8|-1|11|POINT(8.5 -1.5) +9|3|8|-2||POINT(8.5 -2.5) +9|4|8|-3|13|POINT(8.5 -3.5) +9|5|8|-4||POINT(8.5 -4.5) +9|6|8|-5|15|POINT(8.5 -5.5) +9|7|8|-6||POINT(8.5 -6.5) +9|8|8|-7|17|POINT(8.5 -7.5) +9|9|8|-8||POINT(8.5 -8.5) +9|10|8|-9|19|POINT(8.5 -9.5) +10|1|9|0|11|POINT(9.5 -0.5) +10|2|9|-1||POINT(9.5 -1.5) +10|3|9|-2|13|POINT(9.5 -2.5) +10|4|9|-3||POINT(9.5 -3.5) +10|5|9|-4|15|POINT(9.5 -4.5) +10|6|9|-5||POINT(9.5 -5.5) +10|7|9|-6|17|POINT(9.5 -6.5) +10|8|9|-7||POINT(9.5 -7.5) +10|9|9|-8|19|POINT(9.5 -8.5) +10|10|9|-9||POINT(9.5 -9.5) +1|1|0|0|0|POINT(0.5 -0.5) +1|2|0|-1|3|POINT(0.5 -1.5) +1|3|0|-2|0|POINT(0.5 -2.5) +1|4|0|-3|5|POINT(0.5 -3.5) +1|5|0|-4|0|POINT(0.5 -4.5) +1|6|0|-5|7|POINT(0.5 -5.5) +1|7|0|-6|0|POINT(0.5 -6.5) +1|8|0|-7|9|POINT(0.5 -7.5) +1|9|0|-8|0|POINT(0.5 -8.5) +1|10|0|-9|11|POINT(0.5 -9.5) +2|1|1|0|3|POINT(1.5 -0.5) +2|2|1|-1|0|POINT(1.5 -1.5) +2|3|1|-2|5|POINT(1.5 -2.5) +2|4|1|-3|0|POINT(1.5 -3.5) +2|5|1|-4|7|POINT(1.5 -4.5) +2|6|1|-5|0|POINT(1.5 -5.5) +2|7|1|-6|9|POINT(1.5 -6.5) +2|8|1|-7|0|POINT(1.5 -7.5) +2|9|1|-8|11|POINT(1.5 -8.5) +2|10|1|-9|0|POINT(1.5 -9.5) +3|1|2|0|0|POINT(2.5 -0.5) +3|2|2|-1|5|POINT(2.5 -1.5) +3|3|2|-2|0|POINT(2.5 -2.5) +3|4|2|-3|7|POINT(2.5 -3.5) +3|5|2|-4|0|POINT(2.5 -4.5) +3|6|2|-5|9|POINT(2.5 -5.5) +3|7|2|-6|0|POINT(2.5 -6.5) +3|8|2|-7|11|POINT(2.5 -7.5) +3|9|2|-8|0|POINT(2.5 -8.5) +3|10|2|-9|13|POINT(2.5 -9.5) +4|1|3|0|5|POINT(3.5 -0.5) +4|2|3|-1|0|POINT(3.5 -1.5) +4|3|3|-2|7|POINT(3.5 -2.5) +4|4|3|-3|0|POINT(3.5 -3.5) +4|5|3|-4|9|POINT(3.5 -4.5) +4|6|3|-5|0|POINT(3.5 -5.5) +4|7|3|-6|11|POINT(3.5 -6.5) +4|8|3|-7|0|POINT(3.5 -7.5) +4|9|3|-8|13|POINT(3.5 -8.5) +4|10|3|-9|0|POINT(3.5 -9.5) +5|1|4|0|0|POINT(4.5 -0.5) +5|2|4|-1|7|POINT(4.5 -1.5) +5|3|4|-2|0|POINT(4.5 -2.5) +5|4|4|-3|9|POINT(4.5 -3.5) +5|5|4|-4|0|POINT(4.5 -4.5) +5|6|4|-5|11|POINT(4.5 -5.5) +5|7|4|-6|0|POINT(4.5 -6.5) +5|8|4|-7|13|POINT(4.5 -7.5) +5|9|4|-8|0|POINT(4.5 -8.5) +5|10|4|-9|15|POINT(4.5 -9.5) +6|1|5|0|7|POINT(5.5 -0.5) +6|2|5|-1|0|POINT(5.5 -1.5) +6|3|5|-2|9|POINT(5.5 -2.5) +6|4|5|-3|0|POINT(5.5 -3.5) +6|5|5|-4|11|POINT(5.5 -4.5) +6|6|5|-5|0|POINT(5.5 -5.5) +6|7|5|-6|13|POINT(5.5 -6.5) +6|8|5|-7|0|POINT(5.5 -7.5) +6|9|5|-8|15|POINT(5.5 -8.5) +6|10|5|-9|0|POINT(5.5 -9.5) +7|1|6|0|0|POINT(6.5 -0.5) +7|2|6|-1|9|POINT(6.5 -1.5) +7|3|6|-2|0|POINT(6.5 -2.5) +7|4|6|-3|11|POINT(6.5 -3.5) +7|5|6|-4|0|POINT(6.5 -4.5) +7|6|6|-5|13|POINT(6.5 -5.5) +7|7|6|-6|0|POINT(6.5 -6.5) +7|8|6|-7|15|POINT(6.5 -7.5) +7|9|6|-8|0|POINT(6.5 -8.5) +7|10|6|-9|17|POINT(6.5 -9.5) +8|1|7|0|9|POINT(7.5 -0.5) +8|2|7|-1|0|POINT(7.5 -1.5) +8|3|7|-2|11|POINT(7.5 -2.5) +8|4|7|-3|0|POINT(7.5 -3.5) +8|5|7|-4|13|POINT(7.5 -4.5) +8|6|7|-5|0|POINT(7.5 -5.5) +8|7|7|-6|15|POINT(7.5 -6.5) +8|8|7|-7|0|POINT(7.5 -7.5) +8|9|7|-8|17|POINT(7.5 -8.5) +8|10|7|-9|0|POINT(7.5 -9.5) +9|1|8|0|0|POINT(8.5 -0.5) +9|2|8|-1|11|POINT(8.5 -1.5) +9|3|8|-2|0|POINT(8.5 -2.5) +9|4|8|-3|13|POINT(8.5 -3.5) +9|5|8|-4|0|POINT(8.5 -4.5) +9|6|8|-5|15|POINT(8.5 -5.5) +9|7|8|-6|0|POINT(8.5 -6.5) +9|8|8|-7|17|POINT(8.5 -7.5) +9|9|8|-8|0|POINT(8.5 -8.5) +9|10|8|-9|19|POINT(8.5 -9.5) +10|1|9|0|11|POINT(9.5 -0.5) +10|2|9|-1|0|POINT(9.5 -1.5) +10|3|9|-2|13|POINT(9.5 -2.5) +10|4|9|-3|0|POINT(9.5 -3.5) +10|5|9|-4|15|POINT(9.5 -4.5) +10|6|9|-5|0|POINT(9.5 -5.5) +10|7|9|-6|17|POINT(9.5 -6.5) +10|8|9|-7|0|POINT(9.5 -7.5) +10|9|9|-8|19|POINT(9.5 -8.5) +10|10|9|-9|0|POINT(9.5 -9.5) +POINT(0.5 -0.5) +POINT(0.5 -1.5) +POINT(-1.5 1.5) diff --git a/raster/test/regress/rt_pixelaspoints.sql b/raster/test/regress/rt_pixelaspoints.sql new file mode 100644 index 000000000..8a73f8098 --- /dev/null +++ b/raster/test/regress/rt_pixelaspoints.sql @@ -0,0 +1,68 @@ +DROP TABLE IF EXISTS raster_pixelaspoints; +CREATE TABLE raster_pixelaspoints ( + rast raster +); +CREATE OR REPLACE FUNCTION make_test_raster() + RETURNS void + AS $$ + DECLARE + width int := 10; + height int := 10; + x int; + y int; + rast raster; + BEGIN + rast := ST_MakeEmptyRaster(width, height, 0, 0, 1, -1, 0, 0, 0); + rast := ST_AddBand(rast, 1, '32BUI', 0, 0); + + FOR x IN 1..width LOOP + FOR y IN 1..height LOOP + IF (x + y) % 2 = 1 THEN + rast := ST_SetValue(rast, 1, x, y, x + y); + END IF; + END LOOP; + END LOOP; + + INSERT INTO raster_pixelaspoints VALUES (rast); + + RETURN; + END; + $$ LANGUAGE 'plpgsql'; +SELECT make_test_raster(); +DROP FUNCTION make_test_raster(); + +SELECT + (pix).x, + (pix).y, + ST_Raster2WorldCoordX(rast, (pix).x, (pix).y), + ST_Raster2WorldCoordY(rast, (pix).x, (pix).y), + (pix).val, + ST_AsText((pix).geom) +FROM (SELECT rast, ST_PixelAsPoints(rast) AS pix FROM raster_pixelaspoints) foo +ORDER BY 1, 2, 3, 4, 6; + +SELECT + (pix).x, + (pix).y, + ST_Raster2WorldCoordX(rast, (pix).x, (pix).y), + ST_Raster2WorldCoordY(rast, (pix).x, (pix).y), + (pix).val, + ST_AsText((pix).geom) +FROM (SELECT rast, ST_PixelAsPoints(rast, NULL) AS pix FROM raster_pixelaspoints) foo +ORDER BY 1, 2, 3, 4, 6; + +SELECT + (pix).x, + (pix).y, + ST_Raster2WorldCoordX(rast, (pix).x, (pix).y), + ST_Raster2WorldCoordY(rast, (pix).x, (pix).y), + (pix).val, + ST_AsText((pix).geom) +FROM (SELECT rast, ST_PixelAsPoints(rast, 1, FALSE) AS pix FROM raster_pixelaspoints) foo +ORDER BY 1, 2, 3, 4, 6; + +SELECT ST_AsText(ST_PixelAsPoint(rast, 1, 1)) FROM raster_pixelaspoints; +SELECT ST_AsText(ST_PixelAsPoint(rast, 1, 2)) FROM raster_pixelaspoints; +SELECT ST_AsText(ST_PixelAsPoint(rast, -1, -1)) FROM raster_pixelaspoints; + +DROP TABLE IF EXISTS raster_pixelaspoints; diff --git a/raster/test/regress/rt_pixelaspoints_expected b/raster/test/regress/rt_pixelaspoints_expected new file mode 100644 index 000000000..0695f72ec --- /dev/null +++ b/raster/test/regress/rt_pixelaspoints_expected @@ -0,0 +1,204 @@ +NOTICE: table "raster_pixelaspoints" does not exist, skipping +1|1|0|0||POINT(0 0) +1|2|0|-1|3|POINT(0 -1) +1|3|0|-2||POINT(0 -2) +1|4|0|-3|5|POINT(0 -3) +1|5|0|-4||POINT(0 -4) +1|6|0|-5|7|POINT(0 -5) +1|7|0|-6||POINT(0 -6) +1|8|0|-7|9|POINT(0 -7) +1|9|0|-8||POINT(0 -8) +1|10|0|-9|11|POINT(0 -9) +2|1|1|0|3|POINT(1 0) +2|2|1|-1||POINT(1 -1) +2|3|1|-2|5|POINT(1 -2) +2|4|1|-3||POINT(1 -3) +2|5|1|-4|7|POINT(1 -4) +2|6|1|-5||POINT(1 -5) +2|7|1|-6|9|POINT(1 -6) +2|8|1|-7||POINT(1 -7) +2|9|1|-8|11|POINT(1 -8) +2|10|1|-9||POINT(1 -9) +3|1|2|0||POINT(2 0) +3|2|2|-1|5|POINT(2 -1) +3|3|2|-2||POINT(2 -2) +3|4|2|-3|7|POINT(2 -3) +3|5|2|-4||POINT(2 -4) +3|6|2|-5|9|POINT(2 -5) +3|7|2|-6||POINT(2 -6) +3|8|2|-7|11|POINT(2 -7) +3|9|2|-8||POINT(2 -8) +3|10|2|-9|13|POINT(2 -9) +4|1|3|0|5|POINT(3 0) +4|2|3|-1||POINT(3 -1) +4|3|3|-2|7|POINT(3 -2) +4|4|3|-3||POINT(3 -3) +4|5|3|-4|9|POINT(3 -4) +4|6|3|-5||POINT(3 -5) +4|7|3|-6|11|POINT(3 -6) +4|8|3|-7||POINT(3 -7) +4|9|3|-8|13|POINT(3 -8) +4|10|3|-9||POINT(3 -9) +5|1|4|0||POINT(4 0) +5|2|4|-1|7|POINT(4 -1) +5|3|4|-2||POINT(4 -2) +5|4|4|-3|9|POINT(4 -3) +5|5|4|-4||POINT(4 -4) +5|6|4|-5|11|POINT(4 -5) +5|7|4|-6||POINT(4 -6) +5|8|4|-7|13|POINT(4 -7) +5|9|4|-8||POINT(4 -8) +5|10|4|-9|15|POINT(4 -9) +6|1|5|0|7|POINT(5 0) +6|2|5|-1||POINT(5 -1) +6|3|5|-2|9|POINT(5 -2) +6|4|5|-3||POINT(5 -3) +6|5|5|-4|11|POINT(5 -4) +6|6|5|-5||POINT(5 -5) +6|7|5|-6|13|POINT(5 -6) +6|8|5|-7||POINT(5 -7) +6|9|5|-8|15|POINT(5 -8) +6|10|5|-9||POINT(5 -9) +7|1|6|0||POINT(6 0) +7|2|6|-1|9|POINT(6 -1) +7|3|6|-2||POINT(6 -2) +7|4|6|-3|11|POINT(6 -3) +7|5|6|-4||POINT(6 -4) +7|6|6|-5|13|POINT(6 -5) +7|7|6|-6||POINT(6 -6) +7|8|6|-7|15|POINT(6 -7) +7|9|6|-8||POINT(6 -8) +7|10|6|-9|17|POINT(6 -9) +8|1|7|0|9|POINT(7 0) +8|2|7|-1||POINT(7 -1) +8|3|7|-2|11|POINT(7 -2) +8|4|7|-3||POINT(7 -3) +8|5|7|-4|13|POINT(7 -4) +8|6|7|-5||POINT(7 -5) +8|7|7|-6|15|POINT(7 -6) +8|8|7|-7||POINT(7 -7) +8|9|7|-8|17|POINT(7 -8) +8|10|7|-9||POINT(7 -9) +9|1|8|0||POINT(8 0) +9|2|8|-1|11|POINT(8 -1) +9|3|8|-2||POINT(8 -2) +9|4|8|-3|13|POINT(8 -3) +9|5|8|-4||POINT(8 -4) +9|6|8|-5|15|POINT(8 -5) +9|7|8|-6||POINT(8 -6) +9|8|8|-7|17|POINT(8 -7) +9|9|8|-8||POINT(8 -8) +9|10|8|-9|19|POINT(8 -9) +10|1|9|0|11|POINT(9 0) +10|2|9|-1||POINT(9 -1) +10|3|9|-2|13|POINT(9 -2) +10|4|9|-3||POINT(9 -3) +10|5|9|-4|15|POINT(9 -4) +10|6|9|-5||POINT(9 -5) +10|7|9|-6|17|POINT(9 -6) +10|8|9|-7||POINT(9 -7) +10|9|9|-8|19|POINT(9 -8) +10|10|9|-9||POINT(9 -9) +1|1|0|0|0|POINT(0 0) +1|2|0|-1|3|POINT(0 -1) +1|3|0|-2|0|POINT(0 -2) +1|4|0|-3|5|POINT(0 -3) +1|5|0|-4|0|POINT(0 -4) +1|6|0|-5|7|POINT(0 -5) +1|7|0|-6|0|POINT(0 -6) +1|8|0|-7|9|POINT(0 -7) +1|9|0|-8|0|POINT(0 -8) +1|10|0|-9|11|POINT(0 -9) +2|1|1|0|3|POINT(1 0) +2|2|1|-1|0|POINT(1 -1) +2|3|1|-2|5|POINT(1 -2) +2|4|1|-3|0|POINT(1 -3) +2|5|1|-4|7|POINT(1 -4) +2|6|1|-5|0|POINT(1 -5) +2|7|1|-6|9|POINT(1 -6) +2|8|1|-7|0|POINT(1 -7) +2|9|1|-8|11|POINT(1 -8) +2|10|1|-9|0|POINT(1 -9) +3|1|2|0|0|POINT(2 0) +3|2|2|-1|5|POINT(2 -1) +3|3|2|-2|0|POINT(2 -2) +3|4|2|-3|7|POINT(2 -3) +3|5|2|-4|0|POINT(2 -4) +3|6|2|-5|9|POINT(2 -5) +3|7|2|-6|0|POINT(2 -6) +3|8|2|-7|11|POINT(2 -7) +3|9|2|-8|0|POINT(2 -8) +3|10|2|-9|13|POINT(2 -9) +4|1|3|0|5|POINT(3 0) +4|2|3|-1|0|POINT(3 -1) +4|3|3|-2|7|POINT(3 -2) +4|4|3|-3|0|POINT(3 -3) +4|5|3|-4|9|POINT(3 -4) +4|6|3|-5|0|POINT(3 -5) +4|7|3|-6|11|POINT(3 -6) +4|8|3|-7|0|POINT(3 -7) +4|9|3|-8|13|POINT(3 -8) +4|10|3|-9|0|POINT(3 -9) +5|1|4|0|0|POINT(4 0) +5|2|4|-1|7|POINT(4 -1) +5|3|4|-2|0|POINT(4 -2) +5|4|4|-3|9|POINT(4 -3) +5|5|4|-4|0|POINT(4 -4) +5|6|4|-5|11|POINT(4 -5) +5|7|4|-6|0|POINT(4 -6) +5|8|4|-7|13|POINT(4 -7) +5|9|4|-8|0|POINT(4 -8) +5|10|4|-9|15|POINT(4 -9) +6|1|5|0|7|POINT(5 0) +6|2|5|-1|0|POINT(5 -1) +6|3|5|-2|9|POINT(5 -2) +6|4|5|-3|0|POINT(5 -3) +6|5|5|-4|11|POINT(5 -4) +6|6|5|-5|0|POINT(5 -5) +6|7|5|-6|13|POINT(5 -6) +6|8|5|-7|0|POINT(5 -7) +6|9|5|-8|15|POINT(5 -8) +6|10|5|-9|0|POINT(5 -9) +7|1|6|0|0|POINT(6 0) +7|2|6|-1|9|POINT(6 -1) +7|3|6|-2|0|POINT(6 -2) +7|4|6|-3|11|POINT(6 -3) +7|5|6|-4|0|POINT(6 -4) +7|6|6|-5|13|POINT(6 -5) +7|7|6|-6|0|POINT(6 -6) +7|8|6|-7|15|POINT(6 -7) +7|9|6|-8|0|POINT(6 -8) +7|10|6|-9|17|POINT(6 -9) +8|1|7|0|9|POINT(7 0) +8|2|7|-1|0|POINT(7 -1) +8|3|7|-2|11|POINT(7 -2) +8|4|7|-3|0|POINT(7 -3) +8|5|7|-4|13|POINT(7 -4) +8|6|7|-5|0|POINT(7 -5) +8|7|7|-6|15|POINT(7 -6) +8|8|7|-7|0|POINT(7 -7) +8|9|7|-8|17|POINT(7 -8) +8|10|7|-9|0|POINT(7 -9) +9|1|8|0|0|POINT(8 0) +9|2|8|-1|11|POINT(8 -1) +9|3|8|-2|0|POINT(8 -2) +9|4|8|-3|13|POINT(8 -3) +9|5|8|-4|0|POINT(8 -4) +9|6|8|-5|15|POINT(8 -5) +9|7|8|-6|0|POINT(8 -6) +9|8|8|-7|17|POINT(8 -7) +9|9|8|-8|0|POINT(8 -8) +9|10|8|-9|19|POINT(8 -9) +10|1|9|0|11|POINT(9 0) +10|2|9|-1|0|POINT(9 -1) +10|3|9|-2|13|POINT(9 -2) +10|4|9|-3|0|POINT(9 -3) +10|5|9|-4|15|POINT(9 -4) +10|6|9|-5|0|POINT(9 -5) +10|7|9|-6|17|POINT(9 -6) +10|8|9|-7|0|POINT(9 -7) +10|9|9|-8|19|POINT(9 -8) +10|10|9|-9|0|POINT(9 -9) +POINT(0 0) +POINT(0 -1) +POINT(-2 2) -- 2.50.1