@@ -431,6 +431,83 @@ describe('Plotly.toImage', function() {
431
431
. then ( done , done . fail ) ;
432
432
} ) ;
433
433
434
+ [
435
+ 'scatter3d' ,
436
+ 'scattergl' ,
437
+ 'scatter'
438
+ ] . forEach ( function ( type ) {
439
+ it ( 'import & export arrayOk marker.color and marker.size for ' + type , function ( done ) {
440
+ var is3D = type === 'scatter3d' ;
441
+
442
+ var allX = new Int16Array ( [ - 100 , 200 , - 300 , 400 ] ) ;
443
+ var allY = new Uint16Array ( [ 100 , 200 , 300 , 400 ] ) ;
444
+ var allZ = new Int8Array ( [ - 120 , - 60 , 0 , 60 ] ) ;
445
+ var allS = new Uint8ClampedArray ( [ 0 , 60 , 120 , 240 ] ) ;
446
+ var allC = new Uint8Array ( [ 0 , 60 , 120 , 240 ] ) ;
447
+
448
+ var x = b64encodeTypedArray ( allX ) ;
449
+ var y = b64encodeTypedArray ( allY ) ;
450
+ var z = b64encodeTypedArray ( allZ ) ;
451
+ var s = b64encodeTypedArray ( allS ) ;
452
+ var c = b64encodeTypedArray ( allC ) ;
453
+
454
+ Plotly . newPlot ( gd , [ {
455
+ type : type ,
456
+ x : { bdata : x , dtype : 'i2' } ,
457
+ y : { bdata : y , dtype : 'u2' } ,
458
+ z : { bdata : z , dtype : 'i1' } ,
459
+ marker : {
460
+ color : { bdata : c , dtype : 'u1' } ,
461
+ size : { bdata : s , dtype : 'c1' }
462
+ }
463
+ } ] )
464
+ . then ( function ( gd ) {
465
+ var trace = gd . _fullData [ 0 ] ;
466
+
467
+ expect ( trace . visible ) . toEqual ( true ) ;
468
+
469
+ expect ( trace . x . slice ( ) ) . toEqual ( allX ) ;
470
+ expect ( trace . y . slice ( ) ) . toEqual ( allY ) ;
471
+ if ( is3D ) expect ( trace . z . slice ( ) ) . toEqual ( allZ ) ;
472
+ expect ( trace . marker . size . slice ( ) ) . toEqual ( allS ) ;
473
+ expect ( trace . marker . color . slice ( ) ) . toEqual ( allC ) ;
474
+ expect ( trace . line . color ) . toEqual ( '#1f77b4' ) ;
475
+
476
+ return Plotly . toImage ( gd , imgOpts ) ;
477
+ } )
478
+ . then ( function ( fig ) {
479
+ var trace = JSON . parse ( fig ) . data [ 0 ] ;
480
+
481
+ expect ( trace . visible ) . toEqual ( true ) ;
482
+
483
+ expect ( trace . x . bdata ) . toEqual ( 'nP/IANT+kAE=' ) ;
484
+ expect ( trace . x . dtype ) . toEqual ( 'i2' ) ;
485
+ expect ( trace . x . shape ) . toEqual ( '4' ) ;
486
+
487
+ expect ( trace . y . bdata ) . toEqual ( 'ZADIACwBkAE=' ) ;
488
+ expect ( trace . y . dtype ) . toEqual ( 'u2' ) ;
489
+ expect ( trace . y . shape ) . toEqual ( '4' ) ;
490
+
491
+ if ( is3D ) {
492
+ expect ( trace . z . bdata ) . toEqual ( 'iMQAPA==' ) ;
493
+ expect ( trace . z . dtype ) . toEqual ( 'i1' ) ;
494
+ expect ( trace . z . shape ) . toEqual ( '4' ) ;
495
+ }
496
+
497
+ expect ( trace . marker . size . bdata ) . toEqual ( 'ADx48A==' ) ;
498
+ expect ( trace . marker . size . dtype ) . toEqual ( 'c1' ) ;
499
+ expect ( trace . marker . size . shape ) . toEqual ( '4' ) ;
500
+
501
+ expect ( trace . marker . color . bdata ) . toEqual ( 'ADx48A==' ) ;
502
+ expect ( trace . marker . color . dtype ) . toEqual ( 'u1' ) ;
503
+ expect ( trace . marker . color . shape ) . toEqual ( '4' ) ;
504
+
505
+ expect ( trace . marker . colorscale ) . toBeDefined ( ) ;
506
+ } )
507
+ . then ( done , done . fail ) ;
508
+ } ) ;
509
+ } ) ;
510
+
434
511
it ( 'export computed margins' , function ( done ) {
435
512
Plotly . toImage ( pieAutoMargin , imgOpts )
436
513
. then ( function ( fig ) {
0 commit comments