diff options
| author | Marc G. Fournier <scrappy@hub.org> | 1997-04-05 11:26:55 +0000 |
|---|---|---|
| committer | Marc G. Fournier <scrappy@hub.org> | 1997-04-05 11:26:55 +0000 |
| commit | 04688df6683f6e7b8d72c3e60eca70b6013046e0 (patch) | |
| tree | 574eb08f1d0f5642ff26700c84f24c7b34ada386 /src/test/regress/sql/polygon.sql | |
| parent | 7956e606d6a6edced76204d7e0bb7d3511aea46c (diff) | |
| download | postgresql-04688df6683f6e7b8d72c3e60eca70b6013046e0.tar.gz | |
Again, add more tests
Diffstat (limited to 'src/test/regress/sql/polygon.sql')
| -rw-r--r-- | src/test/regress/sql/polygon.sql | 117 |
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; + |
