@@ -898,10 +898,10 @@ describe('calculated data and points', function() {
898898 // oneOrientationTraces are traces for which swapping x/y is not supported
899899 var oneOrientationTraces = [ 'ohlc' , 'candlestick' ] ;
900900
901- function makeData ( type , a , b , axId ) {
901+ function makeData ( type , a , b , axName ) {
902902 var input = [ a , b ] ;
903- var cat = input [ axId === 'yaxis' ? 1 : 0 ] ;
904- var data = input [ axId === 'yaxis' ? 0 : 1 ] ;
903+ var cat = input [ axName === 'yaxis' ? 1 : 0 ] ;
904+ var data = input [ axName === 'yaxis' ? 0 : 1 ] ;
905905
906906 var measure = [ ] ;
907907 for ( j = 0 ; j < data . length ; j ++ ) {
@@ -914,19 +914,19 @@ describe('calculated data and points', function() {
914914 z [ j ] [ k ] = 0 ;
915915 }
916916 }
917- if ( axId === 'xaxis' ) {
917+ if ( axName === 'xaxis' ) {
918918 for ( j = 0 ; j < b . length ; j ++ ) {
919919 z [ 0 ] [ j ] = b [ j ] ;
920920 }
921921 }
922- if ( axId === 'yaxis' ) {
922+ if ( axName === 'yaxis' ) {
923923 for ( j = 0 ; j < b . length ; j ++ ) {
924924 z [ j ] [ 0 ] = b [ j ] ;
925925 }
926926 }
927927
928928 return Lib . extendDeep ( { } , {
929- orientation : axId === 'yaxis' ? 'h' : 'v' ,
929+ orientation : axName === 'yaxis' ? 'h' : 'v' ,
930930 type : type ,
931931 x : cat ,
932932 a : cat ,
@@ -959,124 +959,108 @@ describe('calculated data and points', function() {
959959 }
960960
961961 supportedCartesianTraces . forEach ( function ( trace ) {
962- [ 'xaxis' , 'yaxis' ] . forEach ( function ( axId ) {
963- if ( axId === 'yaxis' && oneOrientationTraces . indexOf ( trace . type ) !== - 1 ) return ;
964- [ 'value ascending' , 'value descending' ] . forEach ( function ( categoryorder ) {
965- it ( 'sorts ' + axId + ' by ' + categoryorder + 'for trace type ' + trace . type , function ( done ) {
966- var data = [ 7 , 2 , 3 ] ;
967- var baseMock = { data : [ makeData ( trace . type , cat , data , axId ) ] , layout : { } } ;
968- var mock = Lib . extendDeep ( { } , baseMock ) ;
969- mock . layout [ axId ] = { type : 'category' , categoryorder : categoryorder } ;
970-
971- // Set ordering
972- var finalOrder = [ 'b' , 'c' , 'a' ] ;
973- if ( categoryorder === 'value descending' ) finalOrder . reverse ( ) ;
974-
975- if ( trace . type . match ( / h i s t o g r a m / ) ) {
976- mock . data [ 0 ] [ axId === 'yaxis' ? 'y' : 'x' ] . push ( 'a' ) ;
977- mock . data [ 0 ] [ axId === 'yaxis' ? 'x' : 'y' ] . push ( 7 ) ;
978- }
979-
980- Plotly . newPlot ( gd , mock )
981- . then ( function ( gd ) {
982- expect ( gd . _fullLayout [ trace . type === 'splom' ? 'xaxis' : axId ] . _categories ) . toEqual ( finalOrder , 'for trace ' + trace . type ) ;
983- } )
984- . catch ( failTest )
985- . then ( done ) ;
986- } ) ;
987- } ) ;
962+ [ 'xaxis' , 'yaxis' ] . forEach ( function ( axName ) {
963+ if ( axName === 'yaxis' && oneOrientationTraces . indexOf ( trace . type ) !== - 1 ) return ;
988964
989- function checkAggregatedValue ( baseMock , expectedAgg , done ) {
965+ function checkAggregatedValue ( baseMock , expectedAgg , finalOrder , done ) {
990966 var mock = Lib . extendDeep ( { } , baseMock ) ;
991967
992968 if ( mock . data [ 0 ] . type . match ( / h i s t o g r a m / ) ) {
993969 for ( i = 0 ; i < mock . data . length ; i ++ ) {
994- mock . data [ i ] [ axId === 'yaxis' ? 'y' : 'x' ] . push ( 'a' ) ;
995- mock . data [ i ] [ axId === 'yaxis' ? 'x' : 'y' ] . push ( 7 ) ;
970+ mock . data [ i ] [ axName === 'yaxis' ? 'y' : 'x' ] . push ( 'a' ) ;
971+ mock . data [ i ] [ axName === 'yaxis' ? 'x' : 'y' ] . push ( 7 ) ;
996972 }
997973 }
998974
999975 Plotly . newPlot ( gd , mock )
1000976 . then ( function ( gd ) {
1001- var agg = gd . _fullLayout [ mock . data [ 0 ] . type === 'splom' ? 'xaxis' : axId ] . _categoriesAggregatedValue . sort ( function ( a , b ) {
977+ var agg = gd . _fullLayout [ trace . type === 'splom' ? 'xaxis' : axName ] . _categoriesAggregatedValue . sort ( function ( a , b ) {
1002978 return a [ 0 ] > b [ 0 ] ;
1003979 } ) ;
1004- expect ( agg ) . toEqual ( expectedAgg , 'wrong aggregation for ' + axId ) ;
980+ expect ( agg ) . toEqual ( expectedAgg , 'wrong aggregation for ' + axName ) ;
981+
982+ if ( finalOrder ) {
983+ expect ( gd . _fullLayout [ trace . type === 'splom' ? 'xaxis' : axName ] . _categories ) . toEqual ( finalOrder , 'for trace ' + trace . type ) ;
984+ }
1005985 } )
1006986 . catch ( failTest )
1007987 . then ( done ) ;
1008988 }
1009989
1010- it ( 'retrieves values in trace type ' + trace . type , function ( done ) {
1011- var data = [ 7 , 2 , 3 ] ;
1012- var baseMock = { data : [ makeData ( trace . type , cat , data , axId ) ] , layout : { } } ;
1013- baseMock . layout [ axId ] = { type : 'category' , categoryorder : 'value ascending' } ;
990+ [ 'value ascending' , 'value descending' ] . forEach ( function ( categoryorder ) {
991+ it ( 'sorts ' + axName + ' by ' + categoryorder + ' for trace type ' + trace . type , function ( done ) {
992+ var data = [ 7 , 2 , 3 ] ;
993+ var baseMock = { data : [ makeData ( trace . type , cat , data , axName ) ] , layout : { } } ;
994+ baseMock . layout [ axName ] = { type : 'category' , categoryorder : categoryorder } ;
1014995
1015- var expectedAgg = [ [ 'a' , 7 ] , [ 'b' , 2 ] , [ 'c' , 3 ] ] ;
1016- if ( trace . type === 'ohlc' || trace . type === 'candlestick' ) expectedAgg = [ [ 'a' , 14 ] , [ 'b' , 4 ] , [ 'c' , 6 ] ] ;
1017- if ( trace . type . match ( / h i s t o g r a m / ) ) expectedAgg = [ [ 'a' , 2 ] , [ 'b' , 1 ] , [ 'c' , 1 ] ] ;
996+ // Set expectations
997+ var finalOrder = [ 'b' , 'c' , 'a' ] ;
998+ if ( categoryorder === 'value descending' ) finalOrder . reverse ( ) ;
999+ var expectedAgg = [ [ 'a' , 7 ] , [ 'b' , 2 ] , [ 'c' , 3 ] ] ;
10181000
1019- checkAggregatedValue ( baseMock , expectedAgg , done ) ;
1001+ if ( trace . type === 'ohlc' || trace . type === 'candlestick' ) expectedAgg = [ [ 'a' , 14 ] , [ 'b' , 4 ] , [ 'c' , 6 ] ] ;
1002+ if ( trace . type . match ( / h i s t o g r a m / ) ) expectedAgg = [ [ 'a' , 2 ] , [ 'b' , 1 ] , [ 'c' , 1 ] ] ;
1003+
1004+ checkAggregatedValue ( baseMock , expectedAgg , finalOrder , done ) ;
1005+ } ) ;
10201006 } ) ;
10211007
10221008 it ( 'sum values across traces of type ' + trace . type , function ( done ) {
10231009 var type = trace . type ;
10241010 var data = [ 7 , 2 , 3 ] ;
10251011 var data2 = [ 5 , 4 , 2 ] ;
1026- var baseMock = { data : [ makeData ( type , cat , data , axId ) , makeData ( type , cat , data2 , axId ) ] , layout : { } } ;
1027- baseMock . layout [ axId ] = { type : 'category' , categoryorder : 'value ascending' } ;
1012+ var baseMock = { data : [ makeData ( type , cat , data , axName ) , makeData ( type , cat , data2 , axName ) ] , layout : { } } ;
1013+ baseMock . layout [ axName ] = { type : 'category' , categoryorder : 'value ascending' } ;
10281014
10291015 var expectedAgg = [ [ 'a' , data [ 0 ] + data2 [ 0 ] ] , [ 'b' , data [ 1 ] + data2 [ 1 ] ] , [ 'c' , data [ 2 ] + data2 [ 2 ] ] ] ;
10301016 if ( type === 'ohlc' || type === 'candlestick' ) expectedAgg = [ [ 'a' , 2 * expectedAgg [ 0 ] [ 1 ] ] , [ 'b' , 2 * expectedAgg [ 1 ] [ 1 ] ] , [ 'c' , 2 * expectedAgg [ 2 ] [ 1 ] ] ] ;
10311017 if ( type . match ( / h i s t o g r a m / ) ) expectedAgg = [ [ 'a' , 4 ] , [ 'b' , 2 ] , [ 'c' , 2 ] ] ;
10321018
1033- checkAggregatedValue ( baseMock , expectedAgg , done ) ;
1019+ checkAggregatedValue ( baseMock , expectedAgg , false , done ) ;
10341020 } ) ;
10351021
10361022 it ( 'ignores values from traces that are not visible ' + trace . type , function ( done ) {
10371023 var type = trace . type ;
10381024 var data = [ 7 , 2 , 3 ] ;
10391025 var data2 = [ 5 , 4 , 2 ] ;
1040- var baseMock = { data : [ makeData ( type , cat , data , axId ) , makeData ( type , cat , data2 , axId ) ] , layout : { } } ;
1041- baseMock . layout [ axId ] = { type : 'category' , categoryorder : 'value ascending' } ;
1026+ var baseMock = { data : [ makeData ( type , cat , data , axName ) , makeData ( type , cat , data2 , axName ) ] , layout : { } } ;
1027+ baseMock . layout [ axName ] = { type : 'category' , categoryorder : 'value ascending' } ;
10421028
10431029 // Hide second trace
10441030 baseMock . data [ 1 ] . visible = 'legendonly' ;
10451031 var expectedAgg = [ [ 'a' , data [ 0 ] ] , [ 'b' , data [ 1 ] ] , [ 'c' , data [ 2 ] ] ] ;
10461032 if ( type === 'ohlc' || type === 'candlestick' ) expectedAgg = [ [ 'a' , 2 * expectedAgg [ 0 ] [ 1 ] ] , [ 'b' , 2 * expectedAgg [ 1 ] [ 1 ] ] , [ 'c' , 2 * expectedAgg [ 2 ] [ 1 ] ] ] ;
10471033 if ( type . match ( / h i s t o g r a m / ) ) expectedAgg = [ [ 'a' , 2 ] , [ 'b' , 1 ] , [ 'c' , 1 ] ] ;
10481034
1049- checkAggregatedValue ( baseMock , expectedAgg , done ) ;
1035+ checkAggregatedValue ( baseMock , expectedAgg , false , done ) ;
10501036 } ) ;
10511037
10521038 it ( 'finds the minimum value per category across traces of type ' + trace . type , function ( done ) {
10531039 var type = trace . type ;
10541040 var data = [ 7 , 2 , 3 ] ;
10551041 var data2 = [ 5 , 4 , 2 ] ;
1056- var baseMock = { data : [ makeData ( type , cat , data , axId ) , makeData ( type , cat , data2 , axId ) ] , layout : { } } ;
1057- baseMock . layout [ axId ] = { type : 'category' , categoryorder : 'min ascending' } ;
1042+ var baseMock = { data : [ makeData ( type , cat , data , axName ) , makeData ( type , cat , data2 , axName ) ] , layout : { } } ;
1043+ baseMock . layout [ axName ] = { type : 'category' , categoryorder : 'min ascending' } ;
10581044
10591045 var expectedAgg = [ [ 'a' , Math . min ( data [ 0 ] , data2 [ 0 ] ) ] , [ 'b' , Math . min ( data [ 1 ] , data2 [ 1 ] ) ] , [ 'c' , Math . min ( data [ 2 ] , data2 [ 2 ] ) ] ] ;
1060- // if(type === 'ohlc' || type === 'candlestick') expectedAgg = [['a', expectedAgg[0][1]], ['b', expectedAgg[1][1]], ['c', expectedAgg[2][1]]];
10611046 if ( trace . categories . indexOf ( '2dMap' ) !== - 1 ) expectedAgg = [ [ 'a' , 0 ] , [ 'b' , 0 ] , [ 'c' , 0 ] ] ;
10621047 if ( type === 'histogram' ) expectedAgg = [ [ 'a' , 2 ] , [ 'b' , 1 ] , [ 'c' , 1 ] ] ;
10631048
1064- checkAggregatedValue ( baseMock , expectedAgg , done ) ;
1049+ checkAggregatedValue ( baseMock , expectedAgg , false , done ) ;
10651050 } ) ;
10661051
10671052 it ( 'finds the maximum value per category across traces of type ' + trace . type , function ( done ) {
10681053 var type = trace . type ;
10691054 var data = [ 7 , 2 , 3 ] ;
10701055 var data2 = [ 5 , 4 , 2 ] ;
1071- var baseMock = { data : [ makeData ( type , cat , data , axId ) , makeData ( type , cat , data2 , axId ) ] , layout : { } } ;
1072- baseMock . layout [ axId ] = { type : 'category' , categoryorder : 'max ascending' } ;
1056+ var baseMock = { data : [ makeData ( type , cat , data , axName ) , makeData ( type , cat , data2 , axName ) ] , layout : { } } ;
1057+ baseMock . layout [ axName ] = { type : 'category' , categoryorder : 'max ascending' } ;
10731058
10741059 var expectedAgg = [ [ 'a' , Math . max ( data [ 0 ] , data2 [ 0 ] ) ] , [ 'b' , Math . max ( data [ 1 ] , data2 [ 1 ] ) ] , [ 'c' , Math . max ( data [ 2 ] , data2 [ 2 ] ) ] ] ;
10751060 if ( type === 'ohlc' || type === 'candlestick' ) expectedAgg = [ [ 'a' , expectedAgg [ 0 ] [ 1 ] ] , [ 'b' , expectedAgg [ 1 ] [ 1 ] ] , [ 'c' , expectedAgg [ 2 ] [ 1 ] ] ] ;
1076- // if(trace.categories.indexOf('2dMap') !== -1) expectedAgg = [['a', 0], ['b', 0], ['c', 0]];
10771061 if ( type . match ( / h i s t o g r a m / ) ) expectedAgg = [ [ 'a' , 2 ] , [ 'b' , 1 ] , [ 'c' , 1 ] ] ;
10781062
1079- checkAggregatedValue ( baseMock , expectedAgg , done ) ;
1063+ checkAggregatedValue ( baseMock , expectedAgg , false , done ) ;
10801064 } ) ;
10811065 } ) ;
10821066 } ) ;
0 commit comments