1\set ECHO none
2 set_sphere_output_precision
3-----------------------------
4 SET 8
5(1 row)
6
7--
8-- sbox and spoint
9--
10SELECT spoint '(0d,90d)' @ sbox '((0d,80d),(360d,90d))' ;
11 ?column?
12----------
13 t
14(1 row)
15
16SELECT sbox '((309d,309d),(313d,313d))' ~ spoint '(310d,310d)' ;
17 ?column?
18----------
19 t
20(1 row)
21
22SELECT spoint '(310d,310d)' @ sbox '((309d,309d),(313d,313d))' ;
23 ?column?
24----------
25 t
26(1 row)
27
28SELECT sbox '((309d,309d),(313d,313d))' ~ spoint '(10d,10d)' ;
29 ?column?
30----------
31 f
32(1 row)
33
34SELECT spoint '(10d,10d)' @ sbox '((309d,309d),(313d,313d))' ;
35 ?column?
36----------
37 f
38(1 row)
39
40SELECT sbox '((309d,309d),(313d,313d))' !~ spoint '(310d,310d)' ;
41 ?column?
42----------
43 f
44(1 row)
45
46SELECT spoint '(310d,310d)' !@ sbox '((309d,309d),(313d,313d))' ;
47 ?column?
48----------
49 f
50(1 row)
51
52SELECT sbox '((309d,309d),(313d,313d))' !~ spoint '(10d,10d)' ;
53 ?column?
54----------
55 t
56(1 row)
57
58SELECT spoint '(10d,10d)' !@ sbox '((309d,309d),(313d,313d))' ;
59 ?column?
60----------
61 t
62(1 row)
63
64SELECT sbox '((10d,10d),(20d,20d))' ~ spoint '(10d,10d)';
65 ?column?
66----------
67 t
68(1 row)
69
70SELECT sbox '((10d,10d),(20d,20d))' ~ spoint '(10d,20d)';
71 ?column?
72----------
73 t
74(1 row)
75
76SELECT sbox '((10d,10d),(20d,20d))' ~ spoint '(20d,10d)';
77 ?column?
78----------
79 t
80(1 row)
81
82SELECT sbox '((10d,10d),(20d,20d))' ~ spoint '(20d,20d)';
83 ?column?
84----------
85 t
86(1 row)
87
88SELECT sbox '((310d,10d),(320d,20d))' ~ spoint '(310d,10d)';
89 ?column?
90----------
91 t
92(1 row)
93
94SELECT sbox '((310d,10d),(320d,20d))' ~ spoint '(310d,20d)';
95 ?column?
96----------
97 t
98(1 row)
99
100SELECT sbox '((310d,10d),(320d,20d))' ~ spoint '(320d,10d)';
101 ?column?
102----------
103 t
104(1 row)
105
106SELECT sbox '((310d,10d),(320d,20d))' ~ spoint '(320d,20d)';
107 ?column?
108----------
109 t
110(1 row)
111
112SELECT sbox '((310d,10d),(320d,20d))' ~ spoint '(310d,15d)';
113 ?column?
114----------
115 t
116(1 row)
117
118SELECT sbox '((310d,10d),(320d,20d))' ~ spoint '(315d,20d)';
119 ?column?
120----------
121 t
122(1 row)
123
124SELECT sbox '((310d,10d),(320d,20d))' ~ spoint '(315d,10d)';
125 ?column?
126----------
127 t
128(1 row)
129
130SELECT sbox '((310d,10d),(320d,20d))' ~ spoint '(320d,15d)';
131 ?column?
132----------
133 t
134(1 row)
135
136SELECT spoint '(320d, 15d)' @ sbox '((310d,10d),(320d,20d))' ;
137 ?column?
138----------
139 t
140(1 row)
141
142SELECT spoint '(140d,-15d)' @ sbox '((310d,10d),(320d,20d))' ;
143 ?column?
144----------
145 f
146(1 row)
147
148SELECT sbox '((310d,10d),(20d,20d))' ~ spoint '(300d,10d)';
149 ?column?
150----------
151 f
152(1 row)
153
154SELECT sbox '((310d,10d),(20d,20d))' ~ spoint '(300d,15d)';
155 ?column?
156----------
157 f
158(1 row)
159
160SELECT sbox '((310d,10d),(20d,20d))' ~ spoint '(300d,20d)';
161 ?column?
162----------
163 f
164(1 row)
165
166SELECT sbox '((310d,10d),(20d,20d))' ~ spoint '(330d,10d)';
167 ?column?
168----------
169 t
170(1 row)
171
172SELECT sbox '((310d,10d),(20d,20d))' ~ spoint '(330d,15d)';
173 ?column?
174----------
175 t
176(1 row)
177
178SELECT sbox '((310d,10d),(20d,20d))' ~ spoint '(330d,20d)';
179 ?column?
180----------
181 t
182(1 row)
183
184SELECT sbox '((310d,10d),(20d,20d))' ~ spoint '(0d,10d)';
185 ?column?
186----------
187 t
188(1 row)
189
190SELECT sbox '((310d,10d),(20d,20d))' ~ spoint '(0d,15d)';
191 ?column?
192----------
193 t
194(1 row)
195
196SELECT sbox '((310d,10d),(20d,20d))' ~ spoint '(0d,20d)';
197 ?column?
198----------
199 t
200(1 row)
201
202SELECT sbox '((310d,10d),(20d,20d))' ~ spoint '(10d,10d)';
203 ?column?
204----------
205 t
206(1 row)
207
208SELECT sbox '((310d,10d),(20d,20d))' ~ spoint '(10d,15d)';
209 ?column?
210----------
211 t
212(1 row)
213
214SELECT sbox '((310d,10d),(20d,20d))' ~ spoint '(10d,20d)';
215 ?column?
216----------
217 t
218(1 row)
219
220SELECT sbox '((310d,10d),(20d,20d))' ~ spoint '(30d,10d)';
221 ?column?
222----------
223 f
224(1 row)
225
226SELECT sbox '((310d,10d),(20d,20d))' ~ spoint '(30d,15d)';
227 ?column?
228----------
229 f
230(1 row)
231
232SELECT sbox '((310d,10d),(20d,20d))' ~ spoint '(30d,20d)';
233 ?column?
234----------
235 f
236(1 row)
237
238SELECT sbox '((310d,10d),(20d,20d))' ~ spoint '(180d,10d)';
239 ?column?
240----------
241 f
242(1 row)
243
244SELECT sbox '((310d,10d),(20d,20d))' ~ spoint '(180d,15d)';
245 ?column?
246----------
247 f
248(1 row)
249
250SELECT sbox '((310d,10d),(20d,20d))' ~ spoint '(180d,20d)';
251 ?column?
252----------
253 f
254(1 row)
255
256SELECT sbox '((310d,-90d),(20d,-80d))' ~ spoint '(300d,10d)';
257 ?column?
258----------
259 f
260(1 row)
261
262SELECT sbox '((310d,-90d),(20d,-80d))' ~ spoint '(320d,-80d)';
263 ?column?
264----------
265 t
266(1 row)
267
268SELECT sbox '((310d,-90d),(20d,-80d))' ~ spoint '(320d,-85d)';
269 ?column?
270----------
271 t
272(1 row)
273
274SELECT sbox '((310d,-90d),(20d,-80d))' ~ spoint '(320d,-90d)';
275 ?column?
276----------
277 t
278(1 row)
279
280SELECT sbox '((310d,-90d),(20d,-80d))' ~ spoint '(180d,-90d)';
281 ?column?
282----------
283 t
284(1 row)
285
286SELECT sbox '((310d,-90d),(20d,-80d))' ~ spoint '(180d,-89.99d)';
287 ?column?
288----------
289 f
290(1 row)
291
292SELECT sbox '((310d,80d),(20d,90d))' ~ spoint '(300d,10d)';
293 ?column?
294----------
295 f
296(1 row)
297
298SELECT sbox '((310d,80d),(20d,90d))' ~ spoint '(320d,80d)';
299 ?column?
300----------
301 t
302(1 row)
303
304SELECT sbox '((310d,80d),(20d,90d))' ~ spoint '(320d,85d)';
305 ?column?
306----------
307 t
308(1 row)
309
310SELECT sbox '((310d,80d),(20d,90d))' ~ spoint '(320d,90d)';
311 ?column?
312----------
313 t
314(1 row)
315
316SELECT sbox '((310d,80d),(20d,90d))' ~ spoint '(180d,90d)';
317 ?column?
318----------
319 t
320(1 row)
321
322SELECT sbox '((310d,80d),(20d,90d))' ~ spoint '(180d,89.99d)';
323 ?column?
324----------
325 f
326(1 row)
327
328SELECT sbox '((0d,-90d),(360d,-80d))' ~ spoint '(300d,10d)';
329 ?column?
330----------
331 f
332(1 row)
333
334SELECT sbox '((0d,-90d),(360d,-80d))' ~ spoint '(320d,-80d)';
335 ?column?
336----------
337 t
338(1 row)
339
340SELECT sbox '((0d,-90d),(360d,-80d))' ~ spoint '(320d,-85d)';
341 ?column?
342----------
343 t
344(1 row)
345
346SELECT sbox '((0d,-90d),(360d,-80d))' ~ spoint '(320d,-90d)';
347 ?column?
348----------
349 t
350(1 row)
351
352SELECT sbox '((0d,-90d),(360d,-80d))' ~ spoint '(180d,-90d)';
353 ?column?
354----------
355 t
356(1 row)
357
358SELECT sbox '((0d,-90d),(360d,-80d))' ~ spoint '(180d,-89.99d)';
359 ?column?
360----------
361 t
362(1 row)
363
364SELECT sbox '((0d,80d),(360d,90d))' ~ spoint '(300d,10d)';
365 ?column?
366----------
367 f
368(1 row)
369
370SELECT sbox '((0d,80d),(360d,90d))' ~ spoint '(320d,80d)';
371 ?column?
372----------
373 t
374(1 row)
375
376SELECT sbox '((0d,80d),(360d,90d))' ~ spoint '(320d,85d)';
377 ?column?
378----------
379 t
380(1 row)
381
382SELECT sbox '((0d,80d),(360d,90d))' ~ spoint '(320d,90d)';
383 ?column?
384----------
385 t
386(1 row)
387
388SELECT sbox '((0d,80d),(360d,90d))' ~ spoint '(180d,90d)';
389 ?column?
390----------
391 t
392(1 row)
393
394SELECT sbox '((0d,80d),(360d,90d))' ~ spoint '(180d,89.99d)';
395 ?column?
396----------
397 t
398(1 row)
399
400SELECT sbox '((0d,-10d),(360d,20d))' ~ spoint '(270d,-11d)';
401 ?column?
402----------
403 f
404(1 row)
405
406SELECT sbox '((0d,-10d),(360d,20d))' ~ spoint '(270d,-10d)';
407 ?column?
408----------
409 t
410(1 row)
411
412SELECT sbox '((0d,-10d),(360d,20d))' ~ spoint '(270d, -5d)';
413 ?column?
414----------
415 t
416(1 row)
417
418SELECT sbox '((0d,-10d),(360d,20d))' ~ spoint '(270d,  0d)';
419 ?column?
420----------
421 t
422(1 row)
423
424SELECT sbox '((0d,-10d),(360d,20d))' ~ spoint '(270d,  5d)';
425 ?column?
426----------
427 t
428(1 row)
429
430SELECT sbox '((0d,-10d),(360d,20d))' ~ spoint '(270d, 20d)';
431 ?column?
432----------
433 t
434(1 row)
435
436SELECT sbox '((0d,-10d),(360d,20d))' ~ spoint '(270d, 21d)';
437 ?column?
438----------
439 f
440(1 row)
441
442SELECT spoint '(320d, 15d)' !@ sbox '((310d,10d),(320d,20d))' ;
443 ?column?
444----------
445 f
446(1 row)
447
448SELECT spoint '(140d,-15d)' !@ sbox '((310d,10d),(320d,20d))' ;
449 ?column?
450----------
451 t
452(1 row)
453
454SELECT sbox '((10d,10d),(20d,20d))' !~ spoint '(10d,10d)';
455 ?column?
456----------
457 f
458(1 row)
459
460SELECT sbox '((270d,-10d),(300d,20d))' !~ spoint '(10d,10d)';
461 ?column?
462----------
463 t
464(1 row)
465
466--
467-- sbox (as point)  and spoint
468--
469SELECT sbox '((310d,310d),(310d,310d))' ~ spoint '(310d,310d)' ;
470 ?column?
471----------
472 t
473(1 row)
474
475SELECT spoint '(310d,310d)' @ sbox '((310d,310d),(310d,310d))' ;
476 ?column?
477----------
478 t
479(1 row)
480
481SELECT sbox '((310d,310d),(310d,310d))' ~ spoint '(10d,10d)' ;
482 ?column?
483----------
484 f
485(1 row)
486
487SELECT spoint '(11d,11d)' @ sbox '((310d,310d),(310d,310d))' ;
488 ?column?
489----------
490 f
491(1 row)
492
493--
494-- sbox and circle
495--
496-- Check negators / commutators
497SELECT scircle '<(0d, 70d),1d>' && sbox '((-10d, 60d),(10d, 80d))';
498 ?column?
499----------
500 t
501(1 row)
502
503SELECT sbox '((-10d, 60d),(10d, 80d))' && scircle '<(0d, 70d),1d>';
504 ?column?
505----------
506 t
507(1 row)
508
509SELECT scircle '<(0d, 70d),1d>' !&& sbox '((-10d, 60d),(10d, 80d))';
510 ?column?
511----------
512 f
513(1 row)
514
515SELECT sbox '((-10d, 60d),(10d, 80d))' !&& scircle '<(0d, 70d),1d>';
516 ?column?
517----------
518 f
519(1 row)
520
521SELECT scircle '<(0d, 50d),1d>' && sbox '((-10d, 60d),(10d, 80d))';
522 ?column?
523----------
524 f
525(1 row)
526
527SELECT sbox '((-10d, 60d),(10d, 80d))' && scircle '<(0d, 50d),1d>';
528 ?column?
529----------
530 f
531(1 row)
532
533SELECT scircle '<(0d, 50d),1d>' !&& sbox '((-10d, 60d),(10d, 80d))';
534 ?column?
535----------
536 t
537(1 row)
538
539SELECT sbox '((-10d, 60d),(10d, 80d))' !&& scircle '<(0d, 50d),1d>';
540 ?column?
541----------
542 t
543(1 row)
544
545SELECT scircle '<(0d, 70d),1d>' @ sbox '((-10d, 60d),(10d, 80d))';
546 ?column?
547----------
548 t
549(1 row)
550
551SELECT sbox '((-10d, 60d),(10d, 80d))' @ scircle '<(0d, 70d),1d>';
552 ?column?
553----------
554 f
555(1 row)
556
557SELECT scircle '<(0d, 70d),1d>' !@ sbox '((-10d, 60d),(10d, 80d))';
558 ?column?
559----------
560 f
561(1 row)
562
563SELECT sbox '((-10d, 60d),(10d, 80d))' !@ scircle '<(0d, 70d),1d>';
564 ?column?
565----------
566 t
567(1 row)
568
569SELECT scircle '<(0d, 50d),1d>' @ sbox '((-10d, 60d),(10d, 80d))';
570 ?column?
571----------
572 f
573(1 row)
574
575SELECT sbox '((-10d, 60d),(10d, 80d))' @ scircle '<(0d, 50d),1d>';
576 ?column?
577----------
578 f
579(1 row)
580
581SELECT scircle '<(0d, 50d),1d>' !@ sbox '((-10d, 60d),(10d, 80d))';
582 ?column?
583----------
584 t
585(1 row)
586
587SELECT sbox '((-10d, 60d),(10d, 80d))' !@ scircle '<(0d, 50d),1d>';
588 ?column?
589----------
590 t
591(1 row)
592
593SELECT scircle '<(0d, 70d),1d>' ~ sbox '((-10d, 60d),(10d, 80d))';
594 ?column?
595----------
596 f
597(1 row)
598
599SELECT sbox '((-10d, 60d),(10d, 80d))' ~ scircle '<(0d, 70d),1d>';
600 ?column?
601----------
602 t
603(1 row)
604
605SELECT scircle '<(0d, 70d),1d>' !~ sbox '((-10d, 60d),(10d, 80d))';
606 ?column?
607----------
608 t
609(1 row)
610
611SELECT sbox '((-10d, 60d),(10d, 80d))' !~ scircle '<(0d, 70d),1d>';
612 ?column?
613----------
614 f
615(1 row)
616
617SELECT scircle '<(0d, 50d),1d>' ~ sbox '((-10d, 60d),(10d, 80d))';
618 ?column?
619----------
620 f
621(1 row)
622
623SELECT sbox '((-10d, 60d),(10d, 80d))' ~ scircle '<(0d, 50d),1d>';
624 ?column?
625----------
626 f
627(1 row)
628
629SELECT scircle '<(0d, 50d),1d>' !~ sbox '((-10d, 60d),(10d, 80d))';
630 ?column?
631----------
632 t
633(1 row)
634
635SELECT sbox '((-10d, 60d),(10d, 80d))' !~ scircle '<(0d, 50d),1d>';
636 ?column?
637----------
638 t
639(1 row)
640
641-- Other Checks
642SELECT scircle '<(0d, 90d),1d>'  @ sbox '((0d, 80d),(360d, 90d))';
643 ?column?
644----------
645 t
646(1 row)
647
648SELECT scircle '<(0d,-90d),1d>'  @ sbox '((0d,-80d),(360d,-90d))';
649 ?column?
650----------
651 t
652(1 row)
653
654SELECT scircle '<(0d, 90d),1d>' && sbox '((0d, 80d),(360d, 90d))';
655 ?column?
656----------
657 t
658(1 row)
659
660SELECT scircle '<(0d,-90d),1d>' && sbox '((0d,-80d),(360d,-90d))';
661 ?column?
662----------
663 t
664(1 row)
665
666SELECT scircle '<(0d, 90d),1d>'  @ sbox '((0d, 80d),(360d, 89d))';
667 ?column?
668----------
669 f
670(1 row)
671
672SELECT scircle '<(0d,-90d),1d>'  @ sbox '((0d,-80d),(360d,-89d))';
673 ?column?
674----------
675 f
676(1 row)
677
678SELECT scircle '<(0d, 90d),1d>' && sbox '((0d, 80d),(360d, 89d))';
679 ?column?
680----------
681 t
682(1 row)
683
684SELECT scircle '<(0d,-90d),1d>' && sbox '((0d,-80d),(360d,-89d))';
685 ?column?
686----------
687 t
688(1 row)
689
690SELECT scircle '<(0d, 90d),1d>'  @ sbox '((0d, 80d),(360d, 88d))';
691 ?column?
692----------
693 f
694(1 row)
695
696SELECT scircle '<(0d,-90d),1d>'  @ sbox '((0d,-80d),(360d,-88d))';
697 ?column?
698----------
699 f
700(1 row)
701
702SELECT scircle '<(0d, 90d),1d>' && sbox '((0d, 80d),(360d, 88d))';
703 ?column?
704----------
705 f
706(1 row)
707
708SELECT scircle '<(0d,-90d),1d>' && sbox '((0d,-80d),(360d,-88d))';
709 ?column?
710----------
711 f
712(1 row)
713
714SELECT scircle '<(0d, 90d),1d>'  @ sbox '((0d, 80d),(270d, 90d))';
715 ?column?
716----------
717 f
718(1 row)
719
720SELECT scircle '<(0d,-90d),1d>'  @ sbox '((0d,-80d),(270d,-90d))';
721 ?column?
722----------
723 f
724(1 row)
725
726SELECT scircle '<(0d, 90d),1d>' && sbox '((0d, 80d),(270d, 90d))';
727 ?column?
728----------
729 t
730(1 row)
731
732SELECT scircle '<(0d,-90d),1d>' && sbox '((0d,-80d),(270d,-90d))';
733 ?column?
734----------
735 t
736(1 row)
737
738SELECT scircle '<(0d, 90d),1d>'  @ sbox '((0d, 80d),(270d, 89d))';
739 ?column?
740----------
741 f
742(1 row)
743
744SELECT scircle '<(0d,-90d),1d>'  @ sbox '((0d,-80d),(270d,-89d))';
745 ?column?
746----------
747 f
748(1 row)
749
750SELECT scircle '<(0d, 90d),1d>' && sbox '((0d, 80d),(270d, 89d))';
751 ?column?
752----------
753 t
754(1 row)
755
756SELECT scircle '<(0d,-90d),1d>' && sbox '((0d,-80d),(270d,-89d))';
757 ?column?
758----------
759 t
760(1 row)
761
762SELECT scircle '<(0d, 90d),1d>'  @ sbox '((0d, 80d),(270d, 88d))';
763 ?column?
764----------
765 f
766(1 row)
767
768SELECT scircle '<(0d,-90d),1d>'  @ sbox '((0d,-80d),(270d,-88d))';
769 ?column?
770----------
771 f
772(1 row)
773
774SELECT scircle '<(0d, 90d),1d>' && sbox '((0d, 80d),(270d, 88d))';
775 ?column?
776----------
777 f
778(1 row)
779
780SELECT scircle '<(0d,-90d),1d>' && sbox '((0d,-80d),(270d,-88d))';
781 ?column?
782----------
783 f
784(1 row)
785
786SELECT scircle '<(0d, 90d),1d>'  @ sbox '((0d, 80d),(90d, 90d))';
787 ?column?
788----------
789 f
790(1 row)
791
792SELECT scircle '<(0d,-90d),1d>'  @ sbox '((0d,-80d),(90d,-90d))';
793 ?column?
794----------
795 f
796(1 row)
797
798SELECT scircle '<(0d, 90d),1d>' && sbox '((0d, 80d),(90d, 90d))';
799 ?column?
800----------
801 t
802(1 row)
803
804SELECT scircle '<(0d,-90d),1d>' && sbox '((0d,-80d),(90d,-90d))';
805 ?column?
806----------
807 t
808(1 row)
809
810SELECT scircle '<(0d, 90d),1d>'  @ sbox '((0d, 80d),(90d, 89d))';
811 ?column?
812----------
813 f
814(1 row)
815
816SELECT scircle '<(0d,-90d),1d>'  @ sbox '((0d,-80d),(90d,-89d))';
817 ?column?
818----------
819 f
820(1 row)
821
822SELECT scircle '<(0d, 90d),1d>' && sbox '((0d, 80d),(90d, 89d))';
823 ?column?
824----------
825 t
826(1 row)
827
828SELECT scircle '<(0d,-90d),1d>' && sbox '((0d,-80d),(90d,-89d))';
829 ?column?
830----------
831 t
832(1 row)
833
834SELECT scircle '<(0d, 90d),1d>'  @ sbox '((0d, 80d),(90d, 88d))';
835 ?column?
836----------
837 f
838(1 row)
839
840SELECT scircle '<(0d,-90d),1d>'  @ sbox '((0d,-80d),(90d,-88d))';
841 ?column?
842----------
843 f
844(1 row)
845
846SELECT scircle '<(0d, 90d),1d>' && sbox '((0d, 80d),(90d, 88d))';
847 ?column?
848----------
849 f
850(1 row)
851
852SELECT scircle '<(0d,-90d),1d>' && sbox '((0d,-80d),(90d,-88d))';
853 ?column?
854----------
855 f
856(1 row)
857
858SELECT scircle '<(0d, 89d),1d>'  @ sbox '((0d, 80d),(90d, 90d))';
859 ?column?
860----------
861 f
862(1 row)
863
864SELECT scircle '<(0d,-89d),1d>'  @ sbox '((0d,-80d),(90d,-90d))';
865 ?column?
866----------
867 f
868(1 row)
869
870SELECT scircle '<(0d, 89d),1d>' && sbox '((0d, 80d),(90d, 90d))';
871 ?column?
872----------
873 t
874(1 row)
875
876SELECT scircle '<(0d,-89d),1d>' && sbox '((0d,-80d),(90d,-90d))';
877 ?column?
878----------
879 t
880(1 row)
881
882SELECT scircle '<(0d, 89d),1d>'  @ sbox '((0d, 80d),(90d, 89d))';
883 ?column?
884----------
885 f
886(1 row)
887
888SELECT scircle '<(0d,-89d),1d>'  @ sbox '((0d,-80d),(90d,-89d))';
889 ?column?
890----------
891 f
892(1 row)
893
894SELECT scircle '<(0d, 89d),1d>' && sbox '((0d, 80d),(90d, 89d))';
895 ?column?
896----------
897 t
898(1 row)
899
900SELECT scircle '<(0d,-89d),1d>' && sbox '((0d,-80d),(90d,-89d))';
901 ?column?
902----------
903 t
904(1 row)
905
906SELECT scircle '<(0d, 89d),1d>'  @ sbox '((0d, 80d),(90d, 88d))';
907 ?column?
908----------
909 f
910(1 row)
911
912SELECT scircle '<(0d,-89d),1d>'  @ sbox '((0d,-80d),(90d,-88d))';
913 ?column?
914----------
915 f
916(1 row)
917
918SELECT scircle '<(0d, 89d),1d>' && sbox '((0d, 80d),(90d, 88d))';
919 ?column?
920----------
921 t
922(1 row)
923
924SELECT scircle '<(0d,-89d),1d>' && sbox '((0d,-80d),(90d,-88d))';
925 ?column?
926----------
927 t
928(1 row)
929
930SELECT scircle '<(0d, 90d),10d>'  @ sbox '((0d, 80d),(360d, 90d))';
931 ?column?
932----------
933 t
934(1 row)
935
936SELECT scircle '<(0d, 90d),10d>'  ~ sbox '((0d, 80d),(360d, 90d))';
937 ?column?
938----------
939 t
940(1 row)
941
942SELECT scircle '<(0d, 90d),10d>'  && sbox '((0d, 80d),(360d, 90d))';
943 ?column?
944----------
945 t
946(1 row)
947
948--
949-- sbox and line
950--
951SELECT sline( spoint '(0d,0d)', spoint '(0d,10d)' ) @ sbox '((0d,0d),(10d,10d))';
952 ?column?
953----------
954 t
955(1 row)
956
957SELECT sline( spoint '(0d,0d)', spoint '(0d,0d)' )  @ sbox '((0d,0d),(10d,10d))';
958 ?column?
959----------
960 t
961(1 row)
962
963SELECT sline( spoint '(0d,10d)', spoint '(10d,10d)' ) @ sbox '((0d,0d),(10d,10d))';
964 ?column?
965----------
966 f
967(1 row)
968
969SELECT sline( spoint '(0d,0d)', spoint '(0d,10d)' ) && sbox '((0d,0d),(10d,10d))';
970 ?column?
971----------
972 t
973(1 row)
974
975SELECT sline( spoint '(0d,0d)', spoint '(0d,0d)' )  && sbox '((0d,0d),(10d,10d))';
976 ?column?
977----------
978 t
979(1 row)
980
981SELECT sline( spoint '(0d,10d)', spoint '(10d,10d)' ) && sbox '((0d,0d),(10d,10d))';
982 ?column?
983----------
984 t
985(1 row)
986
987-- sbox is point, sline is point
988SELECT sbox '((310d,310d),(310d,310d))' ~ sline ( spoint '(310d,310d)', spoint '(310d,310d)' ) ;
989 ?column?
990----------
991 t
992(1 row)
993
994SELECT sline ( spoint '(310d,310d)', spoint '(310d,310d)' ) @ sbox '((310d,310d),(310d,310d))' ;
995 ?column?
996----------
997 t
998(1 row)
999
1000SELECT sbox '((310d,310d),(310d,310d))' ~ sline ( spoint '(10d,10d)', spoint '(10d,10d)' ) ;
1001 ?column?
1002----------
1003 f
1004(1 row)
1005
1006SELECT sline ( spoint '(11d,11d)' , spoint '(11d,11d)' ) @ sbox '((310d,310d),(310d,310d))' ;
1007 ?column?
1008----------
1009 f
1010(1 row)
1011
1012SELECT sline ( spoint '(11d,90d)' , spoint '(11d,90d)' ) @ sbox '((310d,90d),(310d,90d))' ;
1013 ?column?
1014----------
1015 t
1016(1 row)
1017
1018SELECT sbox '((310d,90d),(310d,90d))' ~ sline ( spoint '(11d,90d)' , spoint '(11d,90d)' ) ;
1019 ?column?
1020----------
1021 t
1022(1 row)
1023
1024SELECT sbox '((310d,310d),(310d,310d))' && sline ( spoint '(310d,310d)', spoint '(310d,310d)' ) ;
1025 ?column?
1026----------
1027 t
1028(1 row)
1029
1030SELECT sline ( spoint '(310d,310d)', spoint '(310d,310d)' ) && sbox '((310d,310d),(310d,310d))' ;
1031 ?column?
1032----------
1033 t
1034(1 row)
1035
1036SELECT sbox '((310d,310d),(310d,310d))' && sline ( spoint '(10d,10d)', spoint '(10d,10d)' ) ;
1037 ?column?
1038----------
1039 f
1040(1 row)
1041
1042SELECT sline ( spoint '(11d,11d)' , spoint '(11d,11d)' ) && sbox '((310d,310d),(310d,310d))' ;
1043 ?column?
1044----------
1045 f
1046(1 row)
1047
1048SELECT sline ( spoint '(11d,90d)' , spoint '(11d,90d)' ) && sbox '((310d,90d),(310d,90d))' ;
1049 ?column?
1050----------
1051 t
1052(1 row)
1053
1054SELECT sbox '((310d,90d),(310d,90d))' && sline ( spoint '(11d,90d)' , spoint '(11d,90d)' ) ;
1055 ?column?
1056----------
1057 t
1058(1 row)
1059
1060-- sbox is point only
1061SELECT sbox '((310d,10d),(310d,10d))'  ~ sline ( spoint '(310d,10d)', spoint '(310d,20d)' ) ;
1062 ?column?
1063----------
1064 f
1065(1 row)
1066
1067SELECT sbox '((310d,10d),(310d,10d))' && sline ( spoint '(310d,10d)', spoint '(310d,20d)' ) ;
1068 ?column?
1069----------
1070 t
1071(1 row)
1072
1073SELECT sline ( spoint '(310d,10d)', spoint '(310d,20d)' )   @ sbox '((310d,10d),(310d,10d))' ;
1074 ?column?
1075----------
1076 f
1077(1 row)
1078
1079SELECT sline ( spoint '(310d,10d)', spoint '(310d,20d)' )  && sbox '((310d,10d),(310d,10d))' ;
1080 ?column?
1081----------
1082 t
1083(1 row)
1084
1085SELECT sbox '((310d,10d),(310d,10d))'  ~ sline ( spoint '(10d,10d)', spoint '(10d,20d)' ) ;
1086 ?column?
1087----------
1088 f
1089(1 row)
1090
1091SELECT sbox '((310d,10d),(310d,10d))' && sline ( spoint '(10d,10d)', spoint '(10d,20d)' ) ;
1092 ?column?
1093----------
1094 f
1095(1 row)
1096
1097SELECT sline ( spoint '(11d,11d)' , spoint '(21d,11d)' )  @ sbox '((310d,10d),(310d,10d))' ;
1098 ?column?
1099----------
1100 f
1101(1 row)
1102
1103SELECT sline ( spoint '(11d,11d)' , spoint '(21d,11d)' ) && sbox '((310d,10d),(310d,10d))' ;
1104 ?column?
1105----------
1106 f
1107(1 row)
1108
1109SELECT sline ( spoint '(11d,90d)' , spoint '(11d,80d)' )  @ sbox '((310d,90d),(310d,90d))' ;
1110 ?column?
1111----------
1112 f
1113(1 row)
1114
1115SELECT sline ( spoint '(11d,90d)' , spoint '(11d,80d)' ) && sbox '((310d,90d),(310d,90d))' ;
1116 ?column?
1117----------
1118 t
1119(1 row)
1120
1121SELECT sbox '((310d,90d),(310d,90d))'  ~ sline ( spoint '(11d,90d)' , spoint '(11d,80d)' ) ;
1122 ?column?
1123----------
1124 f
1125(1 row)
1126
1127SELECT sbox '((310d,90d),(310d,90d))' && sline ( spoint '(11d,90d)' , spoint '(11d,80d)' ) ;
1128 ?column?
1129----------
1130 t
1131(1 row)
1132
1133-- sline is point only
1134SELECT sbox '((310d,10d),(320d,20d))'  ~ sline ( spoint '(310d,10d)', spoint '(310d,10d)' ) ;
1135 ?column?
1136----------
1137 t
1138(1 row)
1139
1140SELECT sbox '((310d,10d),(320d,20d))' && sline ( spoint '(310d,10d)', spoint '(310d,10d)' ) ;
1141 ?column?
1142----------
1143 t
1144(1 row)
1145
1146SELECT sbox '((310d,10d),(320d,20d))'  ~ sline ( spoint '(315d,15d)', spoint '(315d,15d)' ) ;
1147 ?column?
1148----------
1149 t
1150(1 row)
1151
1152SELECT sbox '((310d,10d),(320d,20d))' && sline ( spoint '(315d,15d)', spoint '(315d,15d)' ) ;
1153 ?column?
1154----------
1155 t
1156(1 row)
1157
1158SELECT sline ( spoint '(310d,10d)', spoint '(310d,10d)' )   @ sbox '((310d,10d),(320d,20d))' ;
1159 ?column?
1160----------
1161 t
1162(1 row)
1163
1164SELECT sline ( spoint '(310d,10d)', spoint '(310d,10d)' )  && sbox '((310d,10d),(320d,20d))' ;
1165 ?column?
1166----------
1167 t
1168(1 row)
1169
1170SELECT sline ( spoint '(315d,15d)', spoint '(315d,15d)' )   @ sbox '((310d,10d),(320d,20d))' ;
1171 ?column?
1172----------
1173 t
1174(1 row)
1175
1176SELECT sline ( spoint '(315d,15d)', spoint '(315d,15d)' )  && sbox '((310d,10d),(320d,20d))' ;
1177 ?column?
1178----------
1179 t
1180(1 row)
1181
1182SELECT sbox '((310d,10d),(320d,20d))'  ~ sline ( spoint '(10d,10d)', spoint '(10d,10d)' ) ;
1183 ?column?
1184----------
1185 f
1186(1 row)
1187
1188SELECT sbox '((310d,10d),(320d,20d))' && sline ( spoint '(10d,10d)', spoint '(10d,10d)' ) ;
1189 ?column?
1190----------
1191 f
1192(1 row)
1193
1194SELECT sline ( spoint '(11d, 11d)' , spoint '(11d,11d)' )  @ sbox '((310d,10d),(320d,20d))' ;
1195 ?column?
1196----------
1197 f
1198(1 row)
1199
1200SELECT sline ( spoint '(11d, 11d)' , spoint '(11d,11d)' ) && sbox '((310d,10d),(320d,20d))' ;
1201 ?column?
1202----------
1203 f
1204(1 row)
1205
1206SELECT sline ( spoint '(11d, 90d)' , spoint '(11d,90d)' )  @ sbox '((310d,80d),(320d,90d))' ;
1207 ?column?
1208----------
1209 t
1210(1 row)
1211
1212SELECT sline ( spoint '(11d, 90d)' , spoint '(11d,90d)' ) && sbox '((310d,80d),(320d,90d))' ;
1213 ?column?
1214----------
1215 t
1216(1 row)
1217
1218SELECT sline ( spoint '(11d, 85d)' , spoint '(11d,85d)' )  @ sbox '((310d,80d),(320d,90d))' ;
1219 ?column?
1220----------
1221 f
1222(1 row)
1223
1224SELECT sline ( spoint '(11d, 85d)' , spoint '(11d,85d)' ) && sbox '((310d,80d),(320d,90d))' ;
1225 ?column?
1226----------
1227 f
1228(1 row)
1229
1230SELECT sline ( spoint '(315d,85d)' , spoint '(315d,85d)' )  @ sbox '((310d,80d),(320d,90d))' ;
1231 ?column?
1232----------
1233 t
1234(1 row)
1235
1236SELECT sline ( spoint '(315d,85d)' , spoint '(315d,85d)' ) && sbox '((310d,80d),(320d,90d))' ;
1237 ?column?
1238----------
1239 t
1240(1 row)
1241
1242SELECT sbox '((310d,80d),(320d,90d))'  ~ sline ( spoint '(11d,90d)' , spoint '(11d,90d)' ) ;
1243 ?column?
1244----------
1245 t
1246(1 row)
1247
1248SELECT sbox '((310d,80d),(320d,90d))' && sline ( spoint '(11d,90d)' , spoint '(11d,90d)' ) ;
1249 ?column?
1250----------
1251 t
1252(1 row)
1253
1254SELECT sbox '((310d,80d),(320d,90d))'  ~ sline ( spoint '(315d,85d)' , spoint '(315d,85d)' ) ;
1255 ?column?
1256----------
1257 t
1258(1 row)
1259
1260SELECT sbox '((310d,80d),(320d,90d))' && sline ( spoint '(315d,85d)' , spoint '(315d,85d)' ) ;
1261 ?column?
1262----------
1263 t
1264(1 row)
1265
1266-- sline / sbox near pole
1267SELECT sbox '((20d,80d),(200d,90d))'  ~ sline ( spoint '(200d,85d)', spoint '(20d,85d)' ) ;
1268 ?column?
1269----------
1270 t
1271(1 row)
1272
1273SELECT sbox '((20d,80d),(200d,90d))' && sline ( spoint '(200d,85d)', spoint '(20d,85d)' ) ;
1274 ?column?
1275----------
1276 t
1277(1 row)
1278
1279SELECT sbox '((10d,80d),(210d,90d))'  ~ sline ( spoint '(200d,81d)', spoint '(20d,81d)' ) ;
1280 ?column?
1281----------
1282 f
1283(1 row)
1284
1285SELECT sbox '((10d,80d),(210d,90d))' && sline ( spoint '(200d,81d)', spoint '(20d,81d)' ) ;
1286 ?column?
1287----------
1288 t
1289(1 row)
1290
1291SELECT sbox '((10d,80d),(211d,90d))'  ~ sline ( spoint '(200d,81d)', spoint '(20d,81d)' ) ;
1292 ?column?
1293----------
1294 f
1295(1 row)
1296
1297SELECT sbox '((10d,80d),(211d,90d))' && sline ( spoint '(200d,81d)', spoint '(20d,81d)' ) ;
1298 ?column?
1299----------
1300 t
1301(1 row)
1302
1303SELECT sbox '((190d,80d),(199d,90d))'  ~ sline ( spoint '(200d,85d)', spoint '(20d,90d)' ) ;
1304 ?column?
1305----------
1306 f
1307(1 row)
1308
1309SELECT sbox '((190d,80d),(199d,90d))' && sline ( spoint '(200d,85d)', spoint '(20d,90d)' ) ;
1310 ?column?
1311----------
1312 t
1313(1 row)
1314
1315SELECT sbox '((190d,80d),(200d,90d))'  ~ sline ( spoint '(200d,85d)', spoint '(20d,90d)' ) ;
1316 ?column?
1317----------
1318 t
1319(1 row)
1320
1321SELECT sbox '((190d,80d),(200d,90d))' && sline ( spoint '(200d,85d)', spoint '(20d,90d)' ) ;
1322 ?column?
1323----------
1324 t
1325(1 row)
1326
1327SELECT sbox '((190d,80d),(210d,90d))'  ~ sline ( spoint '(200d,85d)', spoint '(20d,90d)' ) ;
1328 ?column?
1329----------
1330 t
1331(1 row)
1332
1333SELECT sbox '((190d,80d),(210d,90d))' && sline ( spoint '(200d,85d)', spoint '(20d,90d)' ) ;
1334 ?column?
1335----------
1336 t
1337(1 row)
1338
1339SELECT sbox '((200d,80d),(210d,90d))'  ~ sline ( spoint '(200d,81d)', spoint '(20d,90d)' ) ;
1340 ?column?
1341----------
1342 t
1343(1 row)
1344
1345SELECT sbox '((200d,80d),(210d,90d))' && sline ( spoint '(200d,81d)', spoint '(20d,90d)' ) ;
1346 ?column?
1347----------
1348 t
1349(1 row)
1350
1351SELECT sbox '((210d,80d),(220d,90d))'  ~ sline ( spoint '(200d,81d)', spoint '(20d,90d)' ) ;
1352 ?column?
1353----------
1354 f
1355(1 row)
1356
1357SELECT sbox '((210d,80d),(220d,90d))' && sline ( spoint '(200d,81d)', spoint '(20d,90d)' ) ;
1358 ?column?
1359----------
1360 t
1361(1 row)
1362
1363SELECT sbox '((190d,80d),(199d,88d))'  ~ sline ( spoint '(200d,85d)', spoint '(20d,90d)' ) ;
1364 ?column?
1365----------
1366 f
1367(1 row)
1368
1369SELECT sbox '((190d,80d),(199d,88d))' && sline ( spoint '(200d,85d)', spoint '(20d,90d)' ) ;
1370 ?column?
1371----------
1372 f
1373(1 row)
1374
1375SELECT sbox '((190d,80d),(200d,88d))'  ~ sline ( spoint '(200d,85d)', spoint '(20d,90d)' ) ;
1376 ?column?
1377----------
1378 f
1379(1 row)
1380
1381SELECT sbox '((190d,80d),(200d,88d))' && sline ( spoint '(200d,85d)', spoint '(20d,90d)' ) ;
1382 ?column?
1383----------
1384 t
1385(1 row)
1386
1387SELECT sbox '((190d,80d),(210d,88d))'  ~ sline ( spoint '(200d,85d)', spoint '(20d,90d)' ) ;
1388 ?column?
1389----------
1390 f
1391(1 row)
1392
1393SELECT sbox '((190d,80d),(210d,88d))' && sline ( spoint '(200d,85d)', spoint '(20d,90d)' ) ;
1394 ?column?
1395----------
1396 t
1397(1 row)
1398
1399SELECT sbox '((200d,80d),(210d,88d))'  ~ sline ( spoint '(200d,81d)', spoint '(20d,90d)' ) ;
1400 ?column?
1401----------
1402 f
1403(1 row)
1404
1405SELECT sbox '((200d,80d),(210d,88d))' && sline ( spoint '(200d,81d)', spoint '(20d,90d)' ) ;
1406 ?column?
1407----------
1408 t
1409(1 row)
1410
1411SELECT sbox '((210d,80d),(220d,88d))'  ~ sline ( spoint '(200d,81d)', spoint '(20d,90d)' ) ;
1412 ?column?
1413----------
1414 f
1415(1 row)
1416
1417SELECT sbox '((210d,80d),(220d,88d))' && sline ( spoint '(200d,81d)', spoint '(20d,90d)' ) ;
1418 ?column?
1419----------
1420 f
1421(1 row)
1422
1423-- sbox near equator
1424SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(200d,85d)', spoint '( 20d, 85d)' ) ;
1425 ?column?
1426----------
1427 f
1428(1 row)
1429
1430SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(200d,85d)', spoint '( 20d, 85d)' ) ;
1431 ?column?
1432----------
1433 f
1434(1 row)
1435
1436SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(200d, 0d)', spoint '(190d,  0d)' ) ;
1437 ?column?
1438----------
1439 f
1440(1 row)
1441
1442SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(200d, 0d)', spoint '(190d,  0d)' ) ;
1443 ?column?
1444----------
1445 t
1446(1 row)
1447
1448SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(200d, 0d)', spoint '(205d,  0d)' ) ;
1449 ?column?
1450----------
1451 t
1452(1 row)
1453
1454SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(200d, 0d)', spoint '(205d,  0d)' ) ;
1455 ?column?
1456----------
1457 t
1458(1 row)
1459
1460SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(202d, 0d)', spoint '(207d,  0d)' ) ;
1461 ?column?
1462----------
1463 t
1464(1 row)
1465
1466SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(202d, 0d)', spoint '(207d,  0d)' ) ;
1467 ?column?
1468----------
1469 t
1470(1 row)
1471
1472SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(200d,-5d)', spoint '(200d,  5d)' ) ;
1473 ?column?
1474----------
1475 f
1476(1 row)
1477
1478SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(200d,-5d)', spoint '(200d,  5d)' ) ;
1479 ?column?
1480----------
1481 t
1482(1 row)
1483
1484SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(205d,-5d)', spoint '(205d,  5d)' ) ;
1485 ?column?
1486----------
1487 f
1488(1 row)
1489
1490SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(205d,-5d)', spoint '(205d,  5d)' ) ;
1491 ?column?
1492----------
1493 t
1494(1 row)
1495
1496SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(200d, 0d)', spoint '(200d,  5d)' ) ;
1497 ?column?
1498----------
1499 t
1500(1 row)
1501
1502SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(200d, 0d)', spoint '(200d,  5d)' ) ;
1503 ?column?
1504----------
1505 t
1506(1 row)
1507
1508SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(200d, 0d)', spoint '(200d, 10d)' ) ;
1509 ?column?
1510----------
1511 t
1512(1 row)
1513
1514SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(200d, 0d)', spoint '(200d, 10d)' ) ;
1515 ?column?
1516----------
1517 t
1518(1 row)
1519
1520SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(205d, 0d)', spoint '(205d,  5d)' ) ;
1521 ?column?
1522----------
1523 t
1524(1 row)
1525
1526SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(205d, 0d)', spoint '(205d,  5d)' ) ;
1527 ?column?
1528----------
1529 t
1530(1 row)
1531
1532SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(205d, 0d)', spoint '(205d, 10d)' ) ;
1533 ?column?
1534----------
1535 t
1536(1 row)
1537
1538SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(205d, 0d)', spoint '(205d, 10d)' ) ;
1539 ?column?
1540----------
1541 t
1542(1 row)
1543
1544SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(200d,-5d)', spoint '(200d, 15d)' ) ;
1545 ?column?
1546----------
1547 f
1548(1 row)
1549
1550SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(200d,-5d)', spoint '(200d, 15d)' ) ;
1551 ?column?
1552----------
1553 t
1554(1 row)
1555
1556SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(205d,-5d)', spoint '(205d, 15d)' ) ;
1557 ?column?
1558----------
1559 f
1560(1 row)
1561
1562SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(205d,-5d)', spoint '(205d, 15d)' ) ;
1563 ?column?
1564----------
1565 t
1566(1 row)
1567
1568SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(200d, 0d)', spoint '(210d, 10d)' ) ;
1569 ?column?
1570----------
1571 t
1572(1 row)
1573
1574SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(200d, 0d)', spoint '(210d, 10d)' ) ;
1575 ?column?
1576----------
1577 t
1578(1 row)
1579
1580SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(199d,-1d)', spoint '(211d, 11d)' ) ;
1581 ?column?
1582----------
1583 f
1584(1 row)
1585
1586SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(199d,-1d)', spoint '(211d, 11d)' ) ;
1587 ?column?
1588----------
1589 t
1590(1 row)
1591
1592SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(200d, 0d)', spoint '(211d, 11d)' ) ;
1593 ?column?
1594----------
1595 f
1596(1 row)
1597
1598SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(200d, 0d)', spoint '(211d, 11d)' ) ;
1599 ?column?
1600----------
1601 t
1602(1 row)
1603
1604SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(199d,-1d)', spoint '(210d, 10d)' ) ;
1605 ?column?
1606----------
1607 f
1608(1 row)
1609
1610SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(199d,-1d)', spoint '(210d, 10d)' ) ;
1611 ?column?
1612----------
1613 t
1614(1 row)
1615
1616SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(199d,-1d)', spoint '(209d,  9d)' ) ;
1617 ?column?
1618----------
1619 f
1620(1 row)
1621
1622SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(199d,-1d)', spoint '(209d,  9d)' ) ;
1623 ?column?
1624----------
1625 t
1626(1 row)
1627
1628SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(201d, 1d)', spoint '(211d, 11d)' ) ;
1629 ?column?
1630----------
1631 f
1632(1 row)
1633
1634SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(201d, 1d)', spoint '(211d, 11d)' ) ;
1635 ?column?
1636----------
1637 t
1638(1 row)
1639
1640SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(200d, 0d)', spoint '(205d,  5d)' ) ;
1641 ?column?
1642----------
1643 t
1644(1 row)
1645
1646SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(200d, 0d)', spoint '(205d,  5d)' ) ;
1647 ?column?
1648----------
1649 t
1650(1 row)
1651
1652SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(201d, 0d)', spoint '(205d,  5d)' ) ;
1653 ?column?
1654----------
1655 t
1656(1 row)
1657
1658SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(201d, 0d)', spoint '(205d,  5d)' ) ;
1659 ?column?
1660----------
1661 t
1662(1 row)
1663
1664SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(201d, 1d)', spoint '(205d,  5d)' ) ;
1665 ?column?
1666----------
1667 t
1668(1 row)
1669
1670SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(201d, 1d)', spoint '(205d,  5d)' ) ;
1671 ?column?
1672----------
1673 t
1674(1 row)
1675
1676SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(200d,10d)', spoint '(210d, 10d)' ) ;
1677 ?column?
1678----------
1679 f
1680(1 row)
1681
1682SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(200d,10d)', spoint '(210d, 10d)' ) ;
1683 ?column?
1684----------
1685 t
1686(1 row)
1687
1688SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(200d,10d)', spoint '(205d, 10d)' ) ;
1689 ?column?
1690----------
1691 f
1692(1 row)
1693
1694SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(200d,10d)', spoint '(205d, 10d)' ) ;
1695 ?column?
1696----------
1697 t
1698(1 row)
1699
1700SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(199d,-1d)', spoint '(200d,  0d)' ) ;
1701 ?column?
1702----------
1703 f
1704(1 row)
1705
1706SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(199d,-1d)', spoint '(200d,  0d)' ) ;
1707 ?column?
1708----------
1709 t
1710(1 row)
1711
1712SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(200d,10d)', spoint '(200d, 20d)' ) ;
1713 ?column?
1714----------
1715 f
1716(1 row)
1717
1718SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(200d,10d)', spoint '(200d, 20d)' ) ;
1719 ?column?
1720----------
1721 t
1722(1 row)
1723
1724SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(205d,10d)', spoint '(205d, 20d)' ) ;
1725 ?column?
1726----------
1727 f
1728(1 row)
1729
1730SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(205d,10d)', spoint '(205d, 20d)' ) ;
1731 ?column?
1732----------
1733 t
1734(1 row)
1735
1736SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(210d,10d)', spoint '(210d, 20d)' ) ;
1737 ?column?
1738----------
1739 f
1740(1 row)
1741
1742SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(210d,10d)', spoint '(210d, 20d)' ) ;
1743 ?column?
1744----------
1745 t
1746(1 row)
1747
1748SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(200d, 0d)', spoint '(200d, -5d)' ) ;
1749 ?column?
1750----------
1751 f
1752(1 row)
1753
1754SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(200d, 0d)', spoint '(200d, -5d)' ) ;
1755 ?column?
1756----------
1757 t
1758(1 row)
1759
1760SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(205d, 0d)', spoint '(205d, -5d)' ) ;
1761 ?column?
1762----------
1763 f
1764(1 row)
1765
1766SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(205d, 0d)', spoint '(205d, -5d)' ) ;
1767 ?column?
1768----------
1769 t
1770(1 row)
1771
1772SELECT sbox '((200d,0d),(210d,10d))'  ~ sline ( spoint '(210d, 0d)', spoint '(210d, -5d)' ) ;
1773 ?column?
1774----------
1775 f
1776(1 row)
1777
1778SELECT sbox '((200d,0d),(210d,10d))' && sline ( spoint '(210d, 0d)', spoint '(210d, -5d)' ) ;
1779 ?column?
1780----------
1781 t
1782(1 row)
1783
1784SELECT sbox '((200d,0d),(210d,10d))'  ~ sline '( -10d, -10d, 200d, ZXZ ), 20d' ;
1785 ?column?
1786----------
1787 f
1788(1 row)
1789
1790SELECT sbox '((200d,0d),(210d,10d))' && sline '( -10d, -10d, 200d, ZXZ ), 20d' ;
1791 ?column?
1792----------
1793 t
1794(1 row)
1795
1796-- general position
1797SELECT sbox '((170d,-50d),(190d,-40d))'   ~ sline ( spoint '(170d,  0d)', spoint '(190d,   0d)' ) ;
1798 ?column?
1799----------
1800 f
1801(1 row)
1802
1803SELECT sbox '((170d,-50d),(190d,-40d))'  && sline ( spoint '(170d,  0d)', spoint '(190d,   0d)' ) ;
1804 ?column?
1805----------
1806 f
1807(1 row)
1808
1809SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(170d, -40d)', spoint '(190d, -40d)' ) ;
1810 ?column?
1811----------
1812 t
1813(1 row)
1814
1815SELECT sbox '((170d,-50d),(190d,-40d))' && sline ( spoint '(170d, -40d)', spoint '(190d, -40d)' ) ;
1816 ?column?
1817----------
1818 t
1819(1 row)
1820
1821SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(170d, -50d)', spoint '(190d, -50d)' ) ;
1822 ?column?
1823----------
1824 f
1825(1 row)
1826
1827SELECT sbox '((170d,-50d),(190d,-40d))' && sline ( spoint '(170d, -50d)', spoint '(190d, -50d)' ) ;
1828 ?column?
1829----------
1830 t
1831(1 row)
1832
1833SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(171d, -40d)', spoint '(189d, -40d)' ) ;
1834 ?column?
1835----------
1836 t
1837(1 row)
1838
1839SELECT sbox '((170d,-50d),(190d,-40d))' && sline ( spoint '(171d, -40d)', spoint '(189d, -40d)' ) ;
1840 ?column?
1841----------
1842 t
1843(1 row)
1844
1845SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(171d, -50d)', spoint '(189d, -50d)' ) ;
1846 ?column?
1847----------
1848 f
1849(1 row)
1850
1851SELECT sbox '((170d,-50d),(190d,-40d))' && sline ( spoint '(171d, -50d)', spoint '(189d, -50d)' ) ;
1852 ?column?
1853----------
1854 t
1855(1 row)
1856
1857SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(171d, -40d)', spoint '(191d, -40d)' ) ;
1858 ?column?
1859----------
1860 f
1861(1 row)
1862
1863SELECT sbox '((170d,-50d),(190d,-40d))' && sline ( spoint '(171d, -40d)', spoint '(191d, -40d)' ) ;
1864 ?column?
1865----------
1866 t
1867(1 row)
1868
1869SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(171d, -50d)', spoint '(191d, -50d)' ) ;
1870 ?column?
1871----------
1872 f
1873(1 row)
1874
1875SELECT sbox '((170d,-50d),(190d,-40d))' && sline ( spoint '(171d, -50d)', spoint '(191d, -50d)' ) ;
1876 ?column?
1877----------
1878 t
1879(1 row)
1880
1881SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(170d, -40d)', spoint '(170d, -50d)' ) ;
1882 ?column?
1883----------
1884 t
1885(1 row)
1886
1887SELECT sbox '((170d,-50d),(190d,-40d))' && sline ( spoint '(170d, -40d)', spoint '(170d, -50d)' ) ;
1888 ?column?
1889----------
1890 t
1891(1 row)
1892
1893SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(170d, -40d)', spoint '(170d, -49d)' ) ;
1894 ?column?
1895----------
1896 t
1897(1 row)
1898
1899SELECT sbox '((170d,-50d),(190d,-40d))' && sline ( spoint '(170d, -40d)', spoint '(170d, -49d)' ) ;
1900 ?column?
1901----------
1902 t
1903(1 row)
1904
1905SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(170d, -40d)', spoint '(170d, -51d)' ) ;
1906 ?column?
1907----------
1908 f
1909(1 row)
1910
1911SELECT sbox '((170d,-50d),(190d,-40d))' && sline ( spoint '(170d, -40d)', spoint '(170d, -51d)' ) ;
1912 ?column?
1913----------
1914 t
1915(1 row)
1916
1917SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(170d, -40d)', spoint '(190d, -50d)' ) ;
1918 ?column?
1919----------
1920 t
1921(1 row)
1922
1923SELECT sbox '((170d,-50d),(190d,-40d))' && sline ( spoint '(170d, -40d)', spoint '(190d, -50d)' ) ;
1924 ?column?
1925----------
1926 t
1927(1 row)
1928
1929SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(171d, -41d)', spoint '(189d, -49d)' ) ;
1930 ?column?
1931----------
1932 t
1933(1 row)
1934
1935SELECT sbox '((170d,-50d),(190d,-40d))' && sline ( spoint '(171d, -41d)', spoint '(189d, -49d)' ) ;
1936 ?column?
1937----------
1938 t
1939(1 row)
1940
1941SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(180d, -39d)', spoint '(180d, -51d)' ) ;
1942 ?column?
1943----------
1944 f
1945(1 row)
1946
1947SELECT sbox '((170d,-50d),(190d,-40d))' && sline ( spoint '(180d, -39d)', spoint '(180d, -51d)' ) ;
1948 ?column?
1949----------
1950 t
1951(1 row)
1952
1953SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(180d, -40d)', spoint '(180d, -51d)' ) ;
1954 ?column?
1955----------
1956 f
1957(1 row)
1958
1959SELECT sbox '((170d,-50d),(190d,-40d))' && sline ( spoint '(180d, -40d)', spoint '(180d, -51d)' ) ;
1960 ?column?
1961----------
1962 t
1963(1 row)
1964
1965SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(180d, -40d)', spoint '(180d, -50d)' ) ;
1966 ?column?
1967----------
1968 t
1969(1 row)
1970
1971SELECT sbox '((170d,-50d),(190d,-40d))' && sline ( spoint '(180d, -40d)', spoint '(180d, -50d)' ) ;
1972 ?column?
1973----------
1974 t
1975(1 row)
1976
1977SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(180d, -41d)', spoint '(180d, -50d)' ) ;
1978 ?column?
1979----------
1980 t
1981(1 row)
1982
1983SELECT sbox '((170d,-50d),(190d,-40d))' && sline ( spoint '(180d, -41d)', spoint '(180d, -50d)' ) ;
1984 ?column?
1985----------
1986 t
1987(1 row)
1988
1989SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(180d, -41d)', spoint '(180d, -49d)' ) ;
1990 ?column?
1991----------
1992 t
1993(1 row)
1994
1995SELECT sbox '((170d,-50d),(190d,-40d))' && sline ( spoint '(180d, -41d)', spoint '(180d, -49d)' ) ;
1996 ?column?
1997----------
1998 t
1999(1 row)
2000
2001SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(180d, -39d)', spoint '(182d, -51d)' ) ;
2002 ?column?
2003----------
2004 f
2005(1 row)
2006
2007SELECT sbox '((170d,-50d),(190d,-40d))' && sline ( spoint '(180d, -39d)', spoint '(182d, -51d)' ) ;
2008 ?column?
2009----------
2010 t
2011(1 row)
2012
2013SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(180d, -40d)', spoint '(182d, -51d)' ) ;
2014 ?column?
2015----------
2016 f
2017(1 row)
2018
2019SELECT sbox '((170d,-50d),(190d,-40d))' && sline ( spoint '(180d, -40d)', spoint '(182d, -51d)' ) ;
2020 ?column?
2021----------
2022 t
2023(1 row)
2024
2025SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(180d, -40d)', spoint '(182d, -50d)' ) ;
2026 ?column?
2027----------
2028 t
2029(1 row)
2030
2031SELECT sbox '((170d,-50d),(190d,-40d))' && sline ( spoint '(180d, -40d)', spoint '(182d, -50d)' ) ;
2032 ?column?
2033----------
2034 t
2035(1 row)
2036
2037SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(180d, -41d)', spoint '(182d, -50d)' ) ;
2038 ?column?
2039----------
2040 t
2041(1 row)
2042
2043SELECT sbox '((170d,-50d),(190d,-40d))' && sline ( spoint '(180d, -41d)', spoint '(182d, -50d)' ) ;
2044 ?column?
2045----------
2046 t
2047(1 row)
2048
2049SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(180d, -41d)', spoint '(182d, -49d)' ) ;
2050 ?column?
2051----------
2052 t
2053(1 row)
2054
2055SELECT sbox '((170d,-50d),(190d,-40d))' && sline ( spoint '(180d, -41d)', spoint '(182d, -49d)' ) ;
2056 ?column?
2057----------
2058 t
2059(1 row)
2060
2061SELECT sbox '((170d,-50d),(190d,-40d))'  ~ sline ( spoint '(170d, -40d)', spoint '(190d, -40d)' ) ;
2062 ?column?
2063----------
2064 t
2065(1 row)
2066
2067-- all less/equals/greater permutations of spoint coordinates with respect to a fixed sbox
2068select 'f' as expected, spoint(0.50, 0.50) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2069 expected | actual
2070----------+--------
2071 f        | f
2072(1 row)
2073
2074select 'f' as expected, spoint(0.50, 0.75) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2075 expected | actual
2076----------+--------
2077 f        | f
2078(1 row)
2079
2080select 'f' as expected, spoint(0.50, 1.00) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2081 expected | actual
2082----------+--------
2083 f        | f
2084(1 row)
2085
2086select 'f' as expected, spoint(0.50, 1.25) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2087 expected | actual
2088----------+--------
2089 f        | f
2090(1 row)
2091
2092select 'f' as expected, spoint(0.50, 1.50) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2093 expected | actual
2094----------+--------
2095 f        | f
2096(1 row)
2097
2098select 'f' as expected, spoint(0.75, 0.50) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2099 expected | actual
2100----------+--------
2101 f        | f
2102(1 row)
2103
2104select 't' as expected, spoint(0.75, 0.75) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2105 expected | actual
2106----------+--------
2107 t        | t
2108(1 row)
2109
2110select 't' as expected, spoint(0.75, 1.00) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2111 expected | actual
2112----------+--------
2113 t        | t
2114(1 row)
2115
2116select 't' as expected, spoint(0.75, 1.25) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2117 expected | actual
2118----------+--------
2119 t        | t
2120(1 row)
2121
2122select 'f' as expected, spoint(0.75, 1.50) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2123 expected | actual
2124----------+--------
2125 f        | f
2126(1 row)
2127
2128select 'f' as expected, spoint(1.00, 0.50) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2129 expected | actual
2130----------+--------
2131 f        | f
2132(1 row)
2133
2134select 't' as expected, spoint(1.00, 0.75) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2135 expected | actual
2136----------+--------
2137 t        | t
2138(1 row)
2139
2140select 't' as expected, spoint(1.00, 1.00) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2141 expected | actual
2142----------+--------
2143 t        | t
2144(1 row)
2145
2146select 't' as expected, spoint(1.00, 1.25) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2147 expected | actual
2148----------+--------
2149 t        | t
2150(1 row)
2151
2152select 'f' as expected, spoint(1.00, 1.50) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2153 expected | actual
2154----------+--------
2155 f        | f
2156(1 row)
2157
2158select 'f' as expected, spoint(1.25, 0.50) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2159 expected | actual
2160----------+--------
2161 f        | f
2162(1 row)
2163
2164select 't' as expected, spoint(1.25, 0.75) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2165 expected | actual
2166----------+--------
2167 t        | t
2168(1 row)
2169
2170select 't' as expected, spoint(1.25, 1.00) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2171 expected | actual
2172----------+--------
2173 t        | t
2174(1 row)
2175
2176select 't' as expected, spoint(1.25, 1.25) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2177 expected | actual
2178----------+--------
2179 t        | t
2180(1 row)
2181
2182select 'f' as expected, spoint(1.25, 1.50) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2183 expected | actual
2184----------+--------
2185 f        | f
2186(1 row)
2187
2188select 'f' as expected, spoint(1.50, 0.50) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2189 expected | actual
2190----------+--------
2191 f        | f
2192(1 row)
2193
2194select 'f' as expected, spoint(1.50, 0.75) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2195 expected | actual
2196----------+--------
2197 f        | f
2198(1 row)
2199
2200select 'f' as expected, spoint(1.50, 1.00) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2201 expected | actual
2202----------+--------
2203 f        | f
2204(1 row)
2205
2206select 'f' as expected, spoint(1.50, 1.25) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2207 expected | actual
2208----------+--------
2209 f        | f
2210(1 row)
2211
2212select 'f' as expected, spoint(1.50, 1.50) <@ sbox(spoint(0.75, 0.75), spoint(1.25, 1.25)) as actual;
2213 expected | actual
2214----------+--------
2215 f        | f
2216(1 row)
2217
2218-- wide spherical boxes
2219