@@ -120,7 +120,22 @@ describe('contour defaults', function() {
120120describe ( 'contour makeColorMap' , function ( ) {
121121 'use strict' ;
122122
123- it ( 'should make correct color map function (\'fill\' coloring case)' , function ( ) {
123+ function _makeColorMap ( trace ) {
124+ trace . type = 'contour' ;
125+ if ( trace . z === undefined ) {
126+ trace . z = [ [ 0 ] ] ; // dummy data for calc to work properly
127+ }
128+ var gd = { data : [ trace ] } ;
129+ supplyAllDefaults ( gd ) ;
130+
131+ var fullTrace = gd . _fullData [ 0 ] ;
132+ fullTrace . _extremes = { } ;
133+ Contour . calc ( gd , fullTrace ) ;
134+
135+ return makeColorMap ( fullTrace ) ;
136+ }
137+
138+ it ( 'should make correct color map function (\'fill\' coloring case 1)' , function ( ) {
124139 var trace = {
125140 contours : {
126141 coloring : 'fill' ,
@@ -141,7 +156,7 @@ describe('contour makeColorMap', function() {
141156 ] ]
142157 } ;
143158
144- var colorMap = makeColorMap ( trace ) ;
159+ var colorMap = _makeColorMap ( trace ) ;
145160
146161 expect ( colorMap . domain ( ) ) . toEqual (
147162 [ - 1.75 , - 0.75 , 0.25 , 1.25 , 2.25 ]
@@ -151,6 +166,56 @@ describe('contour makeColorMap', function() {
151166 'rgb(12,51,131)' , 'rgb(10,136,186)' , 'rgb(242,211,56)' ,
152167 'rgb(242,143,56)' , 'rgb(217,30,30)'
153168 ] ) ;
169+
170+ // Set lower/upper bounds of the color domain via zmin/zmax
171+ trace . zmin = - 5 ;
172+ trace . zmax = 5 ;
173+
174+ colorMap = _makeColorMap ( trace ) ;
175+
176+ expect ( colorMap . domain ( ) ) . toEqual (
177+ [ - 5 , - 1.75 , - 0.75 , 0.25 , 1.25 , 2.25 , 5 ]
178+ ) ;
179+
180+ expect ( colorMap . range ( ) ) . toEqual ( [
181+ 'rgb(12,51,131)' , 'rgb(12,51,131)' , 'rgb(10,136,186)' , 'rgb(242,211,56)' ,
182+ 'rgb(242,143,56)' , 'rgb(217,30,30)' , 'rgb(217,30,30)'
183+ ] ) ;
184+ } ) ;
185+
186+ it ( 'should make correct color map function (\'fill\' coloring case 2)' , function ( ) {
187+ var trace = {
188+ z : [ [ 0 , 1 ] ] ,
189+ autocontour : true ,
190+ contours : {
191+ coloring : 'fill'
192+ } ,
193+ colorscale : colorScales . RdBu ,
194+ } ;
195+
196+ var colorMap = _makeColorMap ( trace ) ;
197+ var domain = colorMap . domain ( ) ;
198+ var range = colorMap . range ( ) ;
199+
200+ expect ( domain [ 0 ] ) . toBe ( 0 ) ;
201+ expect ( domain [ domain . length - 1 ] ) . toBe ( 1 ) ;
202+
203+ expect ( range [ 0 ] ) . toBe ( 'rgb(5,10,172)' ) ;
204+ expect ( range [ range . length - 1 ] ) . toBe ( 'rgb(178,10,28)' ) ;
205+
206+ // Set lower/upper bounds of the color domain via zmin/zmax
207+ trace . zmin = - 1 ;
208+ trace . zmax = 2 ;
209+
210+ colorMap = _makeColorMap ( trace ) ;
211+ domain = colorMap . domain ( ) ;
212+ range = colorMap . range ( ) ;
213+
214+ expect ( domain [ 0 ] ) . toBe ( trace . zmin ) ;
215+ expect ( domain [ domain . length - 1 ] ) . toBe ( trace . zmax ) ;
216+
217+ expect ( range [ 0 ] ) . toBe ( 'rgb(5,10,172)' ) ;
218+ expect ( range [ range . length - 1 ] ) . toBe ( 'rgb(178,10,28)' ) ;
154219 } ) ;
155220
156221 it ( 'should make correct color map function (\'heatmap\' coloring case)' , function ( ) {
@@ -166,7 +231,7 @@ describe('contour makeColorMap', function() {
166231 zmax : 6
167232 } ;
168233
169- var colorMap = makeColorMap ( trace ) ;
234+ var colorMap = _makeColorMap ( trace ) ;
170235
171236 expect ( colorMap . domain ( ) ) . toEqual (
172237 [ 1 , 2.75 , 3.5 , 4 , 4.5 , 6 ]
@@ -189,7 +254,7 @@ describe('contour makeColorMap', function() {
189254 colorscale : colorScales . RdBu
190255 } ;
191256
192- var colorMap = makeColorMap ( trace ) ;
257+ var colorMap = _makeColorMap ( trace ) ;
193258
194259 expect ( colorMap . domain ( ) ) . toEqual (
195260 [ 1.5 , 2.9 , 3.5 , 3.9 , 4.3 , 5.5 ]
0 commit comments