@@ -12,14 +12,14 @@ var Cartesian = require('@src/plots/cartesian');
12
12
var Axes = require ( '@src/plots/cartesian/axes' ) ;
13
13
var Fx = require ( '@src/components/fx' ) ;
14
14
var supplyLayoutDefaults = require ( '@src/plots/cartesian/layout_defaults' ) ;
15
+ var BADNUM = require ( '@src/constants/numerical' ) . BADNUM ;
15
16
16
17
var createGraphDiv = require ( '../assets/create_graph_div' ) ;
17
18
var destroyGraphDiv = require ( '../assets/destroy_graph_div' ) ;
18
19
var failTest = require ( '../assets/fail_test' ) ;
19
20
var selectButton = require ( '../assets/modebar_button' ) ;
20
21
var supplyDefaults = require ( '../assets/supply_defaults' ) ;
21
22
22
-
23
23
describe ( 'Test axes' , function ( ) {
24
24
'use strict' ;
25
25
@@ -2447,6 +2447,89 @@ describe('Test axes', function() {
2447
2447
} ) ;
2448
2448
} ) ;
2449
2449
} ) ;
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
+ } ) ;
2450
2533
} ) ;
2451
2534
2452
2535
function getZoomInButton ( gd ) {
0 commit comments