summaryrefslogtreecommitdiff
path: root/src/test/regress/sql/polygon.sql
diff options
context:
space:
mode:
authorMarc G. Fournier <scrappy@hub.org>1997-04-05 11:26:55 +0000
committerMarc G. Fournier <scrappy@hub.org>1997-04-05 11:26:55 +0000
commit04688df6683f6e7b8d72c3e60eca70b6013046e0 (patch)
tree574eb08f1d0f5642ff26700c84f24c7b34ada386 /src/test/regress/sql/polygon.sql
parent7956e606d6a6edced76204d7e0bb7d3511aea46c (diff)
downloadpostgresql-04688df6683f6e7b8d72c3e60eca70b6013046e0.tar.gz
Again, add more tests
Diffstat (limited to 'src/test/regress/sql/polygon.sql')
-rw-r--r--src/test/regress/sql/polygon.sql117
1 files changed, 117 insertions, 0 deletions
diff --git a/src/test/regress/sql/polygon.sql b/src/test/regress/sql/polygon.sql
new file mode 100644
index 0000000000..f8928545a2
--- /dev/null
+++ b/src/test/regress/sql/polygon.sql
@@ -0,0 +1,117 @@
+-- *************testing built-in type polygon ****************
+--
+-- polygon logic
+--
+-- 3 o
+-- |
+-- 2 + |
+-- / |
+-- 1 # o +
+-- / |
+-- 0 #-----o-+
+--
+-- 0 1 2 3 4
+--
+
+CREATE TABLE POLYGON_TBL(f1 polygon);
+
+
+INSERT INTO POLYGON_TBL(f1) VALUES ('(2.0,2.0,0.0,0.0,4.0,0.0)');
+
+INSERT INTO POLYGON_TBL(f1) VALUES ('(3.0,3.0,1.0,1.0,3.0,0.0)');
+
+-- degenerate polygons
+INSERT INTO POLYGON_TBL(f1) VALUES ('(0.0,0.0)');
+
+INSERT INTO POLYGON_TBL(f1) VALUES ('(0.0,0.0,1.0,1.0)');
+-- bad polygon input strings
+INSERT INTO POLYGON_TBL(f1) VALUES ('0.0');
+
+INSERT INTO POLYGON_TBL(f1) VALUES ('(0.0 0.0');
+
+INSERT INTO POLYGON_TBL(f1) VALUES ('(0,1,2)');
+
+INSERT INTO POLYGON_TBL(f1) VALUES ('(0,1,2,3');
+
+INSERT INTO POLYGON_TBL(f1) VALUES ('asdf');
+
+
+SELECT '' AS four, POLYGON_TBL.*;
+
+-- overlap
+SELECT '' AS three, p.*
+ FROM POLYGON_TBL p
+ WHERE p.f1 && '(3.0,3.0,1.0,1.0,3.0,0.0)';
+
+-- left overlap
+SELECT '' AS four, p.*
+ FROM POLYGON_TBL p
+ WHERE p.f1 &< '(3.0,3.0,1.0,1.0,3.0,0.0)';
+
+-- right overlap
+SELECT '' AS two, p.*
+ FROM POLYGON_TBL p
+ WHERE p.f1 &> '(3.0,3.0,1.0,1.0,3.0,0.0)';
+
+-- left of
+SELECT '' AS one, p.*
+ FROM POLYGON_TBL p
+ WHERE p.f1 << '(3.0,3.0,1.0,1.0,3.0,0.0)';
+
+-- right of
+SELECT '' AS zero, p.*
+ FROM POLYGON_TBL p
+ WHERE p.f1 >> '(3.0,3.0,1.0,1.0,3.0,0.0)';
+
+-- contained
+SELECT '' AS one, p.*
+ FROM POLYGON_TBL p
+ WHERE p.f1 @ '(3.0,3.0,1.0,1.0,3.0,0.0)';
+
+-- same
+SELECT '' AS one, p.*
+ FROM POLYGON_TBL p
+ WHERE p.f1 ~= '(3.0,3.0,1.0,1.0,3.0,0.0)';
+
+-- contains
+SELECT '' AS one, p.*
+ FROM POLYGON_TBL p
+ WHERE p.f1 ~ '(3.0,3.0,1.0,1.0,3.0,0.0)';
+
+--
+-- polygon logic
+--
+-- 3 o
+-- |
+-- 2 + |
+-- / |
+-- 1 / o +
+-- / |
+-- 0 +-----o-+
+--
+-- 0 1 2 3 4
+--
+-- left of
+SELECT '(2.0,2.0,0.0,0.0,4.0,0.0)'::polygon << '(3.0,3.0,1.0,1.0,3.0,0.0)'::polygon AS false;
+
+-- left overlap
+SELECT '(2.0,2.0,0.0,0.0,4.0,0.0)'::polygon &< '(3.0,3.0,1.0,1.0,3.0,0.0)'::polygon AS true;
+
+-- right overlap
+SELECT '(2.0,2.0,0.0,0.0,4.0,0.0)'::polygon &> '(3.0,3.0,1.0,1.0,3.0,0.0)'::polygon AS true;
+
+-- right of
+SELECT '(2.0,2.0,0.0,0.0,4.0,0.0)'::polygon >> '(3.0,3.0,1.0,1.0,3.0,0.0)'::polygon AS false;
+
+-- contained in
+SELECT '(2.0,2.0,0.0,0.0,4.0,0.0)'::polygon @ '(3.0,3.0,1.0,1.0,3.0,0.0)'::polygon AS false;
+
+-- contains
+SELECT '(2.0,2.0,0.0,0.0,4.0,0.0)'::polygon ~ '(3.0,3.0,1.0,1.0,3.0,0.0)'::polygon AS false;
+
+-- same
+SELECT '(2.0,2.0,0.0,0.0,4.0,0.0)'::polygon ~= '(3.0,3.0,1.0,1.0,3.0,0.0)'::polygon AS false;
+
+-- overlap
+SELECT '(2.0,2.0,0.0,0.0,4.0,0.0)'::polygon && '(3.0,3.0,1.0,1.0,3.0,0.0)'::polygon AS true;
+