@@ -898,10 +898,10 @@ describe('calculated data and points', function() {
898
898
// oneOrientationTraces are traces for which swapping x/y is not supported
899
899
var oneOrientationTraces = [ 'ohlc' , 'candlestick' ] ;
900
900
901
- function makeData ( type , a , b , axId ) {
901
+ function makeData ( type , a , b , axName ) {
902
902
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 ] ;
905
905
906
906
var measure = [ ] ;
907
907
for ( j = 0 ; j < data . length ; j ++ ) {
@@ -914,19 +914,19 @@ describe('calculated data and points', function() {
914
914
z [ j ] [ k ] = 0 ;
915
915
}
916
916
}
917
- if ( axId === 'xaxis' ) {
917
+ if ( axName === 'xaxis' ) {
918
918
for ( j = 0 ; j < b . length ; j ++ ) {
919
919
z [ 0 ] [ j ] = b [ j ] ;
920
920
}
921
921
}
922
- if ( axId === 'yaxis' ) {
922
+ if ( axName === 'yaxis' ) {
923
923
for ( j = 0 ; j < b . length ; j ++ ) {
924
924
z [ j ] [ 0 ] = b [ j ] ;
925
925
}
926
926
}
927
927
928
928
return Lib . extendDeep ( { } , {
929
- orientation : axId === 'yaxis' ? 'h' : 'v' ,
929
+ orientation : axName === 'yaxis' ? 'h' : 'v' ,
930
930
type : type ,
931
931
x : cat ,
932
932
a : cat ,
@@ -959,124 +959,108 @@ describe('calculated data and points', function() {
959
959
}
960
960
961
961
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 ;
988
964
989
- function checkAggregatedValue ( baseMock , expectedAgg , done ) {
965
+ function checkAggregatedValue ( baseMock , expectedAgg , finalOrder , done ) {
990
966
var mock = Lib . extendDeep ( { } , baseMock ) ;
991
967
992
968
if ( mock . data [ 0 ] . type . match ( / h i s t o g r a m / ) ) {
993
969
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 ) ;
996
972
}
997
973
}
998
974
999
975
Plotly . newPlot ( gd , mock )
1000
976
. 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 ) {
1002
978
return a [ 0 ] > b [ 0 ] ;
1003
979
} ) ;
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
+ }
1005
985
} )
1006
986
. catch ( failTest )
1007
987
. then ( done ) ;
1008
988
}
1009
989
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 } ;
1014
995
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 ] ] ;
1018
1000
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
+ } ) ;
1020
1006
} ) ;
1021
1007
1022
1008
it ( 'sum values across traces of type ' + trace . type , function ( done ) {
1023
1009
var type = trace . type ;
1024
1010
var data = [ 7 , 2 , 3 ] ;
1025
1011
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' } ;
1028
1014
1029
1015
var expectedAgg = [ [ 'a' , data [ 0 ] + data2 [ 0 ] ] , [ 'b' , data [ 1 ] + data2 [ 1 ] ] , [ 'c' , data [ 2 ] + data2 [ 2 ] ] ] ;
1030
1016
if ( type === 'ohlc' || type === 'candlestick' ) expectedAgg = [ [ 'a' , 2 * expectedAgg [ 0 ] [ 1 ] ] , [ 'b' , 2 * expectedAgg [ 1 ] [ 1 ] ] , [ 'c' , 2 * expectedAgg [ 2 ] [ 1 ] ] ] ;
1031
1017
if ( type . match ( / h i s t o g r a m / ) ) expectedAgg = [ [ 'a' , 4 ] , [ 'b' , 2 ] , [ 'c' , 2 ] ] ;
1032
1018
1033
- checkAggregatedValue ( baseMock , expectedAgg , done ) ;
1019
+ checkAggregatedValue ( baseMock , expectedAgg , false , done ) ;
1034
1020
} ) ;
1035
1021
1036
1022
it ( 'ignores values from traces that are not visible ' + trace . type , function ( done ) {
1037
1023
var type = trace . type ;
1038
1024
var data = [ 7 , 2 , 3 ] ;
1039
1025
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' } ;
1042
1028
1043
1029
// Hide second trace
1044
1030
baseMock . data [ 1 ] . visible = 'legendonly' ;
1045
1031
var expectedAgg = [ [ 'a' , data [ 0 ] ] , [ 'b' , data [ 1 ] ] , [ 'c' , data [ 2 ] ] ] ;
1046
1032
if ( type === 'ohlc' || type === 'candlestick' ) expectedAgg = [ [ 'a' , 2 * expectedAgg [ 0 ] [ 1 ] ] , [ 'b' , 2 * expectedAgg [ 1 ] [ 1 ] ] , [ 'c' , 2 * expectedAgg [ 2 ] [ 1 ] ] ] ;
1047
1033
if ( type . match ( / h i s t o g r a m / ) ) expectedAgg = [ [ 'a' , 2 ] , [ 'b' , 1 ] , [ 'c' , 1 ] ] ;
1048
1034
1049
- checkAggregatedValue ( baseMock , expectedAgg , done ) ;
1035
+ checkAggregatedValue ( baseMock , expectedAgg , false , done ) ;
1050
1036
} ) ;
1051
1037
1052
1038
it ( 'finds the minimum value per category across traces of type ' + trace . type , function ( done ) {
1053
1039
var type = trace . type ;
1054
1040
var data = [ 7 , 2 , 3 ] ;
1055
1041
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' } ;
1058
1044
1059
1045
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]]];
1061
1046
if ( trace . categories . indexOf ( '2dMap' ) !== - 1 ) expectedAgg = [ [ 'a' , 0 ] , [ 'b' , 0 ] , [ 'c' , 0 ] ] ;
1062
1047
if ( type === 'histogram' ) expectedAgg = [ [ 'a' , 2 ] , [ 'b' , 1 ] , [ 'c' , 1 ] ] ;
1063
1048
1064
- checkAggregatedValue ( baseMock , expectedAgg , done ) ;
1049
+ checkAggregatedValue ( baseMock , expectedAgg , false , done ) ;
1065
1050
} ) ;
1066
1051
1067
1052
it ( 'finds the maximum value per category across traces of type ' + trace . type , function ( done ) {
1068
1053
var type = trace . type ;
1069
1054
var data = [ 7 , 2 , 3 ] ;
1070
1055
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' } ;
1073
1058
1074
1059
var expectedAgg = [ [ 'a' , Math . max ( data [ 0 ] , data2 [ 0 ] ) ] , [ 'b' , Math . max ( data [ 1 ] , data2 [ 1 ] ) ] , [ 'c' , Math . max ( data [ 2 ] , data2 [ 2 ] ) ] ] ;
1075
1060
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]];
1077
1061
if ( type . match ( / h i s t o g r a m / ) ) expectedAgg = [ [ 'a' , 2 ] , [ 'b' , 1 ] , [ 'c' , 1 ] ] ;
1078
1062
1079
- checkAggregatedValue ( baseMock , expectedAgg , done ) ;
1063
+ checkAggregatedValue ( baseMock , expectedAgg , false , done ) ;
1080
1064
} ) ;
1081
1065
} ) ;
1082
1066
} ) ;
0 commit comments