]> granicus.if.org Git - postgis/commitdiff
Addition of regression tests for ST_PixelAsCentroids and
authorBborie Park <bkpark at ucdavis.edu>
Tue, 3 Jul 2012 22:30:20 +0000 (22:30 +0000)
committerBborie Park <bkpark at ucdavis.edu>
Tue, 3 Jul 2012 22:30:20 +0000 (22:30 +0000)
ST_PixelAsPoints

git-svn-id: http://svn.osgeo.org/postgis/trunk@10025 b70326c6-7e19-0410-871a-916f4a2858ee

raster/test/regress/rt_pixelascentroids.sql [new file with mode: 0644]
raster/test/regress/rt_pixelascentroids_expected [new file with mode: 0644]
raster/test/regress/rt_pixelaspoints.sql [new file with mode: 0644]
raster/test/regress/rt_pixelaspoints_expected [new file with mode: 0644]

diff --git a/raster/test/regress/rt_pixelascentroids.sql b/raster/test/regress/rt_pixelascentroids.sql
new file mode 100644 (file)
index 0000000..f550e95
--- /dev/null
@@ -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 (file)
index 0000000..d3aebb9
--- /dev/null
@@ -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 (file)
index 0000000..8a73f80
--- /dev/null
@@ -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 (file)
index 0000000..0695f72
--- /dev/null
@@ -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)