@@ -12,25 +12,25 @@ SELECT spoint '(0.15,0.10)' @ :poly; -- point inside polygon
1212 t
1313(1 row)
1414
15- SELECT spoint '(0.20,0.00)' @ :poly; -- point contained polygon
15+ SELECT spoint '(0.20,0.00)' @ :poly; -- point contained polygon
1616 ?column?
1717----------
1818 t
1919(1 row)
2020
21- SELECT spoint '(0.10,0.10)' @ :poly; -- point contained polygon
21+ SELECT spoint '(0.10,0.10)' @ :poly; -- point contained polygon
2222 ?column?
2323----------
2424 t
2525(1 row)
2626
27- SELECT spoint '(0.25,0.50)' @ :poly; -- point outside polygon
27+ SELECT spoint '(0.25,0.50)' @ :poly; -- point outside polygon
2828 ?column?
2929----------
3030 f
3131(1 row)
3232
33- SELECT spoint '(0.25,0.00)' @ :poly; -- point outside polygon
33+ SELECT spoint '(0.25,0.00)' @ :poly; -- point outside polygon
3434 ?column?
3535----------
3636 f
@@ -42,13 +42,13 @@ SELECT scircle '<(0.15,0.10),0.03>' @ :poly; -- circle inside polygon
4242 t
4343(1 row)
4444
45- SELECT scircle '<(0.20,0.00),0.00>' @ :poly; -- circle contained polygon
45+ SELECT scircle '<(0.20,0.00),0.00>' @ :poly; -- circle contained polygon
4646 ?column?
4747----------
4848 t
4949(1 row)
5050
51- SELECT scircle '<(0.20,0.30),0.05>' @ :poly; -- circle outside polygon
51+ SELECT scircle '<(0.20,0.30),0.05>' @ :poly; -- circle outside polygon
5252 ?column?
5353----------
5454 f
@@ -72,13 +72,13 @@ SELECT scircle '<(0.15,0.10),0.03>' && :poly; -- circle inside polygon
7272 t
7373(1 row)
7474
75- SELECT scircle '<(0.20,0.00),0.00>' && :poly; -- circle contained polygon
75+ SELECT scircle '<(0.20,0.00),0.00>' && :poly; -- circle contained polygon
7676 ?column?
7777----------
7878 t
7979(1 row)
8080
81- SELECT scircle '<(0.20,0.30),0.05>' && :poly; -- circle outside polygon
81+ SELECT scircle '<(0.20,0.30),0.05>' && :poly; -- circle outside polygon
8282 ?column?
8383----------
8484 f
@@ -96,13 +96,13 @@ SELECT scircle '<(0.25,0.00),0.10>' && :poly; -- circle overlaps polyg
9696 t
9797(1 row)
9898
99- SELECT sline ( spoint '(0.00, 0.00)', spoint '(0.10,0.20)' ) @ :poly; -- line touches polygon
99+ SELECT sline ( spoint '(0.00, 0.00)', spoint '(0.10,0.20)' ) @ :poly; -- line touches polygon
100100 ?column?
101101----------
102102 f
103103(1 row)
104104
105- SELECT sline ( spoint '(0.00, 0.10)', spoint '(0.10,0.10)' ) @ :poly; -- line touches polygon
105+ SELECT sline ( spoint '(0.00, 0.10)', spoint '(0.10,0.10)' ) @ :poly; -- line touches polygon
106106 ?column?
107107----------
108108 f
@@ -114,7 +114,7 @@ SELECT sline ( spoint '(0.50, 0.00)', spoint '(0.50,0.20)' ) @ :poly; -- line
114114 f
115115(1 row)
116116
117- SELECT sline ( spoint '(0.10, 0.20)', spoint '(0.20,0.00)' ) @ :poly; -- line touches and inside polygon
117+ SELECT sline ( spoint '(0.10, 0.20)', spoint '(0.20,0.00)' ) @ :poly; -- line touches and inside polygon
118118 ?column?
119119----------
120120 t
@@ -138,13 +138,13 @@ SELECT sline ( spoint '(0.24, 0.17)', spoint '(0.25,0.14)' ) @ :poly; -- line
138138 t
139139(1 row)
140140
141- SELECT sline ( spoint '(0.00, 0.00)', spoint '(0.10,0.20)' ) && :poly; -- line touches polygon
141+ SELECT sline ( spoint '(0.00, 0.00)', spoint '(0.10,0.20)' ) && :poly; -- line touches polygon
142142 ?column?
143143----------
144144 t
145145(1 row)
146146
147- SELECT sline ( spoint '(0.00, 0.10)', spoint '(0.10,0.10)' ) && :poly; -- line touches polygon
147+ SELECT sline ( spoint '(0.00, 0.10)', spoint '(0.10,0.10)' ) && :poly; -- line touches polygon
148148 ?column?
149149----------
150150 t
@@ -156,7 +156,7 @@ SELECT sline ( spoint '(0.50, 0.00)', spoint '(0.50,0.20)' ) && :poly; -- line
156156 t
157157(1 row)
158158
159- SELECT sline ( spoint '(0.10, 0.20)', spoint '(0.20,0.00)' ) && :poly; -- line touches and inside polygon
159+ SELECT sline ( spoint '(0.10, 0.20)', spoint '(0.20,0.00)' ) && :poly; -- line touches and inside polygon
160160 ?column?
161161----------
162162 t
@@ -342,7 +342,32 @@ SELECT spoly_deg(ARRAY[10.0, 0.0, 10.0, 1.0, 15.0, 0.0]);
342342 {(10d , 0d),(10d , 1d),(15d , 0d)}
343343(1 row)
344344
345- -- incorrect input -----
345+ --- Constructors
346+ SELECT spoly(NULL::spoint[]);
347+ spoly
348+ -------
349+
350+ (1 row)
351+
352+ SELECT spoly(ARRAY[]::spoint[]);
353+ ERROR: spherepoly_from_point_array: invalid number of arguments (must be >= 3)
354+ SELECT spoly(ARRAY[spoint_deg(0, 0)]);
355+ ERROR: spherepoly_from_point_array: invalid number of arguments (must be >= 3)
356+ SELECT spoly(ARRAY[spoint_deg(0, 0), spoint_deg(10, 0)]);
357+ ERROR: spherepoly_from_point_array: invalid number of arguments (must be >= 3)
358+ SELECT spoly(ARRAY[spoint_deg(0, 0), spoint_deg(10, 0), spoint_deg(10, 10)]);
359+ spoly
360+ ------------------------------------
361+ {(0d , 0d),(10d , 0d),(10d , 10d)}
362+ (1 row)
363+
364+ SELECT spoly(ARRAY[spoint_deg(0, 0), spoint_deg(10, 0), spoint_deg(10, 10), spoint_deg(0, 10)]);
365+ spoly
366+ -----------------------------------------------
367+ {(0d , 0d),(10d , 0d),(10d , 10d),(0d , 10d)}
368+ (1 row)
369+
370+ --- incorrect input -----
346371SELECT spoly '{(10d,0d),(10d,1d)}';
347372ERROR: spherepoly_in: more than two points needed
348373LINE 1: SELECT spoly '{(10d,0d),(10d,1d)}';
@@ -1211,7 +1236,7 @@ SELECT spoly '{(0d,-88d),(90d,-88d),(180d,-88d),(270d,-88d)}' @ spoly '{(0d,89d)
12111236(1 row)
12121237
12131238--- spoly ~ spoly
1214- --- should be true
1239+ --- should be true
12151240SELECT spoly '{(-1d,-1d),(-1d,1d),(1d,1d),(1d,-1d)}' ~ spoly '{(0d,0d),(0d,0.5d),(0.5d,0.5d),(0.5d,0d)}';
12161241 ?column?
12171242----------
@@ -1280,7 +1305,7 @@ SELECT spoly '{(0d,89d),(90d,89d),(180d,89d),(270d,89d)}' ~ spoly '{(0d,-88d),(9
12801305(1 row)
12811306
12821307--- spoly && spoly
1283- --- should be true
1308+ --- should be true
12841309SELECT spoly '{(0d,0d),(0d,0.5d),(0.5d,0.5d),(0.5d,0d)}' && spoly '{(-1d,-1d),(-1d,1d),(1d,1d),(1d,-1d)}';
12851310 ?column?
12861311----------
@@ -1417,7 +1442,6 @@ SELECT spoly '{(-1d,-1d),(-1d,1d),(1d,1d),(1d,-1d)}' && spoly '{(179d,-1d),(179d
14171442--
14181443-- ellipse and polygon
14191444--
1420-
14211445-- negators , commutator @,&&
14221446SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' @ sellipse '<{10d,5d},(280d,-20d),90d>';
14231447 ?column?
@@ -1564,49 +1588,49 @@ SELECT sellipse '<{10d,5d},(280d,-20d),90d>' !&& spoly '{(280d,-11d),(280d,-12
15641588(1 row)
15651589
15661590-- ellipse is point
1567- SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' @ sellipse '<{0d,0d},(280d,-20d),90d>';
1591+ SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' @ sellipse '<{0d,0d},(280d,-20d),90d>';
15681592 ?column?
15691593----------
15701594 f
15711595(1 row)
15721596
1573- SELECT spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}' @ sellipse '<{0d,0d},(280d,-20d),90d>';
1597+ SELECT spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}' @ sellipse '<{0d,0d},(280d,-20d),90d>';
15741598 ?column?
15751599----------
15761600 f
15771601(1 row)
15781602
1579- SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' && sellipse '<{0d,0d},(280d,-20d),90d>';
1603+ SELECT spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' && sellipse '<{0d,0d},(280d,-20d),90d>';
15801604 ?column?
15811605----------
15821606 f
15831607(1 row)
15841608
1585- SELECT spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}' && sellipse '<{0d,0d},(280d,-20d),90d>';
1609+ SELECT spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}' && sellipse '<{0d,0d},(280d,-20d),90d>';
15861610 ?column?
15871611----------
15881612 t
15891613(1 row)
15901614
1591- SELECT sellipse '<{0d,0d},(280d,-20d),90d>' @ spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
1615+ SELECT sellipse '<{0d,0d},(280d,-20d),90d>' @ spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
15921616 ?column?
15931617----------
15941618 f
15951619(1 row)
15961620
1597- SELECT sellipse '<{0d,0d},(280d,-20d),90d>' @ spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}';
1621+ SELECT sellipse '<{0d,0d},(280d,-20d),90d>' @ spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}';
15981622 ?column?
15991623----------
16001624 t
16011625(1 row)
16021626
1603- SELECT sellipse '<{0d,0d},(280d,-20d),90d>' && spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
1627+ SELECT sellipse '<{0d,0d},(280d,-20d),90d>' && spoly '{(280d, -9d),(280d, -8d),(279d, -8d)}' ;
16041628 ?column?
16051629----------
16061630 f
16071631(1 row)
16081632
1609- SELECT sellipse '<{0d,0d},(280d,-20d),90d>' && spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}';
1633+ SELECT sellipse '<{0d,0d},(280d,-20d),90d>' && spoly '{(280d,-11d),(280d,-20d),(279d, -12d)}';
16101634 ?column?
16111635----------
16121636 t
0 commit comments