@@ -944,12 +944,7 @@ describe('calculated data and points', function() {
944
944
it ( 'sorts ' + trace . type + ' by ' + categoryorder , function ( done ) {
945
945
var baseMock = {
946
946
data : [ makeData ( trace . type , cat , data ) ] ,
947
- layout : {
948
- xaxis : {
949
- type : 'category' ,
950
- categoryorder : categoryorder
951
- }
952
- }
947
+ layout : { xaxis : { type : 'category' , categoryorder : categoryorder } }
953
948
} ;
954
949
var mock = Lib . extendDeep ( { } , baseMock ) ;
955
950
@@ -971,154 +966,97 @@ describe('calculated data and points', function() {
971
966
} ) ;
972
967
} ) ;
973
968
974
- it ( 'aggregates all values in trace type ' + trace . type , function ( done ) {
975
- var type = trace . type ;
976
- var baseMock = {
977
- data : [ makeData ( trace . type , cat , data ) ] ,
978
- layout : {
979
- xaxis : {
980
- type : 'category' ,
981
- categoryorder : 'value ascending'
982
- }
983
- }
984
- } ;
969
+ function checkAggregatedValue ( baseMock , expectedAgg , done ) {
985
970
var mock = Lib . extendDeep ( { } , baseMock ) ;
986
971
987
- if ( type . match ( / h i s t o g r a m / ) ) {
988
- mock . data [ 0 ] . x . push ( 'a' ) ;
989
- mock . data [ 0 ] . y . push ( 7 ) ;
972
+ if ( mock . data [ 0 ] . type . match ( / h i s t o g r a m / ) ) {
973
+ for ( i = 0 ; i < mock . data . length ; i ++ ) {
974
+ mock . data [ i ] . x . push ( 'a' ) ;
975
+ mock . data [ i ] . y . push ( 7 ) ;
976
+ }
990
977
}
991
978
992
979
Plotly . newPlot ( gd , mock )
993
980
. then ( function ( gd ) {
994
- var expectedAgg = [ [ 'a' , 7 ] , [ 'b' , 2 ] , [ 'c' , 3 ] ] ;
995
- if ( type === 'ohlc' || type === 'candlestick' ) expectedAgg = [ [ 'a' , 14 ] , [ 'b' , 4 ] , [ 'c' , 6 ] ] ;
996
- if ( type . match ( / h i s t o g r a m / ) ) expectedAgg = [ [ 'a' , 2 ] , [ 'b' , 1 ] , [ 'c' , 1 ] ] ;
997
981
var agg = gd . _fullLayout . xaxis . _categoriesAggregatedValue . sort ( function ( a , b ) {
998
982
return a [ 0 ] > b [ 0 ] ;
999
983
} ) ;
1000
984
expect ( agg ) . toEqual ( expectedAgg ) ;
1001
985
} )
1002
986
. catch ( failTest )
1003
987
. then ( done ) ;
988
+ }
989
+
990
+ it ( 'aggregates all values in trace type ' + trace . type , function ( done ) {
991
+ var baseMock = {
992
+ data : [ makeData ( trace . type , cat , data ) ] ,
993
+ layout : { xaxis : { type : 'category' , categoryorder : 'value ascending' } }
994
+ } ;
995
+ var expectedAgg = [ [ 'a' , 7 ] , [ 'b' , 2 ] , [ 'c' , 3 ] ] ;
996
+ if ( trace . type === 'ohlc' || trace . type === 'candlestick' ) expectedAgg = [ [ 'a' , 14 ] , [ 'b' , 4 ] , [ 'c' , 6 ] ] ;
997
+ if ( trace . type . match ( / h i s t o g r a m / ) ) expectedAgg = [ [ 'a' , 2 ] , [ 'b' , 1 ] , [ 'c' , 1 ] ] ;
998
+
999
+ checkAggregatedValue ( baseMock , expectedAgg , done ) ;
1004
1000
} ) ;
1005
1001
1006
- it ( 'aggregates all values across multiple traces of type ' + trace . type , function ( done ) {
1002
+ it ( 'aggregates sum values across multiple traces of type ' + trace . type , function ( done ) {
1007
1003
var type = trace . type ;
1004
+ var data2 = [ 5 , 4 , 2 ] ;
1008
1005
var baseMock = {
1009
- data : [ makeData ( type , cat , data ) ] ,
1010
- layout : {
1011
- xaxis : {
1012
- type : 'category' ,
1013
- categoryorder : 'value ascending'
1014
- }
1015
- }
1006
+ data : [ makeData ( type , cat , data ) , makeData ( type , cat , data2 ) ] ,
1007
+ layout : { xaxis : { type : 'category' , categoryorder : 'value ascending' } }
1016
1008
} ;
1017
- var mock = Lib . extendDeep ( { } , baseMock ) ;
1009
+ var expectedAgg = [ [ 'a' , data [ 0 ] + data2 [ 0 ] ] , [ 'b' , data [ 1 ] + data2 [ 1 ] ] , [ 'c' , data [ 2 ] + data2 [ 2 ] ] ] ;
1010
+ if ( type === 'ohlc' || type === 'candlestick' ) expectedAgg = [ [ 'a' , 2 * expectedAgg [ 0 ] [ 1 ] ] , [ 'b' , 2 * expectedAgg [ 1 ] [ 1 ] ] , [ 'c' , 2 * expectedAgg [ 2 ] [ 1 ] ] ] ;
1011
+ if ( type . match ( / h i s t o g r a m / ) ) expectedAgg = [ [ 'a' , 4 ] , [ 'b' , 2 ] , [ 'c' , 2 ] ] ;
1018
1012
1013
+ checkAggregatedValue ( baseMock , expectedAgg , done ) ;
1014
+ } ) ;
1015
+
1016
+ it ( 'aggregates sum values across visible traces of type ' + trace . type , function ( done ) {
1017
+ var type = trace . type ;
1019
1018
var data2 = [ 5 , 4 , 2 ] ;
1020
- mock . data . push ( makeData ( type , cat , data2 ) ) ;
1021
- mock . data [ 1 ] . type = type ;
1022
-
1023
- if ( type . match ( / h i s t o g r a m / ) ) {
1024
- mock . data [ 0 ] . x . push ( 'a' ) ;
1025
- mock . data [ 0 ] . y . push ( 7 ) ;
1026
- mock . data [ 1 ] . x . push ( 'a' ) ;
1027
- mock . data [ 1 ] . y . push ( 7 ) ;
1028
- }
1019
+ var baseMock = {
1020
+ data : [ makeData ( type , cat , data ) , makeData ( type , cat , data2 ) ] ,
1021
+ layout : { xaxis : { type : 'category' , categoryorder : 'value ascending' } }
1022
+ } ;
1023
+ // Hide second trace
1024
+ baseMock . data [ 1 ] . visible = 'legendonly' ;
1025
+ var expectedAgg = [ [ 'a' , data [ 0 ] ] , [ 'b' , data [ 1 ] ] , [ 'c' , data [ 2 ] ] ] ;
1026
+ if ( type === 'ohlc' || type === 'candlestick' ) expectedAgg = [ [ 'a' , 2 * expectedAgg [ 0 ] [ 1 ] ] , [ 'b' , 2 * expectedAgg [ 1 ] [ 1 ] ] , [ 'c' , 2 * expectedAgg [ 2 ] [ 1 ] ] ] ;
1027
+ if ( type . match ( / h i s t o g r a m / ) ) expectedAgg = [ [ 'a' , 2 ] , [ 'b' , 1 ] , [ 'c' , 1 ] ] ;
1029
1028
1030
- Plotly . newPlot ( gd , mock )
1031
- . then ( function ( gd ) {
1032
- var expectedAgg = [ [ 'a' , data [ 0 ] + data2 [ 0 ] ] , [ 'b' , data [ 1 ] + data2 [ 1 ] ] , [ 'c' , data [ 2 ] + data2 [ 2 ] ] ] ;
1033
- if ( type === 'ohlc' || type === 'candlestick' ) expectedAgg = [ [ 'a' , 2 * expectedAgg [ 0 ] [ 1 ] ] , [ 'b' , 2 * expectedAgg [ 1 ] [ 1 ] ] , [ 'c' , 2 * expectedAgg [ 2 ] [ 1 ] ] ] ;
1034
- if ( type . match ( / h i s t o g r a m / ) ) expectedAgg = [ [ 'a' , 4 ] , [ 'b' , 2 ] , [ 'c' , 2 ] ] ;
1035
- var agg = gd . _fullLayout . xaxis . _categoriesAggregatedValue . sort ( function ( a , b ) {
1036
- return a [ 0 ] > b [ 0 ] ;
1037
- } ) ;
1038
- expect ( agg ) . toEqual ( expectedAgg ) ;
1039
- } )
1040
- . catch ( failTest )
1041
- . then ( done ) ;
1029
+ checkAggregatedValue ( baseMock , expectedAgg , done ) ;
1042
1030
} ) ;
1043
1031
1044
1032
it ( 'finds the minimum value per category across multiple traces of type ' + trace . type , function ( done ) {
1045
1033
var type = trace . type ;
1034
+ var data2 = [ 5 , 4 , 2 ] ;
1046
1035
var baseMock = {
1047
- data : [ makeData ( trace . type , cat , data ) ] ,
1048
- layout : {
1049
- xaxis : {
1050
- type : 'category' ,
1051
- categoryorder : 'min ascending'
1052
- }
1053
- }
1036
+ data : [ makeData ( type , cat , data ) , makeData ( type , cat , data2 ) ] ,
1037
+ layout : { xaxis : { type : 'category' , categoryorder : 'min ascending' } }
1054
1038
} ;
1055
- var mock = Lib . extendDeep ( { } , baseMock ) ;
1056
-
1057
-
1058
- var data2 = [ 5 , 4 , 1 ] ;
1059
- mock . data . push ( makeData ( trace . type , cat , data2 ) ) ;
1060
- mock . data [ 1 ] . type = type ;
1039
+ var expectedAgg = [ [ 'a' , Math . min ( data [ 0 ] , data2 [ 0 ] ) ] , [ 'b' , Math . min ( data [ 1 ] , data2 [ 1 ] ) ] , [ 'c' , Math . min ( data [ 2 ] , data2 [ 2 ] ) ] ] ;
1040
+ // if(type === 'ohlc' || type === 'candlestick') expectedAgg = [['a', expectedAgg[0][1]], ['b', expectedAgg[1][1]], ['c', expectedAgg[2][1]]];
1041
+ if ( trace . categories . indexOf ( '2dMap' ) !== - 1 ) expectedAgg = [ [ 'a' , 0 ] , [ 'b' , 0 ] , [ 'c' , 0 ] ] ;
1042
+ if ( type === 'histogram' ) expectedAgg = [ [ 'a' , 2 ] , [ 'b' , 1 ] , [ 'c' , 1 ] ] ;
1061
1043
1062
- if ( type . match ( / h i s t o g r a m / ) ) {
1063
- mock . data [ 0 ] . x . push ( 'a' ) ;
1064
- mock . data [ 0 ] . y . push ( 7 ) ;
1065
- mock . data [ 1 ] . x . push ( 'a' ) ;
1066
- mock . data [ 1 ] . y . push ( 7 ) ;
1067
- }
1068
-
1069
- Plotly . newPlot ( gd , mock )
1070
- . then ( function ( gd ) {
1071
- var expectedAgg = [ [ 'a' , Math . min ( data [ 0 ] , data2 [ 0 ] ) ] , [ 'b' , Math . min ( data [ 1 ] , data2 [ 1 ] ) ] , [ 'c' , Math . min ( data [ 2 ] , data2 [ 2 ] ) ] ] ;
1072
- if ( type === 'ohlc' || type === 'candlestick' ) expectedAgg = [ [ 'a' , expectedAgg [ 0 ] [ 1 ] ] , [ 'b' , expectedAgg [ 1 ] [ 1 ] ] , [ 'c' , expectedAgg [ 2 ] [ 1 ] ] ] ;
1073
- if ( trace . categories . indexOf ( '2dMap' ) !== - 1 ) expectedAgg = [ [ 'a' , 0 ] , [ 'b' , 0 ] , [ 'c' , 0 ] ] ;
1074
- if ( type === 'histogram' ) expectedAgg = [ [ 'a' , 2 ] , [ 'b' , 1 ] , [ 'c' , 1 ] ] ;
1075
- var agg = gd . _fullLayout . xaxis . _categoriesAggregatedValue . sort ( function ( a , b ) {
1076
- return a [ 0 ] > b [ 0 ] ;
1077
- } ) ;
1078
- expect ( agg ) . toEqual ( expectedAgg ) ;
1079
- } )
1080
- . catch ( failTest )
1081
- . then ( done ) ;
1044
+ checkAggregatedValue ( baseMock , expectedAgg , done ) ;
1082
1045
} ) ;
1083
1046
1084
1047
it ( 'finds the maximum value per category across multiple traces of type ' + trace . type , function ( done ) {
1085
1048
var type = trace . type ;
1049
+ var data2 = [ 5 , 4 , 2 ] ;
1086
1050
var baseMock = {
1087
- data : [ makeData ( trace . type , cat , data ) ] ,
1088
- layout : {
1089
- xaxis : {
1090
- type : 'category' <
8000
span class=pl-kos>,
1091
- categoryorder : 'max ascending'
1092
- }
1093
- }
1051
+ data : [ makeData ( type , cat , data ) , makeData ( type , cat , data2 ) ] ,
1052
+ layout : { xaxis : { type : 'category' , categoryorder : 'max ascending' } }
1094
1053
} ;
1095
- var mock = Lib . extendDeep ( { } , baseMock ) ;
1096
-
1054
+ var expectedAgg = [ [ 'a' , Math . max ( data [ 0 ] , data2 [ 0 ] ) ] , [ 'b' , Math . max ( data [ 1 ] , data2 [ 1 ] ) ] , [ 'c' , Math . max ( data [ 2 ] , data2 [ 2 ] ) ] ] ;
1055
+ if ( type === 'ohlc' || type === 'candlestick' ) expectedAgg = [ [ 'a' , expectedAgg [ 0 ] [ 1 ] ] , [ 'b' , expectedAgg [ 1 ] [ 1 ] ] , [ 'c' , expectedAgg [ 2 ] [ 1 ] ] ] ;
1056
+ // if(trace.categories.indexOf('2dMap') !== -1) expectedAgg = [['a', 0], ['b', 0], ['c', 0]];
1057
+ if ( type . match ( / h i s t o g r a m / ) ) expectedAgg = [ [ 'a' , 2 ] , [ 'b' , 1 ] , [ 'c' , 1 ] ] ;
1097
1058
1098
- var data2 = [ 5 , 4 , 1 ] ;
1099
- mock . data . push ( makeData ( trace . type , cat , data2 ) ) ;
1100
- mock . data [ 1 ] . type = type ;
1101
-
1102
- if ( type . match ( / h i s t o g r a m / ) ) {
1103
- mock . data [ 0 ] . x . push ( 'a' ) ;
1104
- mock . data [ 0 ] . y . push ( 7 ) ;
1105
- mock . data [ 1 ] . x . push ( 'a' ) ;
1106
- mock . data [ 1 ] . y . push ( 7 ) ;
1107
- }
1108
-
1109
- Plotly . newPlot ( gd , mock )
1110
- . then ( function ( gd ) {
1111
- var expectedAgg = [ [ 'a' , Math . max ( data [ 0 ] , data2 [ 0 ] ) ] , [ 'b' , Math . max ( data [ 1 ] , data2 [ 1 ] ) ] , [ 'c' , Math . max ( data [ 2 ] , data2 [ 2 ] ) ] ] ;
1112
- if ( type === 'ohlc' || type === 'candlestick' ) expectedAgg = [ [ 'a' , expectedAgg [ 0 ] [ 1 ] ] , [ 'b' , expectedAgg [ 1 ] [ 1 ] ] , [ 'c' , expectedAgg [ 2 ] [ 1 ] ] ] ;
1113
- // if(trace.categories.indexOf('2dMap') !== -1) expectedAgg = [['a', 0], ['b', 0], ['c', 0]];
1114
- if ( type . match ( / h i s t o g r a m / ) ) expectedAgg = [ [ 'a' , 2 ] , [ 'b' , 1 ] , [ 'c' , 1 ] ] ;
1115
- var agg = gd . _fullLayout . xaxis . _categoriesAggregatedValue . sort ( function ( a , b ) {
1116
- return a [ 0 ] > b [ 0 ] ;
1117
- } ) ;
1118
- expect ( agg ) . toEqual ( expectedAgg ) ;
1119
- } )
1120
- . catch ( failTest )
1121
- . then ( done ) ;
1059
+ checkAggregatedValue ( baseMock , expectedAgg , done ) ;
1122
1060
} ) ;
1123
1061
} ) ;
1124
1062
} ) ;
0 commit comments