@@ -12,14 +12,14 @@ var Cartesian = require('@src/plots/cartesian');
1212var Axes = require ( '@src/plots/cartesian/axes' ) ;
1313var Fx = require ( '@src/components/fx' ) ;
1414var supplyLayoutDefaults = require ( '@src/plots/cartesian/layout_defaults' ) ;
15+ var BADNUM = require ( '@src/constants/numerical' ) . BADNUM ;
1516
1617var createGraphDiv = require ( '../assets/create_graph_div' ) ;
1718var destroyGraphDiv = require ( '../assets/destroy_graph_div' ) ;
1819var failTest = require ( '../assets/fail_test' ) ;
1920var selectButton = require ( '../assets/modebar_button' ) ;
2021var supplyDefaults = require ( '../assets/supply_defaults' ) ;
2122
22-
2323describe ( 'Test axes' , function ( ) {
2424 'use strict' ;
2525
@@ -2447,6 +2447,89 @@ describe('Test axes', function() {
24472447 } ) ;
24482448 } ) ;
24492449 } ) ;
2450+
2451+ describe ( 'makeCalcdata' , function ( ) {
2452+ function _makeCalcdata ( trace , axLetter , axType ) {
2453+ var ax = { type : axType } ;
2454+ Axes . setConvert ( ax ) ;
2455+ ax . _categories = [ ] ;
2456+ return ax . makeCalcdata ( trace , axLetter ) ;
2457+ }
2458+
2459+ describe ( 'should convert items' , function ( ) {
2460+ it ( '- linear case' , function ( ) {
2461+ var out = _makeCalcdata ( {
2462+ x : [ '1' , NaN , null , 2 ] ,
2463+ } , 'x' , 'linear' ) ;
2464+ expect ( out ) . toEqual ( [ 1 , BADNUM , BADNUM , 2 ] ) ;
2465+ } ) ;
2466+
2467+ it ( '- date case' , function ( ) {
2468+ var out = _makeCalcdata ( {
2469+ x : [ '2000-01-01' , NaN , null , new Date ( 2000 , 0 , 1 ) . getTime ( ) ] ,
2470+ } , 'x' , 'date' ) ;
2471+ expect ( out ) . toEqual ( [ 946684800000 , BADNUM , BADNUM , 946684800000 ] ) ;
2472+ } ) ;
2473+
2474+ it ( '- category case' , function ( ) {
2475+ var out = _makeCalcdata ( {
2476+ x : [ 'a' , 'b' , null , 4 ] ,
2477+ } , 'x' , 'category' ) ;
2478+
2479+ expect ( out ) . toEqual ( [ 0 , 1 , BADNUM , 2 ] ) ;
2480+ } ) ;
2481+ } ) ;
2482+
2483+ describe ( 'should fill item to other coordinate length if not present' , function ( ) {
2484+ it ( '- base case' , function ( ) {
2485+ var out = _makeCalcdata ( {
2486+ y : [ 1 , 2 , 1 ] ,
2487+ } , 'x' , 'linear' ) ;
2488+ expect ( out ) . toEqual ( [ 0 , 1 , 2 ] ) ;
2489+ } ) ;
2490+
2491+ it ( '- x0/dx case' , function ( ) {
2492+ var out = _makeCalcdata ( {
2493+ y : [ 1 , 2 , 1 ] ,
2494+ x0 : 2 ,
2495+ dx : 10 ,
2496+ _length : 3
2497+ } , 'x' , 'linear' ) ;
2498+ expect ( out ) . toEqual ( [ 2 , 12 , 22 ] ) ;
2499+ } ) ;
2500+
2501+ it ( '- other length case' , function ( ) {
2502+ var out = _makeCalcdata ( {
2503+ _length : 5 ,
2504+ y : [ 1 , 2 , 1 ] ,
2505+ } , 'x' , 'linear' ) ;
2506+ expect ( out ) . toEqual ( [ 0 , 1 , 2 , 3 , 4 ] ) ;
2507+ } ) ;
2508+ } ) ;
2509+
2510+ describe ( 'should subarray typed arrays' , function ( ) {
2511+ it ( '- same length case' , function ( ) {
2512+ var x = new Float32Array ( [ 1 , 2 , 3 ] ) ;
2513+ var out = _makeCalcdata ( {
2514+ _length : 3 ,
2515+ x : x
2516+ } , 'x' , 'linear' ) ;
2517+ expect ( out ) . toBe ( x ) ;
2518+ } ) ;
2519+
2520+ it ( '- subarray case' , function ( ) {
2521+ var x = new Float32Array ( [ 1 , 2 , 3 ] ) ;
2522+ var out = _makeCalcdata ( {
2523+ _length : 2 ,
2524+ x : x
2525+ } , 'x' , 'linear' ) ;
2526+ expect ( out ) . toEqual ( new Float32Array ( [ 1 , 2 ] ) ) ;
2527+ // check that in and out are linked to same buffer
2528+ expect ( out . buffer ) . toBeDefined ( ) ;
2529+ expect ( out . buffer ) . toEqual ( x . buffer ) ;
2530+ } ) ;
2531+ } ) ;
2532+ } ) ;
24502533} ) ;
24512534
24522535function getZoomInButton ( gd ) {
0 commit comments