1--
2--  Test seg datatype
3--
4CREATE EXTENSION seg;
5-- Check whether any of our opclasses fail amvalidate
6SELECT amname, opcname
7FROM pg_opclass opc LEFT JOIN pg_am am ON am.oid = opcmethod
8WHERE opc.oid >= 16384 AND NOT amvalidate(opc.oid);
9 amname | opcname
10--------+---------
11(0 rows)
12
13--
14-- testing the input and output functions
15--
16-- Any number
17SELECT '1'::seg AS seg;
18 seg
19-----
20 1
21(1 row)
22
23SELECT '-1'::seg AS seg;
24 seg
25-----
26 -1
27(1 row)
28
29SELECT '1.0'::seg AS seg;
30 seg
31-----
32 1.0
33(1 row)
34
35SELECT '-1.0'::seg AS seg;
36 seg
37------
38 -1.0
39(1 row)
40
41SELECT '1e7'::seg AS seg;
42  seg
43-------
44 1e+07
45(1 row)
46
47SELECT '-1e7'::seg AS seg;
48  seg
49--------
50 -1e+07
51(1 row)
52
53SELECT '1.0e7'::seg AS seg;
54   seg
55---------
56 1.0e+07
57(1 row)
58
59SELECT '-1.0e7'::seg AS seg;
60   seg
61----------
62 -1.0e+07
63(1 row)
64
65SELECT '1e+7'::seg AS seg;
66  seg
67-------
68 1e+07
69(1 row)
70
71SELECT '-1e+7'::seg AS seg;
72  seg
73--------
74 -1e+07
75(1 row)
76
77SELECT '1.0e+7'::seg AS seg;
78   seg
79---------
80 1.0e+07
81(1 row)
82
83SELECT '-1.0e+7'::seg AS seg;
84   seg
85----------
86 -1.0e+07
87(1 row)
88
89SELECT '1e-7'::seg AS seg;
90  seg
91-------
92 1e-07
93(1 row)
94
95SELECT '-1e-7'::seg AS seg;
96  seg
97--------
98 -1e-07
99(1 row)
100
101SELECT '1.0e-7'::seg AS seg;
102   seg
103---------
104 1.0e-07
105(1 row)
106
107SELECT '-1.0e-7'::seg AS seg;
108   seg
109----------
110 -1.0e-07
111(1 row)
112
113SELECT '2e-6'::seg AS seg;
114  seg
115-------
116 2e-06
117(1 row)
118
119SELECT '2e-5'::seg AS seg;
120  seg
121-------
122 2e-05
123(1 row)
124
125SELECT '2e-4'::seg AS seg;
126  seg
127--------
128 0.0002
129(1 row)
130
131SELECT '2e-3'::seg AS seg;
132  seg
133-------
134 0.002
135(1 row)
136
137SELECT '2e-2'::seg AS seg;
138 seg
139------
140 0.02
141(1 row)
142
143SELECT '2e-1'::seg AS seg;
144 seg
145-----
146 0.2
147(1 row)
148
149SELECT '2e-0'::seg AS seg;
150 seg
151-----
152 2
153(1 row)
154
155SELECT '2e+0'::seg AS seg;
156 seg
157-----
158 2
159(1 row)
160
161SELECT '2e+1'::seg AS seg;
162 seg
163-----
164 2e1
165(1 row)
166
167SELECT '2e+2'::seg AS seg;
168 seg
169-----
170 2e2
171(1 row)
172
173SELECT '2e+3'::seg AS seg;
174 seg
175-----
176 2e3
177(1 row)
178
179SELECT '2e+4'::seg AS seg;
180 seg
181-----
182 2e4
183(1 row)
184
185SELECT '2e+5'::seg AS seg;
186  seg
187-------
188 2e+05
189(1 row)
190
191SELECT '2e+6'::seg AS seg;
192  seg
193-------
194 2e+06
195(1 row)
196
197-- Significant digits preserved
198SELECT '1'::seg AS seg;
199 seg
200-----
201 1
202(1 row)
203
204SELECT '1.0'::seg AS seg;
205 seg
206-----
207 1.0
208(1 row)
209
210SELECT '1.00'::seg AS seg;
211 seg
212------
213 1.00
214(1 row)
215
216SELECT '1.000'::seg AS seg;
217  seg
218-------
219 1.000
220(1 row)
221
222SELECT '1.0000'::seg AS seg;
223  seg
224--------
225 1.0000
226(1 row)
227
228SELECT '1.00000'::seg AS seg;
229   seg
230---------
231 1.00000
232(1 row)
233
234SELECT '1.000000'::seg AS seg;
235   seg
236---------
237 1.00000
238(1 row)
239
240SELECT '0.000000120'::seg AS seg;
241   seg
242----------
243 1.20e-07
244(1 row)
245
246SELECT '3.400e5'::seg AS seg;
247    seg
248-----------
249 3.400e+05
250(1 row)
251
252-- Digits truncated
253SELECT '12.34567890123456'::seg AS seg;
254   seg
255---------
256 12.3457
257(1 row)
258
259-- Numbers with certainty indicators
260SELECT '~6.5'::seg AS seg;
261 seg
262------
263 ~6.5
264(1 row)
265
266SELECT '<6.5'::seg AS seg;
267 seg
268------
269 <6.5
270(1 row)
271
272SELECT '>6.5'::seg AS seg;
273 seg
274------
275 >6.5
276(1 row)
277
278SELECT '~ 6.5'::seg AS seg;
279 seg
280------
281 ~6.5
282(1 row)
283
284SELECT '< 6.5'::seg AS seg;
285 seg
286------
287 <6.5
288(1 row)
289
290SELECT '> 6.5'::seg AS seg;
291 seg
292------
293 >6.5
294(1 row)
295
296-- Open intervals
297SELECT '0..'::seg AS seg;
298 seg
299------
300 0 ..
301(1 row)
302
303SELECT '0...'::seg AS seg;
304 seg
305------
306 0 ..
307(1 row)
308
309SELECT '0 ..'::seg AS seg;
310 seg
311------
312 0 ..
313(1 row)
314
315SELECT '0 ...'::seg AS seg;
316 seg
317------
318 0 ..
319(1 row)
320
321SELECT '..0'::seg AS seg;
322 seg
323------
324 .. 0
325(1 row)
326
327SELECT '...0'::seg AS seg;
328 seg
329------
330 .. 0
331(1 row)
332
333SELECT '.. 0'::seg AS seg;
334 seg
335------
336 .. 0
337(1 row)
338
339SELECT '... 0'::seg AS seg;
340 seg
341------
342 .. 0
343(1 row)
344
345-- Finite intervals
346SELECT '0 .. 1'::seg AS seg;
347  seg
348--------
349 0 .. 1
350(1 row)
351
352SELECT '-1 .. 0'::seg AS seg;
353   seg
354---------
355 -1 .. 0
356(1 row)
357
358SELECT '-1 .. 1'::seg AS seg;
359   seg
360---------
361 -1 .. 1
362(1 row)
363
364-- (+/-) intervals
365SELECT '0(+-)1'::seg AS seg;
366   seg
367---------
368 -1 .. 1
369(1 row)
370
371SELECT '0(+-)1.0'::seg AS seg;
372     seg
373-------------
374 -1.0 .. 1.0
375(1 row)
376
377SELECT '1.0(+-)0.005'::seg AS seg;
378      seg
379----------------
380 0.995 .. 1.005
381(1 row)
382
383SELECT '101(+-)1'::seg AS seg;
384       seg
385------------------
386 1.00e2 .. 1.02e2
387(1 row)
388
389-- incorrect number of significant digits in 99.0:
390SELECT '100(+-)1'::seg AS seg;
391      seg
392----------------
393 99.0 .. 1.01e2
394(1 row)
395
396-- invalid input
397SELECT ''::seg AS seg;
398ERROR:  bad seg representation
399LINE 1: SELECT ''::seg AS seg;
400               ^
401DETAIL:  syntax error at end of input
402SELECT 'ABC'::seg AS seg;
403ERROR:  bad seg representation
404LINE 1: SELECT 'ABC'::seg AS seg;
405               ^
406DETAIL:  syntax error at or near "A"
407SELECT '1ABC'::seg AS seg;
408ERROR:  bad seg representation
409LINE 1: SELECT '1ABC'::seg AS seg;
410               ^
411DETAIL:  syntax error at or near "A"
412SELECT '1.'::seg AS seg;
413ERROR:  bad seg representation
414LINE 1: SELECT '1.'::seg AS seg;
415               ^
416DETAIL:  syntax error at or near "."
417SELECT '1.....'::seg AS seg;
418ERROR:  bad seg representation
419LINE 1: SELECT '1.....'::seg AS seg;
420               ^
421DETAIL:  syntax error at or near ".."
422SELECT '.1'::seg AS seg;
423ERROR:  bad seg representation
424LINE 1: SELECT '.1'::seg AS seg;
425               ^
426DETAIL:  syntax error at or near "."
427SELECT '1..2.'::seg AS seg;
428ERROR:  bad seg representation
429LINE 1: SELECT '1..2.'::seg AS seg;
430               ^
431DETAIL:  syntax error at or near "."
432SELECT '1 e7'::seg AS seg;
433ERROR:  bad seg representation
434LINE 1: SELECT '1 e7'::seg AS seg;
435               ^
436DETAIL:  syntax error at or near "e"
437SELECT '1e700'::seg AS seg;
438ERROR:  "1e700" is out of range for type real
439LINE 1: SELECT '1e700'::seg AS seg;
440               ^
441--
442-- testing the  operators
443--
444-- equality/inequality:
445--
446SELECT '24 .. 33.20'::seg = '24 .. 33.20'::seg AS bool;
447 bool
448------
449 t
450(1 row)
451
452SELECT '24 .. 33.20'::seg = '24 .. 33.21'::seg AS bool;
453 bool
454------
455 f
456(1 row)
457
458SELECT '24 .. 33.20'::seg != '24 .. 33.20'::seg AS bool;
459 bool
460------
461 f
462(1 row)
463
464SELECT '24 .. 33.20'::seg != '24 .. 33.21'::seg AS bool;
465 bool
466------
467 t
468(1 row)
469
470-- overlap
471--
472SELECT '1'::seg && '1'::seg AS bool;
473 bool
474------
475 t
476(1 row)
477
478SELECT '1'::seg && '2'::seg AS bool;
479 bool
480------
481 f
482(1 row)
483
484SELECT '0 ..'::seg && '0 ..'::seg AS bool;
485 bool
486------
487 t
488(1 row)
489
490SELECT '0 .. 1'::seg && '0 .. 1'::seg AS bool;
491 bool
492------
493 t
494(1 row)
495
496SELECT '..0'::seg && '0..'::seg AS bool;
497 bool
498------
499 t
500(1 row)
501
502SELECT '-1 .. 0.1'::seg && '0 .. 1'::seg AS bool;
503 bool
504------
505 t
506(1 row)
507
508SELECT '-1 .. 0'::seg && '0 .. 1'::seg AS bool;
509 bool
510------
511 t
512(1 row)
513
514SELECT '-1 .. -0.0001'::seg && '0 .. 1'::seg AS bool;
515 bool
516------
517 f
518(1 row)
519
520SELECT '0 ..'::seg && '1'::seg AS bool;
521 bool
522------
523 t
524(1 row)
525
526SELECT '0 .. 1'::seg && '1'::seg AS bool;
527 bool
528------
529 t
530(1 row)
531
532SELECT '0 .. 1'::seg && '2'::seg AS bool;
533 bool
534------
535 f
536(1 row)
537
538SELECT '0 .. 2'::seg && '1'::seg AS bool;
539 bool
540------
541 t
542(1 row)
543
544SELECT '1'::seg && '0 .. 1'::seg AS bool;
545 bool
546------
547 t
548(1 row)
549
550SELECT '2'::seg && '0 .. 1'::seg AS bool;
551 bool
552------
553 f
554(1 row)
555
556SELECT '1'::seg && '0 .. 2'::seg AS bool;
557 bool
558------
559 t
560(1 row)
561
562-- overlap on the left
563--
564SELECT '1'::seg &< '0'::seg AS bool;
565 bool
566------
567 f
568(1 row)
569
570SELECT '1'::seg &< '1'::seg AS bool;
571 bool
572------
573 t
574(1 row)
575
576SELECT '1'::seg &< '2'::seg AS bool;
577 bool
578------
579 t
580(1 row)
581
582SELECT '0 .. 1'::seg &< '0'::seg AS bool;
583 bool
584------
585 f
586(1 row)
587
588SELECT '0 .. 1'::seg &< '1'::seg AS bool;
589 bool
590------
591 t
592(1 row)
593
594SELECT '0 .. 1'::seg &< '2'::seg AS bool;
595 bool
596------
597 t
598(1 row)
599
600SELECT '0 .. 1'::seg &< '0 .. 0.5'::seg AS bool;
601 bool
602------
603 f
604(1 row)
605
606SELECT '0 .. 1'::seg &< '0 .. 1'::seg AS bool;
607 bool
608------
609 t
610(1 row)
611
612SELECT '0 .. 1'::seg &< '0 .. 2'::seg AS bool;
613 bool
614------
615 t
616(1 row)
617
618SELECT '0 .. 1'::seg &< '1 .. 2'::seg AS bool;
619 bool
620------
621 t
622(1 row)
623
624SELECT '0 .. 1'::seg &< '2 .. 3'::seg AS bool;
625 bool
626------
627 t
628(1 row)
629
630-- overlap on the right
631--
632SELECT '0'::seg &> '1'::seg AS bool;
633 bool
634------
635 f
636(1 row)
637
638SELECT '1'::seg &> '1'::seg AS bool;
639 bool
640------
641 t
642(1 row)
643
644SELECT '2'::seg &> '1'::seg AS bool;
645 bool
646------
647 t
648(1 row)
649
650SELECT '0'::seg &> '0 .. 1'::seg AS bool;
651 bool
652------
653 t
654(1 row)
655
656SELECT '1'::seg &> '0 .. 1'::seg AS bool;
657 bool
658------
659 t
660(1 row)
661
662SELECT '2'::seg &> '0 .. 1'::seg AS bool;
663 bool
664------
665 t
666(1 row)
667
668SELECT '0 .. 0.5'::seg &> '0 .. 1'::seg AS bool;
669 bool
670------
671 t
672(1 row)
673
674SELECT '0 .. 1'::seg &> '0 .. 1'::seg AS bool;
675 bool
676------
677 t
678(1 row)
679
680SELECT '0 .. 2'::seg &> '0 .. 2'::seg AS bool;
681 bool
682------
683 t
684(1 row)
685
686SELECT '1 .. 2'::seg &> '0 .. 1'::seg AS bool;
687 bool
688------
689 t
690(1 row)
691
692SELECT '2 .. 3'::seg &> '0 .. 1'::seg AS bool;
693 bool
694------
695 t
696(1 row)
697
698-- left
699--
700SELECT '1'::seg << '0'::seg AS bool;
701 bool
702------
703 f
704(1 row)
705
706SELECT '1'::seg << '1'::seg AS bool;
707 bool
708------
709 f
710(1 row)
711
712SELECT '1'::seg << '2'::seg AS bool;
713 bool
714------
715 t
716(1 row)
717
718SELECT '0 .. 1'::seg << '0'::seg AS bool;
719 bool
720------
721 f
722(1 row)
723
724SELECT '0 .. 1'::seg << '1'::seg AS bool;
725 bool
726------
727 f
728(1 row)
729
730SELECT '0 .. 1'::seg << '2'::seg AS bool;
731 bool
732------
733 t
734(1 row)
735
736SELECT '0 .. 1'::seg << '0 .. 0.5'::seg AS bool;
737 bool
738------
739 f
740(1 row)
741
742SELECT '0 .. 1'::seg << '0 .. 1'::seg AS bool;
743 bool
744------
745 f
746(1 row)
747
748SELECT '0 .. 1'::seg << '0 .. 2'::seg AS bool;
749 bool
750------
751 f
752(1 row)
753
754SELECT '0 .. 1'::seg << '1 .. 2'::seg AS bool;
755 bool
756------
757 f
758(1 row)
759
760SELECT '0 .. 1'::seg << '2 .. 3'::seg AS bool;
761 bool
762------
763 t
764(1 row)
765
766-- right
767--
768SELECT '0'::seg >> '1'::seg AS bool;
769 bool
770------
771 f
772(1 row)
773
774SELECT '1'::seg >> '1'::seg AS bool;
775 bool
776------
777 f
778(1 row)
779
780SELECT '2'::seg >> '1'::seg AS bool;
781 bool
782------
783 t
784(1 row)
785
786SELECT '0'::seg >> '0 .. 1'::seg AS bool;
787 bool
788------
789 f
790(1 row)
791
792SELECT '1'::seg >> '0 .. 1'::seg AS bool;
793 bool
794------
795 f
796(1 row)
797
798SELECT '2'::seg >> '0 .. 1'::seg AS bool;
799 bool
800------
801 t
802(1 row)
803
804SELECT '0 .. 0.5'::seg >> '0 .. 1'::seg AS bool;
805 bool
806------
807 f
808(1 row)
809
810SELECT '0 .. 1'::seg >> '0 .. 1'::seg AS bool;
811 bool
812------
813 f
814(1 row)
815
816SELECT '0 .. 2'::seg >> '0 .. 2'::seg AS bool;
817 bool
818------
819 f
820(1 row)
821
822SELECT '1 .. 2'::seg >> '0 .. 1'::seg AS bool;
823 bool
824------
825 f
826(1 row)
827
828SELECT '2 .. 3'::seg >> '0 .. 1'::seg AS bool;
829 bool
830------
831 t
832(1 row)
833
834-- "contained in" (the left value belongs within the interval specified in the right value):
835--
836SELECT '0'::seg        <@ '0'::seg AS bool;
837 bool
838------
839 t
840(1 row)
841
842SELECT '0'::seg        <@ '0 ..'::seg AS bool;
843 bool
844------
845 t
846(1 row)
847
848SELECT '0'::seg        <@ '.. 0'::seg AS bool;
849 bool
850------
851 t
852(1 row)
853
854SELECT '0'::seg        <@ '-1 .. 1'::seg AS bool;
855 bool
856------
857 t
858(1 row)
859
860SELECT '0'::seg        <@ '-1 .. 1'::seg AS bool;
861 bool
862------
863 t
864(1 row)
865
866SELECT '-1'::seg       <@ '-1 .. 1'::seg AS bool;
867 bool
868------
869 t
870(1 row)
871
872SELECT '1'::seg        <@ '-1 .. 1'::seg AS bool;
873 bool
874------
875 t
876(1 row)
877
878SELECT '-1 .. 1'::seg  <@ '-1 .. 1'::seg AS bool;
879 bool
880------
881 t
882(1 row)
883
884-- "contains" (the left value contains the interval specified in the right value):
885--
886SELECT '0'::seg @> '0'::seg AS bool;
887 bool
888------
889 t
890(1 row)
891
892SELECT '0 .. '::seg <@ '0'::seg AS bool;
893 bool
894------
895 f
896(1 row)
897
898SELECT '.. 0'::seg <@ '0'::seg AS bool;
899 bool
900------
901 f
902(1 row)
903
904SELECT '-1 .. 1'::seg <@ '0'::seg AS bool;
905 bool
906------
907 f
908(1 row)
909
910SELECT '0'::seg <@ '-1 .. 1'::seg AS bool;
911 bool
912------
913 t
914(1 row)
915
916SELECT '-1'::seg <@ '-1 .. 1'::seg AS bool;
917 bool
918------
919 t
920(1 row)
921
922SELECT '1'::seg <@ '-1 .. 1'::seg AS bool;
923 bool
924------
925 t
926(1 row)
927
928-- Load some example data and build the index
929--
930CREATE TABLE test_seg (s seg);
931\copy test_seg from 'data/test_seg.data'
932CREATE INDEX test_seg_ix ON test_seg USING gist (s);
933SELECT count(*) FROM test_seg WHERE s @> '11..11.3';
934 count
935-------
936   143
937(1 row)
938
939-- Test sorting
940SELECT * FROM test_seg WHERE s @> '11..11.3' GROUP BY s;
941        s
942-----------------
943 .. 4.0e1
944 .. >8.2e1
945 .. 9.0e1
946 <1.0 .. >13.0
947 1.3 .. 12.0
948 2.0 .. 11.5
949 2.1 .. 11.8
950 <2.3 ..
951 >2.3 ..
952 2.4 .. 11.3
953 2.5 .. 11.5
954 2.5 .. 11.8
955 2.6 ..
956 2.7 .. 12.0
957 <3.0 ..
958 3 .. 5.8e1
959 3.1 .. 11.5
960 3.5 .. 11.5
961 3.5 .. 12.2
962 <4.0 .. >1.2e1
963 <4.0 ..
964 4 .. 1.2e1
965 4.0 .. 11.7
966 4.0 .. 12.5
967 4.0 .. 13.0
968 4.0 .. 6.0e1
969 4.0 ..
970 4.2 .. 11.5
971 4.2 .. 11.7
972 <4.5 .. >1.2e1
973 4.5 .. 11.5
974 4.5 .. <1.2e1
975 4.5 .. >1.2e1
976 4.5 .. 12.5
977 4.5 .. 1.15e2
978 4.7 .. 11.8
979 4.8 .. 11.5
980 4.8 .. 11.6
981 4.8 .. 12.5
982 4.8 ..
983 4.9 .. >1.2e1
984 4.9 ..
985 5 .. 11.5
986 5 .. 1.2e1
987 5 .. 3.0e1
988 5.0 .. 11.4
989 5.0 .. 11.5
990 5.0 .. 11.6
991 5.0 .. 11.7
992 5.0 .. 12.0
993 5.0 .. >12.0
994 5.0 .. >1.2e1
995 5.2 .. 11.5
996 5.2 .. >1.2e1
997 5.25 .. >1.2e1
998 5.3 .. 11.5
999 5.3 .. 1.3e1
1000 5.3 .. >9.0e1
1001 5.3 ..
1002 5.4 ..
1003 5.5 .. 11.5
1004 5.5 .. 11.7
1005 5.5 .. 1.2e1
1006 5.5 .. >1.2e1
1007 5.5 .. 12.5
1008 5.5 .. 13.5
1009 5.5 ..
1010 >5.5 ..
1011 5.7 ..
1012 5.9 ..
1013 6 .. 11.5
1014 6 .. >1.2e1
1015 6.0 .. 11.5
1016 6.0 .. 1.3e1
1017 >6.0 .. <11.5
1018 6.1 .. >1.2e1
1019 6.1 ..
1020 6.2 .. >11.5
1021 6.3 ..
1022 6.5 .. 11.5
1023 6.5 .. 12.0
1024 6.5 .. >12.0
1025 6.5 ..
1026 6.6 ..
1027 6.7 .. 11.5
1028 6.7 ..
1029 6.75 ..
1030 6.8 ..
1031 6.9 .. 12.2
1032 6.9 .. >9.0e1
1033 6.9 ..
1034 <7.0 .. >11.5
1035 7.0 .. 11.5
1036 7.0 .. >11.5
1037 7.0 ..
1038 >7.15 ..
1039 7.2 .. 13.5
1040 7.3 .. >9.0e1
1041 7.3 ..
1042 >7.3 ..
1043 7.4 .. 12.1
1044 7.4 ..
1045 7.5 .. 11.5
1046 7.5 .. 12.0
1047 7.5 ..
1048 7.7 .. 11.5
1049 7.7 ..
1050 7.75 ..
1051 8.0 .. 11.7
1052 8.0 .. 12.0
1053 8.0 .. >13.0
1054 8.2 ..
1055 8.3 ..
1056 8.5 .. >11.5
1057 8.5 .. 12.5
1058 8.5 ..
1059 8.6 .. >9.9e1
1060 8.7 .. 11.3
1061 8.7 .. 11.7
1062 8.9 .. 11.5
1063 9 .. >1.2e1
1064 9.0 .. 11.3
1065 9.0 .. 11.5
1066 9.0 .. 1.2e1
1067 9.0 ..
1068 9.2 .. 1.2e1
1069 9.4 .. 12.2
1070 <9.5 .. 1.2e1
1071 <9.5 .. >12.2
1072 9.5 ..
1073 9.6 .. 11.5
1074 9.7 .. 11.5
1075 9.7 .. >1.2e1
1076 9.8 .. >12.5
1077 <1.0e1 .. >11.6
1078 10.0 .. 11.5
1079 10.0 .. 12.5
1080 10.0 .. >12.5
1081 10.2 .. 11.8
1082 <10.5 .. 11.5
1083 10.5 .. 11.5
1084 10.5 .. <13.5
1085 10.7 .. 12.3
1086(143 rows)
1087
1088-- Test functions
1089SELECT seg_lower(s), seg_center(s), seg_upper(s)
1090FROM test_seg WHERE s @> '11.2..11.3' OR s IS NULL ORDER BY s;
1091 seg_lower | seg_center | seg_upper
1092-----------+------------+-----------
1093 -Infinity |  -Infinity |        40
1094 -Infinity |  -Infinity |        82
1095 -Infinity |  -Infinity |        90
1096         1 |          7 |        13
1097       1.3 |       6.65 |        12
1098         2 |       6.75 |      11.5
1099       2.1 |       6.95 |      11.8
1100       2.3 |   Infinity |  Infinity
1101       2.3 |   Infinity |  Infinity
1102       2.4 |       6.85 |      11.3
1103       2.5 |          7 |      11.5
1104       2.5 |       7.15 |      11.8
1105       2.6 |   Infinity |  Infinity
1106       2.7 |       7.35 |        12
1107         3 |   Infinity |  Infinity
1108         3 |       30.5 |        58
1109       3.1 |        7.3 |      11.5
1110       3.5 |        7.5 |      11.5
1111       3.5 |       7.85 |      12.2
1112         4 |          8 |        12
1113         4 |   Infinity |  Infinity
1114         4 |          8 |        12
1115         4 |       7.85 |      11.7
1116         4 |       8.25 |      12.5
1117         4 |        8.5 |        13
1118         4 |         32 |        60
1119         4 |   Infinity |  Infinity
1120       4.2 |       7.85 |      11.5
1121       4.2 |       7.95 |      11.7
1122       4.5 |       8.25 |        12
1123       4.5 |          8 |      11.5
1124       4.5 |       8.25 |        12
1125       4.5 |       8.25 |        12
1126       4.5 |        8.5 |      12.5
1127       4.5 |      59.75 |       115
1128       4.7 |       8.25 |      11.8
1129       4.8 |       8.15 |      11.5
1130       4.8 |        8.2 |      11.6
1131       4.8 |       8.65 |      12.5
1132       4.8 |   Infinity |  Infinity
1133       4.9 |       8.45 |        12
1134       4.9 |   Infinity |  Infinity
1135         5 |       8.25 |      11.5
1136         5 |        8.5 |        12
1137         5 |       17.5 |        30
1138         5 |        8.2 |      11.4
1139         5 |       8.25 |      11.5
1140         5 |        8.3 |      11.6
1141         5 |       8.35 |      11.7
1142         5 |        8.5 |        12
1143         5 |        8.5 |        12
1144         5 |        8.5 |        12
1145       5.2 |       8.35 |      11.5
1146       5.2 |        8.6 |        12
1147      5.25 |      8.625 |        12
1148       5.3 |        8.4 |      11.5
1149       5.3 |       9.15 |        13
1150       5.3 |      47.65 |        90
1151       5.3 |   Infinity |  Infinity
1152       5.4 |   Infinity |  Infinity
1153       5.5 |        8.5 |      11.5
1154       5.5 |        8.6 |      11.7
1155       5.5 |       8.75 |        12
1156       5.5 |       8.75 |        12
1157       5.5 |          9 |      12.5
1158       5.5 |        9.5 |      13.5
1159       5.5 |   Infinity |  Infinity
1160       5.5 |   Infinity |  Infinity
1161       5.7 |   Infinity |  Infinity
1162       5.9 |   Infinity |  Infinity
1163         6 |       8.75 |      11.5
1164         6 |          9 |        12
1165         6 |       8.75 |      11.5
1166         6 |        9.5 |        13
1167         6 |       8.75 |      11.5
1168       6.1 |       9.05 |        12
1169       6.1 |   Infinity |  Infinity
1170       6.2 |       8.85 |      11.5
1171       6.3 |   Infinity |  Infinity
1172       6.5 |          9 |      11.5
1173       6.5 |       9.25 |        12
1174       6.5 |       9.25 |        12
1175       6.5 |   Infinity |  Infinity
1176       6.6 |   Infinity |  Infinity
1177       6.7 |        9.1 |      11.5
1178       6.7 |   Infinity |  Infinity
1179      6.75 |   Infinity |  Infinity
1180       6.8 |   Infinity |  Infinity
1181       6.9 |       9.55 |      12.2
1182       6.9 |      48.45 |        90
1183       6.9 |   Infinity |  Infinity
1184         7 |       9.25 |      11.5
1185         7 |       9.25 |      11.5
1186         7 |       9.25 |      11.5
1187         7 |   Infinity |  Infinity
1188      7.15 |   Infinity |  Infinity
1189       7.2 |      10.35 |      13.5
1190       7.3 |      48.65 |        90
1191       7.3 |   Infinity |  Infinity
1192       7.3 |   Infinity |  Infinity
1193       7.4 |       9.75 |      12.1
1194       7.4 |   Infinity |  Infinity
1195       7.5 |        9.5 |      11.5
1196       7.5 |       9.75 |        12
1197       7.5 |   Infinity |  Infinity
1198       7.7 |        9.6 |      11.5
1199       7.7 |   Infinity |  Infinity
1200      7.75 |   Infinity |  Infinity
1201         8 |       9.85 |      11.7
1202         8 |         10 |        12
1203         8 |       10.5 |        13
1204       8.2 |   Infinity |  Infinity
1205       8.3 |   Infinity |  Infinity
1206       8.5 |         10 |      11.5
1207       8.5 |       10.5 |      12.5
1208       8.5 |   Infinity |  Infinity
1209       8.6 |       53.8 |        99
1210       8.7 |         10 |      11.3
1211       8.7 |       10.2 |      11.7
1212       8.9 |       10.2 |      11.5
1213         9 |       10.5 |        12
1214         9 |      10.15 |      11.3
1215         9 |      10.25 |      11.5
1216         9 |       10.5 |        12
1217         9 |   Infinity |  Infinity
1218       9.2 |       10.6 |        12
1219       9.4 |       10.8 |      12.2
1220       9.5 |      10.75 |        12
1221       9.5 |      10.85 |      12.2
1222       9.5 |   Infinity |  Infinity
1223       9.6 |      10.55 |      11.5
1224       9.7 |       10.6 |      11.5
1225       9.7 |      10.85 |        12
1226       9.8 |      11.15 |      12.5
1227        10 |       10.8 |      11.6
1228        10 |      10.75 |      11.5
1229        10 |      11.25 |      12.5
1230        10 |      11.25 |      12.5
1231      10.2 |         11 |      11.8
1232      10.5 |         11 |      11.5
1233      10.5 |         11 |      11.5
1234      10.5 |         12 |      13.5
1235      10.7 |       11.5 |      12.3
1236           |            |
1237(144 rows)
1238
1239