@@ -60,6 +60,69 @@ describe('Test cone defaults', function() {
60
60
} ) ;
61
61
} ) ;
62
62
63
+ describe ( '@gl Test cone autorange' , function ( ) {
64
+ var gd ;
65
+
66
+ beforeEach ( function ( ) {
67
+ gd = createGraphDiv ( ) ;
68
+ } ) ;
69
+
70
+ afterEach ( function ( ) {
71
+ Plotly . purge ( gd ) ;
72
+ destroyGraphDiv ( ) ;
73
+ } ) ;
74
+
75
+ function _assertAxisRanges ( msg , xrng , yrng , zrng ) {
76
+ var sceneLayout = gd . _fullLayout . scene ;
77
+ expect ( sceneLayout . xaxis . range ) . toBeCloseToArray ( xrng , 2 , 'xaxis range -' + msg ) ;
78
+ expect ( sceneLayout . yaxis . range ) . toBeCloseToArray ( yrng , 2 , 'yaxis range -' + msg ) ;
79
+ expect ( sceneLayout . zaxis . range ) . toBeCloseToArray ( zrng , 2 , 'zaxis range -' + msg ) ;
80
+ }
81
+
82
+ it ( 'should add pad around cone position to make sure they fit on the scene' , function ( done ) {
83
+ var fig = Lib . extendDeep ( { } , require ( '@mocks/gl3d_cone-autorange.json' ) ) ;
84
+
85
+ // the resulting image should be independent of what I multiply by here
86
+ function makeScaleFn ( s ) {
87
+ return function ( v ) { return v * s ; } ;
88
+ }
89
+
90
+ Plotly . plot ( gd , fig ) . then ( function ( ) {
91
+ _assertAxisRanges ( 'base' ,
92
+ [ - 0.39 , 4.39 ] , [ - 0.39 , 4.39 ] , [ - 0.39 , 4.39 ]
93
+ ) ;
94
+
95
+ var trace = fig . data [ 0 ] ;
96
+ var m = makeScaleFn ( 10 ) ;
97
+ var u = trace . u . map ( m ) ;
98
+ var v = trace . v . map ( m ) ;
99
+ var w = trace . w . map ( m ) ;
100
+
101 + return Plotly . restyle ( gd , { u : [ u ] , v : [ v ] , w : [ w ] } ) ;
102
+ } )
103
+ . then ( function ( ) {
104
+ _assertAxisRanges ( 'scaled up' ,
105
+ [ - 0.39 , 4.39 ] , [ - 0.39 , 4.39 ] , [ - 0.39 , 4.39 ]
106
+ ) ;
107
+
108
+ var trace = fig . data [ 0 ] ;
109
+ var m = makeScaleFn ( 0.2 ) ;
110
+ var u = trace . u . map ( m ) ;
111
+ var v = trace . v . map ( m ) ;
112
+ var w = trace . w . map ( m ) ;
113
+
114
+ return Plotly . restyle ( gd , { u : [ u ] , v : [ v ] , w : [ w ] } ) ;
115
+ } )
116
+ . then ( function ( ) {
117
+ _assertAxisRanges ( 'scaled down' ,
118
+ [ - 0.39 , 4.39 ] , [ - 0.39 , 4.39 ] , [ - 0.39 , 4.39 ]
119
+ ) ;
120
+ } )
121
+ . catch ( failTest )
122
+ . then ( done ) ;
123
+ } ) ;
124
+ } ) ;
125
+
63
126
describe ( '@gl Test cone interactions' , function ( ) {
64
127
var gd ;
65
128
0 commit comments