@@ -9,70 +9,141 @@ var ε = 1e-6;
99
1010suite . addBatch ( {
1111 "graticule" : {
12- topic : function ( ) {
13- return d3 . geo . graticule ( )
14- . extent ( [ [ - 90 , - 45 ] , [ 90 , 45 ] ] )
15- . step ( [ 45 , 45 ] )
16- . precision ( 3 ) ;
17- } ,
1812
1913 "extent" : {
20- "defaults to just inside –180°, -90° to +180°, +90°" : function ( ) {
21- assert . deepEqual ( d3 . geo . graticule ( ) . extent ( ) , [ [ - 180 + ε , - 90 + ε ] , [ 180 - ε , 90 - ε ] ] ) ;
14+ "sets minorExtent and majorExtent" : function ( ) {
15+ var graticule = d3 . geo . graticule ( ) . extent ( [ [ - 90 , - 45 ] , [ 90 , 45 ] ] ) ;
16+ assert . deepEqual ( graticule . minorExtent ( ) , [ [ - 90 , - 45 ] , [ 90 , 45 ] ] ) ;
17+ assert . deepEqual ( graticule . majorExtent ( ) , [ [ - 90 , - 45 ] , [ 90 , 45 ] ] ) ;
18+ } ,
19+ "gets minorExtent" : function ( ) {
20+ var graticule = d3 . geo . graticule ( ) . minorExtent ( [ [ - 90 , - 45 ] , [ 90 , 45 ] ] ) ;
21+ assert . deepEqual ( graticule . extent ( ) , [ [ - 90 , - 45 ] , [ 90 , 45 ] ] ) ;
22+ }
23+ } ,
24+
25+ "majorExtent" : {
26+ "default longitude ranges from 180°W (inclusive) to 180°E (exclusive)" : function ( ) {
27+ var extent = d3 . geo . graticule ( ) . majorExtent ( ) ;
28+ assert . equal ( extent [ 0 ] [ 0 ] , - 180 ) ;
29+ assert . equal ( extent [ 1 ] [ 0 ] , + 180 ) ;
30+ } ,
31+ "default latitude ranges from 90°S (exclusive) to 90°N (exclusive)" : function ( ) {
32+ var extent = d3 . geo . graticule ( ) . majorExtent ( ) ;
33+ assert . equal ( extent [ 0 ] [ 1 ] , - 90 + ε ) ;
34+ assert . equal ( extent [ 1 ] [ 1 ] , + 90 - ε ) ;
2235 } ,
2336 "coerces input values to numbers" : function ( ) {
24- var graticule = d3 . geo . graticule ( ) . extent ( [ [ "-90" , "-45" ] , [ "+90" , "+45" ] ] ) ,
25- extent = graticule . extent ( ) ;
37+ var graticule = d3 . geo . graticule ( ) . majorExtent ( [ [ "-90" , "-45" ] , [ "+90" , "+45" ] ] ) ,
38+ extent = graticule . majorExtent ( ) ;
2639 assert . strictEqual ( extent [ 0 ] [ 0 ] , - 90 ) ;
2740 assert . strictEqual ( extent [ 0 ] [ 1 ] , - 45 ) ;
2841 assert . strictEqual ( extent [ 1 ] [ 0 ] , + 90 ) ;
2942 assert . strictEqual ( extent [ 1 ] [ 1 ] , + 45 ) ;
3043 }
3144 } ,
3245
33- "returns a MultiLineString" : function ( graticule ) {
34- assert . deepEqual ( graticule ( ) , {
35- type : "MultiLineString" ,
36- coordinates : [
37- [ [ - 90 , - 45 ] , [ - 90 , - 42 ] , [ - 90 , - 39 ] , [ - 90 , - 36 ] , [ - 90 , - 33 ] , [ - 90 , - 30 ] , [ - 90 , - 27 ] , [ - 90 , - 24 ] , [ - 90 , - 21 ] , [ - 90 , - 18 ] , [ - 90 , - 15 ] , [ - 90 , - 12 ] , [ - 90 , - 9 ] , [ - 90 , - 6 ] , [ - 90 , - 3 ] , [ - 90 , 0 ] , [ - 90 , 3 ] , [ - 90 , 6 ] , [ - 90 , 9 ] , [ - 90 , 12 ] , [ - 90 , 15 ] , [ - 90 , 18 ] , [ - 90 , 21 ] , [ - 90 , 24 ] , [ - 90 , 27 ] , [ - 90 , 30 ] , [ - 90 , 33 ] , [ - 90 , 36 ] , [ - 90 , 39 ] , [ - 90 , 42 ] , [ - 90 , 45 ] ] ,
38- [ [ - 45 , - 45 ] , [ - 45 , - 42 ] , [ - 45 , - 39 ] , [ - 45 , - 36 ] , [ - 45 , - 33 ] , [ - 45 , - 30 ] , [ - 45 , - 27 ] , [ - 45 , - 24 ] , [ - 45 , - 21 ] , [ - 45 , - 18 ] , [ - 45 , - 15 ] , [ - 45 , - 12 ] , [ - 45 , - 9 ] , [ - 45 , - 6 ] , [ - 45 , - 3 ] , [ - 45 , 0 ] , [ - 45 , 3 ] , [ - 45 , 6 ] , [ - 45 , 9 ] , [ - 45 , 12 ] , [ - 45 , 15 ] , [ - 45 , 18 ] , [ - 45 , 21 ] , [ - 45 , 24 ] , [ - 45 , 27 ] , [ - 45 , 30 ] , [ - 45 , 33 ] , [ - 45 , 36 ] , [ - 45 , 39 ] , [ - 45 , 42 ] , [ - 45 , 45 ] ] ,
39- [ [ 0 , - 45 ] , [ 0 , - 42 ] , [ 0 , - 39 ] , [ 0 , - 36 ] , [ 0 , - 33 ] , [ 0 , - 30 ] , [ 0 , - 27 ] , [ 0 , - 24 ] , [ 0 , - 21 ] , [ 0 , - 18 ] , [ 0 , - 15 ] , [ 0 , - 12 ] , [ 0 , - 9 ] , [ 0 , - 6 ] , [ 0 , - 3 ] , [ 0 , 0 ] , [ 0 , 3 ] , [ 0 , 6 ] , [ 0 , 9 ] , [ 0 , 12 ] , [ 0 , 15 ] , [ 0 , 18 ] , [ 0 , 21 ] , [ 0 , 24 ] , [ 0 , 27 ] , [ 0 , 30 ] , [ 0 , 33 ] , [ 0 , 36 ] , [ 0 , 39 ] , [ 0 , 42 ] , [ 0 , 45 ] ] ,
40- [ [ 45 , - 45 ] , [ 45 , - 42 ] , [ 45 , - 39 ] , [ 45 , - 36 ] , [ 45 , - 33 ] , [ 45 , - 30 ] , [ 45 , - 27 ] , [ 45 , - 24 ] , [ 45 , - 21 ] , [ 45 , - 18 ] , [ 45 , - 15 ] , [ 45 , - 12 ] , [ 45 , - 9 ] , [ 45 , - 6 ] , [ 45 , - 3 ] , [ 45 , 0 ] , [ 45 , 3 ] , [ 45 , 6 ] , [ 45 , 9 ] , [ 45 , 12 ] , [ 45 , 15 ] , [ 45 , 18 ] , [ 45 , 21 ] , [ 45 , 24 ] , [ 45 , 27 ] , [ 45 , 30 ] , [ 45 , 33 ] , [ 45 , 36 ] , [ 45 , 39 ] , [ 45 , 42 ] , [ 45 , 45 ] ] ,
41- [ [ - 90 , - 45 ] , [ - 87 , - 45 ] , [ - 84 , - 45 ] , [ - 81 , - 45 ] , [ - 78 , - 45 ] , [ - 75 , - 45 ] , [ - 72 , - 45 ] , [ - 69 , - 45 ] , [ - 66 , - 45 ] , [ - 63 , - 45 ] , [ - 60 , - 45 ] , [ - 57 , - 45 ] , [ - 54 , - 45 ] , [ - 51 , - 45 ] , [ - 48 , - 45 ] , [ - 45 , - 45 ] , [ - 42 , - 45 ] , [ - 39 , - 45 ] , [ - 36 , - 45 ] , [ - 33 , - 45 ] , [ - 30 , - 45 ] , [ - 27 , - 45 ] , [ - 24 , - 45 ] , [ - 21 , - 45 ] , [ - 18 , - 45 ] , [ - 15 , - 45 ] , [ - 12 , - 45 ] , [ - 9 , - 45 ] , [ - 6 , - 45 ] , [ - 3 , - 45 ] , [ 0 , - 45 ] , [ 3 , - 45 ] , [ 6 , - 45 ] , [ 9 , - 45 ] , [ 12 , - 45 ] , [ 15 , - 45 ] , [ 18 , - 45 ] , [ 21 , - 45 ] , [ 24 , - 45 ] , [ 27 , - 45 ] , [ 30 , - 45 ] , [ 33 , - 45 ] , [ 36 , - 45 ] , [ 39 , - 45 ] , [ 42 , - 45 ] , [ 45 , - 45 ] , [ 48 , - 45 ] , [ 51 , - 45 ] , [ 54 , - 45 ] , [ 57 , - 45 ] , [ 60 , - 45 ] , [ 63 , - 45 ] , [ 66 , - 45 ] , [ 69 , - 45 ] , [ 72 , - 45 ] , [ 75 , - 45 ] , [ 78 , - 45 ] , [ 81 , - 45 ] , [ 84 , - 45 ] , [ 87 , - 45 ] , [ 90 , - 45 ] ] ,
42- [ [ - 90 , 0 ] , [ - 87 , 0 ] , [ - 84 , 0 ] , [ - 81 , 0 ] , [ - 78 , 0 ] , [ - 75 , 0 ] , [ - 72 , 0 ] , [ - 69 , 0 ] , [ - 66 , 0 ] , [ - 63 , 0 ] , [ - 60 , 0 ] , [ - 57 , 0 ] , [ - 54 , 0 ] , [ - 51 , 0 ] , [ - 48 , 0 ] , [ - 45 , 0 ] , [ - 42 , 0 ] , [ - 39 , 0 ] , [ - 36 , 0 ] , [ - 33 , 0 ] , [ - 30 , 0 ] , [ - 27 , 0 ] , [ - 24 , 0 ] , [ - 21 , 0 ] , [ - 18 , 0 ] , [ - 15 , 0 ] , [ - 12 , 0 ] , [ - 9 , 0 ] , [ - 6 , 0 ] , [ - 3 , 0 ] , [ 0 , 0 ] , [ 3 , 0 ] , [ 6 , 0 ] , [ 9 , 0 ] , [ 12 , 0 ] , [ 15 , 0 ] , [ 18 , 0 ] , [ 21 , 0 ] , [ 24 , 0 ] , [ 27 , 0 ] , [ 30 , 0 ] , [ 33 , 0 ] , [ 36 , 0 ] , [ 39 , 0 ] , [ 42 , 0 ] , [ 45 , 0 ] , [ 48 , 0 ] , [ 51 , 0 ] , [ 54 , 0 ] , [ 57 , 0 ] , [ 60 , 0 ] , [ 63 , 0 ] , [ 66 , 0 ] , [ 69 , 0 ] , [ 72 , 0 ] , [ 75 , 0 ] , [ 78 , 0 ] , [ 81 , 0 ] , [ 84 , 0 ] , [ 87 , 0 ] , [ 90 , 0 ] ]
43- ]
44- } ) ;
46+ "minorExtent" : {
47+ "default longitude ranges from 180°W (inclusive) to 180°E (exclusive)" : function ( ) {
48+ var extent = d3 . geo . graticule ( ) . minorExtent ( ) ;
49+ assert . equal ( extent [ 0 ] [ 0 ] , - 180 ) ;
50+ assert . equal ( extent [ 1 ] [ 0 ] , + 180 ) ;
51+ } ,
52+ "default latitude ranges from 80°S (inclusive) to 80°N (inclusive)" : function ( ) {
53+ var extent = d3 . geo . graticule ( ) . minorExtent ( ) ;
54+ assert . equal ( extent [ 0 ] [ 1 ] , - 80 - ε ) ;
55+ assert . equal ( extent [ 1 ] [ 1 ] , + 80 + ε ) ;
56+ } ,
57+ "coerces input values to numbers" : function ( ) {
58+ var graticule = d3 . geo . graticule ( ) . minorExtent ( [ [ "-90" , "-45" ] , [ "+90" , "+45" ] ] ) ,
59+ extent = graticule . minorExtent ( ) ;
60+ assert . strictEqual ( extent [ 0 ] [ 0 ] , - 90 ) ;
61+ assert . strictEqual ( extent [ 0 ] [ 1 ] , - 45 ) ;
62+ assert . strictEqual ( extent [ 1 ] [ 0 ] , + 90 ) ;
63+ assert . strictEqual ( extent [ 1 ] [ 1 ] , + 45 ) ;
64+ }
4565 } ,
4666
4767 "step" : {
48- "defaults to 22.5°, 22.5°" : function ( graticule ) {
49- assert . deepEqual ( d3 . geo . graticule ( ) . step ( ) , [ 22.5 , 22.5 ] ) ;
68+ "sets minorStep and majorStep" : function ( ) {
69+ var graticule = d3 . geo . graticule ( ) . step ( [ 22.5 , 22.5 ] ) ;
70+ assert . deepEqual ( graticule . minorStep ( ) , [ 22.5 , 22.5 ] ) ;
71+ assert . deepEqual ( graticule . majorStep ( ) , [ 22.5 , 22.5 ] ) ;
72+ } ,
73+ "gets minorStep" : function ( ) {
74+ var graticule = d3 . geo . graticule ( ) . minorStep ( [ 22.5 , 22.5 ] ) ;
75+ assert . deepEqual ( graticule . step ( ) , [ 22.5 , 22.5 ] ) ;
76+ }
77+ } ,
78+
79+ "minorStep" : {
80+ "defaults to 10°, 10°" : function ( ) {
81+ assert . deepEqual ( d3 . geo . graticule ( ) . minorStep ( ) , [ 10 , 10 ] ) ;
5082 } ,
5183 "coerces input values to numbers" : function ( ) {
52- var graticule = d3 . geo . graticule ( ) . step ( [ "45" , "11.25" ] ) ,
53- step = graticule . step ( ) ;
84+ var graticule = d3 . geo . graticule ( ) . minorStep ( [ "45" , "11.25" ] ) ,
85+ step = graticule . minorStep ( ) ;
5486 assert . strictEqual ( step [ 0 ] , 45 ) ;
5587 assert . strictEqual ( step [ 1 ] , 11.25 ) ;
5688 }
5789 } ,
5890
59- "outline" : {
60- "returns a Polygon" : function ( graticule ) {
61- assert . deepEqual ( graticule . outline ( ) , {
62- type : "Polygon" ,
63- coordinates : [ [
64- [ - 90 , - 45 ] , [ - 90 , - 42 ] , [ - 90 , - 39 ] , [ - 90 , - 36 ] , [ - 90 , - 33 ] , [ - 90 , - 30 ] , [ - 90 , - 27 ] , [ - 90 , - 24 ] , [ - 90 , - 21 ] , [ - 90 , - 18 ] , [ - 90 , - 15 ] , [ - 90 , - 12 ] , [ - 90 , - 9 ] , [ - 90 , - 6 ] , [ - 90 , - 3 ] , [ - 90 , 0 ] , [ - 90 , 3 ] , [ - 90 , 6 ] , [ - 90 , 9 ] , [ - 90 , 12 ] , [ - 90 , 15 ] , [ - 90 , 18 ] , [ - 90 , 21 ] , [ - 90 , 24 ] , [ - 90 , 27 ] , [ - 90 , 30 ] , [ - 90 , 33 ] , [ - 90 , 36 ] , [ - 90 , 39 ] , [ - 90 , 42 ] , [ - 90 , 45 ] ,
65- [ - 87 , 45 ] , [ - 84 , 45 ] , [ - 81 , 45 ] , [ - 78 , 45 ] , [ - 75 , 45 ] , [ - 72 , 45 ] , [ - 69 , 45 ] , [ - 66 , 45 ] , [ - 63 , 45 ] , [ - 60 , 45 ] , [ - 57 , 45 ] , [ - 54 , 45 ] , [ - 51 , 45 ] , [ - 48 , 45 ] , [ - 45 , 45 ] , [ - 42 , 45 ] , [ - 39 , 45 ] , [ - 36 , 45 ] , [ - 33 , 45 ] , [ - 30 , 45 ] , [ - 27 , 45 ] , [ - 24 , 45 ] , [ - 21 , 45 ] , [ - 18 , 45 ] , [ - 15 , 45 ] , [ - 12 , 45 ] , [ - 9 , 45 ] , [ - 6 , 45 ] , [ - 3 , 45 ] , [ 0 , 45 ] , [ 3 , 45 ] , [ 6 , 45 ] , [ 9 , 45 ] , [ 12 , 45 ] , [ 15 , 45 ] , [ 18 , 45 ] , [ 21 , 45 ] , [ 24 , 45 ] , [ 27 , 45 ] , [ 30 , 45 ] , [ 33 , 45 ] , [ 36 , 45 ] , [ 39 , 45 ] , [ 42 , 45 ] , [ 45 , 45 ] , [ 48 , 45 ] , [ 51 , 45 ] , [ 54 , 45 ] , [ 57 , 45 ] , [ 60 , 45 ] , [ 63 , 45 ] , [ 66 , 45 ] , [ 69 , 45 ] , [ 72 , 45 ] , [ 75 , 45 ] , [ 78 , 45 ] , [ 81 , 45 ] , [ 84 , 45 ] , [ 87 , 45 ] , [ 90 , 45 ] ,
66- [ 90 , 42 ] , [ 90 , 39 ] , [ 90 , 36 ] , [ 90 , 33 ] , [ 90 , 30 ] , [ 90 , 27 ] , [ 90 , 24 ] , [ 90 , 21 ] , [ 90 , 18 ] , [ 90 , 15 ] , [ 90 , 12 ] , [ 90 , 9 ] , [ 90 , 6 ] , [ 90 , 3 ] , [ 90 , 0 ] , [ 90 , - 3 ] , [ 90 , - 6 ] , [ 90 , - 9 ] , [ 90 , - 12 ] , [ 90 , - 15 ] , [ 90 , - 18 ] , [ 90 , - 21 ] , [ 90 , - 24 ] , [ 90 , - 27 ] , [ 90 , - 30 ] , [ 90 , - 33 ] , [ 90 , - 36 ] , [ 90 , - 39 ] , [ 90 , - 42 ] , [ 90 , - 45 ] ,
67- [ 87 , - 45 ] , [ 84 , - 45 ] , [ 81 , - 45 ] , [ 78 , - 45 ] , [ 75 , - 45 ] , [ 72 , - 45 ] , [ 69 , - 45 ] , [ 66 , - 45 ] , [ 63 , - 45 ] , [ 60 , - 45 ] , [ 57 , - 45 ] , [ 54 , - 45 ] , [ 51 , - 45 ] , [ 48 , - 45 ] , [ 45 , - 45 ] , [ 42 , - 45 ] , [ 39 , - 45 ] , [ 36 , - 45 ] , [ 33 , - 45 ] , [ 30 , - 45 ] , [ 27 , - 45 ] , [ 24 , - 45 ] , [ 21 , - 45 ] , [ 18 , - 45 ] , [ 15 , - 45 ] , [ 12 , - 45 ] , [ 9 , - 45 ] , [ 6 , - 45 ] , [ 3 , - 45 ] , [ 0 , - 45 ] , [ - 3 , - 45 ] , [ - 6 , - 45 ] , [ - 9 , - 45 ] , [ - 12 , - 45 ] , [ - 15 , - 45 ] , [ - 18 , - 45 ] , [ - 21 , - 45 ] , [ - 24 , - 45 ] , [ - 27 , - 45 ] , [ - 30 , - 45 ] , [ - 33 , - 45 ] , [ - 36 , - 45 ] , [ - 39 , - 45 ] , [ - 42 , - 45 ] , [ - 45 , - 45 ] , [ - 48 , - 45 ] , [ - 51 , - 45 ] , [ - 54 , - 45 ] , [ - 57 , - 45 ] , [ - 60 , - 45 ] , [ - 63 , - 45 ] , [ - 66 , - 45 ] , [ - 69 , - 45 ] , [ - 72 , - 45 ] , [ - 75 , - 45 ] , [ - 78 , - 45 ] , [ - 81 , - 45 ] , [ - 84 , - 45 ] , [ - 87 , - 45 ] , [ - 90 , - 45 ]
68- ] ]
69- } ) ;
91+ "majorStep" : {
92+ "defaults to 90°, 360°" : function ( ) {
93+ assert . deepEqual ( d3 . geo . graticule ( ) . majorStep ( ) , [ 90 , 360 ] ) ;
94+ } ,
95+ "coerces input values to numbers" : function ( ) {
96+ var graticule = d3 . geo . graticule ( ) . majorStep ( [ "45" , "11.25" ] ) ,
97+ step = graticule . majorStep ( ) ;
98+ assert . strictEqual ( step [ 0 ] , 45 ) ;
99+ assert . strictEqual ( step [ 1 ] , 11.25 ) ;
70100 }
71101 } ,
72102
73- "line" : {
74- "returns an array of LineStrings" : function ( graticule ) {
75- assert . deepEqual ( graticule . lines ( ) , [
103+ "lines" : {
104+ "default longitude ranges from 180°W (inclusive) to 180°E (exclusive)" : function ( ) {
105+ var lines = d3 . geo . graticule ( ) . lines ( )
106+ . filter ( function ( line ) { return line . coordinates [ 0 ] [ 0 ] === line . coordinates [ 1 ] [ 0 ] ; } )
107+ . sort ( function ( a , b ) { return a . coordinates [ 0 ] [ 0 ] - b . coordinates [ 0 ] [ 0 ] ; } ) ;
108+ assert . equal ( lines [ 0 ] . coordinates [ 0 ] [ 0 ] , - 180 ) ;
109+ assert . equal ( lines [ lines . length - 1 ] . coordinates [ 0 ] [ 0 ] , + 170 ) ;
110+ } ,
111+ "default latitude ranges from 90°S (exclusive) to 90°N (exclusive)" : function ( ) {
112+ var lines = d3 . geo . graticule ( ) . lines ( )
113+ . filter ( function ( line ) { return line . coordinates [ 0 ] [ 1 ] === line . coordinates [ 1 ] [ 1 ] ; } )
114+ . sort ( function ( a , b ) { return a . coordinates [ 0 ] [ 1 ] - b . coordinates [ 0 ] [ 1 ] ; } ) ;
115+ assert . equal ( lines [ 0 ] . coordinates [ 0 ] [ 1 ] , - 80 ) ;
116+ assert . equal ( lines [ lines . length - 1 ] . coordinates [ 0 ] [ 1 ] , + 80 ) ;
117+ } ,
118+ "default minor longitude lines extend from 80°S to 80°N" : function ( ) {
119+ var lines = d3 . geo . graticule ( ) . lines ( )
120+ . filter ( function ( line ) { return line . coordinates [ 0 ] [ 0 ] === line . coordinates [ 1 ] [ 0 ] ; } )
121+ . filter ( function ( line ) { return Math . abs ( line . coordinates [ 0 ] [ 0 ] % 90 ) > ε ; } ) ;
122+ lines . forEach ( function ( line ) {
123+ assert . deepEqual ( d3 . extent ( line . coordinates , function ( p ) { return p [ 1 ] ; } ) , [ - 80 - ε , + 80 + ε ] ) ;
124+ } ) ;
125+ } ,
126+ "default major longitude lines extend from 90°S to 90°N" : function ( ) {
127+ var lines = d3 . geo . graticule ( ) . lines ( )
128+ . filter ( function ( line ) { return line . coordinates [ 0 ] [ 0 ] === line . coordinates [ 1 ] [ 0 ] ; } )
129+ . filter ( function ( line ) { return Math . abs ( line . coordinates [ 0 ] [ 0 ] % 90 ) < ε ; } ) ;
130+ lines . forEach ( function ( line ) {
131+ assert . deepEqual ( d3 . extent ( line . coordinates , function ( p ) { return p [ 1 ] ; } ) , [ - 90 + ε , + 90 - ε ] ) ;
132+ } ) ;
133+ } ,
134+ "default latitude lines extend from 180°W to 180°E" : function ( ) {
135+ var lines = d3 . geo . graticule ( ) . lines ( )
136+ . filter ( function ( line ) { return line . coordinates [ 0 ] [ 1 ] === line . coordinates [ 1 ] [ 1 ] ; } ) ;
137+ lines . forEach ( function ( line ) {
138+ assert . deepEqual ( d3 . extent ( line . coordinates , function ( p ) { return p [ 0 ] ; } ) , [ - 180 , + 180 ] ) ;
139+ } ) ;
140+ } ,
141+ "returns an array of LineStrings" : function ( ) {
142+ assert . deepEqual ( d3 . geo . graticule ( )
143+ . extent ( [ [ - 90 , - 45 ] , [ 90 , 45 ] ] )
144+ . step ( [ 45 , 45 ] )
145+ . precision ( 3 )
146+ . lines ( ) , [
76147 { type : "LineString" , coordinates : [ [ - 90 , - 45 ] , [ - 90 , - 42 ] , [ - 90 , - 39 ] , [ - 90 , - 36 ] , [ - 90 , - 33 ] , [ - 90 , - 30 ] , [ - 90 , - 27 ] , [ - 90 , - 24 ] , [ - 90 , - 21 ] , [ - 90 , - 18 ] , [ - 90 , - 15 ] , [ - 90 , - 12 ] , [ - 90 , - 9 ] , [ - 90 , - 6 ] , [ - 90 , - 3 ] , [ - 90 , 0 ] , [ - 90 , 3 ] , [ - 90 , 6 ] , [ - 90 , 9 ] , [ - 90 , 12 ] , [ - 90 , 15 ] , [ - 90 , 18 ] , [ - 90 , 21 ] , [ - 90 , 24 ] , [ - 90 , 27 ] , [ - 90 , 30 ] , [ - 90 , 33 ] , [ - 90 , 36 ] , [ - 90 , 39 ] , [ - 90 , 42 ] , [ - 90 , 45 ] ] } ,
77148 { type : "LineString" , coordinates : [ [ - 45 , - 45 ] , [ - 45 , - 42 ] , [ - 45 , - 39 ] , [ - 45 , - 36 ] , [ - 45 , - 33 ] , [ - 45 , - 30 ] , [ - 45 , - 27 ] , [ - 45 , - 24 ] , [ - 45 , - 21 ] , [ - 45 , - 18 ] , [ - 45 , - 15 ] , [ - 45 , - 12 ] , [ - 45 , - 9 ] , [ - 45 , - 6 ] , [ - 45 , - 3 ] , [ - 45 , 0 ] , [ - 45 , 3 ] , [ - 45 , 6 ] , [ - 45 , 9 ] , [ - 45 , 12 ] , [ - 45 , 15 ] , [ - 45 , 18 ] , [ - 45 , 21 ] , [ - 45 , 24 ] , [ - 45 , 27 ] , [ - 45 , 30 ] , [ - 45 , 33 ] , [ - 45 , 36 ] , [ - 45 , 39 ] , [ - 45 , 42 ] , [ - 45 , 45 ] ] } ,
78149 { type : "LineString" , coordinates : [ [ 0 , - 45 ] , [ 0 , - 42 ] , [ 0 , - 39 ] , [ 0 , - 36 ] , [ 0 , - 33 ] , [ 0 , - 30 ] , [ 0 , - 27 ] , [ 0 , - 24 ] , [ 0 , - 21 ] , [ 0 , - 18 ] , [ 0 , - 15 ] , [ 0 , - 12 ] , [ 0 , - 9 ] , [ 0 , - 6 ] , [ 0 , - 3 ] , [ 0 , 0 ] , [ 0 , 3 ] , [ 0 , 6 ] , [ 0 , 9 ] , [ 0 , 12 ] , [ 0 , 15 ] , [ 0 , 18 ] , [ 0 , 21 ] , [ 0 , 24 ] , [ 0 , 27 ] , [ 0 , 30 ] , [ 0 , 33 ] , [ 0 , 36 ] , [ 0 , 39 ] , [ 0 , 42 ] , [ 0 , 45 ] ] } ,
@@ -81,6 +152,34 @@ suite.addBatch({
81152 { type : "LineString" , coordinates : [ [ - 90 , 0 ] , [ - 87 , 0 ] , [ - 84 , 0 ] , [ - 81 , 0 ] , [ - 78 , 0 ] , [ - 75 , 0 ] , [ - 72 , 0 ] , [ - 69 , 0 ] , [ - 66 , 0 ] , [ - 63 , 0 ] , [ - 60 , 0 ] , [ - 57 , 0 ] , [ - 54 , 0 ] , [ - 51 , 0 ] , [ - 48 , 0 ] , [ - 45 , 0 ] , [ - 42 , 0 ] , [ - 39 , 0 ] , [ - 36 , 0 ] , [ - 33 , 0 ] , [ - 30 , 0 ] , [ - 27 , 0 ] , [ - 24 , 0 ] , [ - 21 , 0 ] , [ - 18 , 0 ] , [ - 15 , 0 ] , [ - 12 , 0 ] , [ - 9 , 0 ] , [ - 6 , 0 ] , [ - 3 , 0 ] , [ 0 , 0 ] , [ 3 , 0 ] , [ 6 , 0 ] , [ 9 , 0 ] , [ 12 , 0 ] , [ 15 , 0 ] , [ 18 , 0 ] , [ 21 , 0 ] , [ 24 , 0 ] , [ 27 , 0 ] , [ 30 , 0 ] , [ 33 , 0 ] , [ 36 , 0 ] , [ 39 , 0 ] , [ 42 , 0 ] , [ 45 , 0 ] , [ 48 , 0 ] , [ 51 , 0 ] , [ 54 , 0 ] , [ 57 , 0 ] , [ 60 , 0 ] , [ 63 , 0 ] , [ 66 , 0 ] , [ 69 , 0 ] , [ 72 , 0 ] , [ 75 , 0 ] , [ 78 , 0 ] , [ 81 , 0 ] , [ 84 , 0 ] , [ 87 , 0 ] , [ 90 , 0 ] ] }
82153 ] ) ;
83154 }
155+ } ,
156+
157+ "returns a MultiLineString of all lines" : function ( ) {
158+ var graticule = d3 . geo . graticule ( )
159+ . extent ( [ [ - 90 , - 45 ] , [ 90 , 45 ] ] )
160+ . step ( [ 45 , 45 ] )
161+ . precision ( 3 ) ;
162+ assert . deepEqual ( graticule ( ) , {
163+ type : "MultiLineString" ,
164+ coordinates : graticule . lines ( ) . map ( function ( line ) { return line . coordinates ; } )
165+ } ) ;
166+ } ,
167+
168+ "outline" : {
169+ "returns a Polygon encompassing the major extent" : function ( ) {
170+ assert . deepEqual ( d3 . geo . graticule ( )
171+ . majorExtent ( [ [ - 90 , - 45 ] , [ 90 , 45 ] ] )
172+ . precision ( 3 )
173+ . outline ( ) , {
174+ type : "Polygon" ,
175+ coordinates : [ [
176+ [ - 90 , - 45 ] , [ - 90 , - 42 ] , [ - 90 , - 39 ] , [ - 90 , - 36 ] , [ - 90 , - 33 ] , [ - 90 , - 30 ] , [ - 90 , - 27 ] , [ - 90 , - 24 ] , [ - 90 , - 21 ] , [ - 90 , - 18 ] , [ - 90 , - 15 ] , [ - 90 , - 12 ] , [ - 90 , - 9 ] , [ - 90 , - 6 ] , [ - 90 , - 3 ] , [ - 90 , 0 ] , [ - 90 , 3 ] , [ - 90 , 6 ] , [ - 90 , 9 ] , [ - 90 , 12 ] , [ - 90 , 15 ] , [ - 90 , 18 ] , [ - 90 , 21 ] , [ - 90 , 24 ] , [ - 90 , 27 ] , [ - 90 , 30 ] , [ - 90 , 33 ] , [ - 90 , 36 ] , [ - 90 , 39 ] , [ - 90 , 42 ] , [ - 90 , 45 ] ,
177+ [ - 87 , 45 ] , [ - 84 , 45 ] , [ - 81 , 45 ] , [ - 78 , 45 ] , [ - 75 , 45 ] , [ - 72 , 45 ] , [ - 69 , 45 ] , [ - 66 , 45 ] , [ - 63 , 45 ] , [ - 60 , 45 ] , [ - 57 , 45 ] , [ - 54 , 45 ] , [ - 51 , 45 ] , [ - 48 , 45 ] , [ - 45 , 45 ] , [ - 42 , 45 ] , [ - 39 , 45 ] , [ - 36 , 45 ] , [ - 33 , 45 ] , [ - 30 , 45 ] , [ - 27 , 45 ] , [ - 24 , 45 ] , [ - 21 , 45 ] , [ - 18 , 45 ] , [ - 15 , 45 ] , [ - 12 , 45 ] , [ - 9 , 45 ] , [ - 6 , 45 ] , [ - 3 , 45 ] , [ 0 , 45 ] , [ 3 , 45 ] , [ 6 , 45 ] , [ 9 , 45 ] , [ 12 , 45 ] , [ 15 , 45 ] , [ 18 , 45 ] , [ 21 , 45 ] , [ 24 , 45 ] , [ 27 , 45 ] , [ 30 , 45 ] , [ 33 , 45 ] , [ 36 , 45 ] , [ 39 , 45 ] , [ 42 , 45 ] , [ 45 , 45 ] , [ 48 , 45 ] , [ 51 , 45 ] , [ 54 , 45 ] , [ 57 , 45 ] , [ 60 , 45 ] , [ 63 , 45 ] , [ 66 , 45 ] , [ 69 , 45 ] , [ 72 , 45 ] , [ 75 , 45 ] , [ 78 , 45 ] , [ 81 , 45 ] , [ 84 , 45 ] , [ 87 , 45 ] , [ 90 , 45 ] ,
178+ [ 90 , 42 ] , [ 90 , 39 ] , [ 90 , 36 ] , [ 90 , 33 ] , [ 90 , 30 ] , [ 90 , 27 ] , [ 90 , 24 ] , [ 90 , 21 ] , [ 90 , 18 ] , [ 90 , 15 ] , [ 90 , 12 ] , [ 90 , 9 ] , [ 90 , 6 ] , [ 90 , 3 ] , [ 90 , 0 ] , [ 90 , - 3 ] , [ 90 , - 6 ] , [ 90 , - 9 ] , [ 90 , - 12 ] , [ 90 , - 15 ] , [ 90 , - 18 ] , [ 90 , - 21 ] , [ 90 , - 24 ] , [ 90 , - 27 ] , [ 90 , - 30 ] , [ 90 , - 33 ] , [ 90 , - 36 ] , [ 90 , - 39 ] , [ 90 , - 42 ] , [ 90 , - 45 ] ,
179+ [ 87 , - 45 ] , [ 84 , - 45 ] , [ 81 , - 45 ] , [ 78 , - 45 ] , [ 75 , - 45 ] , [ 72 , - 45 ] , [ 69 , - 45 ] , [ 66 , - 45 ] , [ 63 , - 45 ] , [ 60 , - 45 ] , [ 57 , - 45 ] , [ 54 , - 45 ] , [ 51 , - 45 ] , [ 48 , - 45 ] , [ 45 , - 45 ] , [ 42 , - 45 ] , [ 39 , - 45 ] , [ 36 , - 45 ] , [ 33 , - 45 ] , [ 30 , - 45 ] , [ 27 , - 45 ] , [ 24 , - 45 ] , [ 21 , - 45 ] , [ 18 , - 45 ] , [ 15 , - 45 ] , [ 12 , - 45 ] , [ 9 , - 45 ] , [ 6 , - 45 ] , [ 3 , - 45 ] , [ 0 , - 45 ] , [ - 3 , - 45 ] , [ - 6 , - 45 ] , [ - 9 , - 45 ] , [ - 12 , - 45 ] , [ - 15 , - 45 ] , [ - 18 , - 45 ] , [ - 21 , - 45 ] , [ - 24 , - 45 ] , [ - 27 , - 45 ] , [ - 30 , - 45 ] , [ - 33 , - 45 ] , [ - 36 , - 45 ] , [ - 39 , - 45 ] , [ - 42 , - 45 ] , [ - 45 , - 45 ] , [ - 48 , - 45 ] , [ - 51 , - 45 ] , [ - 54 , - 45 ] , [ - 57 , - 45 ] , [ - 60 , - 45 ] , [ - 63 , - 45 ] , [ - 66 , - 45 ] , [ - 69 , - 45 ] , [ - 72 , - 45 ] , [ - 75 , - 45 ] , [ - 78 , - 45 ] , [ - 81 , - 45 ] , [ - 84 , - 45 ] , [ - 87 , - 45 ] , [ - 90 , - 45 ]
180+ ] ]
181+ } ) ;
182+ }
84183 }
85184 }
86185} ) ;
0 commit comments