@@ -458,12 +458,12 @@ describe('hover info', function() {
458
458
} ) ;
459
459
} ) ;
460
460
461
- describe ( '\'hover info for x/y/z traces' , function ( ) {
462
- function _hover ( gd , xpx , ypx ) {
463
- Fx . hover ( gd , { xpx : xpx , ypx : ypx } , 'xy' ) ;
464
- Lib . clearThrottle ( ) ;
465
- }
461
+ function _hover ( gd , xpx , ypx ) {
462
+ Fx . hover ( gd , { xpx : xpx , ypx : ypx } , 'xy' ) ;
463
+ Lib . clearThrottle ( ) ;
464
+ }
466
465
466
+ describe ( '\'hover info for x/y/z traces' , function ( ) {
467
467
it ( 'should display correct label content' , function ( done ) {
468
468
var gd = createGraphDiv ( ) ;
469
469
@@ -501,6 +501,128 @@ describe('hover info', function() {
501
501
} ) ;
502
502
} ) ;
503
503
504
+ describe ( 'hover info for negative data on a log axis' , function ( ) {
505
+ it ( 'shows negative data even though it is infinitely off-screen' , function ( done ) {
506
+ var gd = createGraphDiv ( ) ;
507
+
508
+ Plotly . plot ( gd , [ { x : [ 1 , 2 , 3 ] , y : [ 1 , - 5 , 10 ] } ] , {
509
+ yaxis : { type : 'log' } ,
510
+ width : 500 ,
511
+ height : 400 ,
512
+ margin : { l : 0 , t : 0 , r : 0 , b : 0 }
513
+ } )
514
+ . then ( function ( ) {
515
+ _hover ( gd , 250 , 200 ) ;
516
+ assertHoverLabelContent ( {
517
+ nums : '\u22125' , // unicode minus
518
+ axis : '2'
519
+ } ) ;
520
+ } )
521
+ . catch ( fail )
522
+ . then ( done ) ;
523
+ } ) ;
524
+ } ) ;
525
+
526
+ describe ( 'histogram hover info' , function ( ) {
527
+ it ( 'shows the data range when bins have multiple values' , function ( done ) {
528
+ var gd = createGraphDiv ( ) ;
529
+
530
+ Plotly . plot ( gd , [ {
531
+ x : [ 0 , 2 , 3 , 4 , 5 , 6 , 7 ] ,
532
+ xbins : { start : - 0.5 , end : 8.5 , size : 3 } ,
533
+ type : 'histogram'
534
+ } ] , {
535
+ width : 500 ,
536
+ height : 400 ,
537
+ margin : { l : 0 , t : 0 , r : 0 , b : 0 }
538
+ } )
539
+ . then ( function ( ) {
540
+ _hover ( gd , 250 , 200 ) ;
541
+ assertHoverLabelContent ( {
542
+ nums : '3' ,
543
+ axis : '3 - 5'
544
+ } ) ;
545
+ } )
546
+ . catch ( fail )
547
+ . then ( done ) ;
548
+ } ) ;
549
+
550
+ it ( 'shows the exact data when bins have single values' , function ( done ) {
551
+ var gd = createGraphDiv ( ) ;
552
+
553
+ Plotly . plot ( gd , [ {
554
+ // even though the data aren't regularly spaced, each bin only has
555
+ // one data value in it so we see exactly that value
556
+ x : [ 0 , 0 , 3.3 , 3.3 , 3.3 , 7 , 7 ] ,
557
+ xbins : { start : - 0.5 , end : 8.5 , size : 3 } ,
558
+ type : 'histogram'
559
+ } ] , {
560
+ width : 500 ,
561
+ height : 400 ,
562
+ margin : { l : 0 , t : 0 , r : 0 , b : 0 }
563
+ } )
564
+ . then ( function ( ) {
565
+ _hover ( gd , 250 , 200 ) ;
566
+ assertHoverLabelContent ( {
567
+ nums : '3' ,
568
+ axis : '3.3'
569
+ } ) ;
570
+ } )
571
+ . catch ( fail )
572
+ . then ( done ) ;
573
+ } ) ;
574
+ } ) ;
575
+
576
+ describe ( 'histogram2d hover info' , function ( ) {
577
+ it ( 'shows the data range when bins have multiple values' , function ( done ) {
578
+ var gd = createGraphDiv ( ) ;
579
+
580
+ Plotly . plot ( gd , [ {
581
+ x : [ 0 , 2 , 3 , 4 , 5 , 6 , 7 ] ,
582
+ y : [ 1 , 3 , 4 , 5 , 6 , 7 , 8 ] ,
583
+ xbins : { start : - 0.5 , end : 8.5 , size : 3 } ,
584
+ ybins : { start : 0.5 , end : 9.5 , size : 3 } ,
585
+ type : 'histogram2d'
586
+ } ] , {
587
+ width : 500 ,
588
+ height : 400 ,
589
+ margin : { l : 0 , t : 0 , r : 0 , b : 0 }
590
+ } )
591
+ . then ( function ( ) {
592
+ _hover ( gd , 250 , 200 ) ;
593
+ assertHoverLabelContent ( {
594
+ nums : 'x: 3 - 5\ny: 4 - 6\nz: 3'
595
+ } ) ;
596
+ } )
597
+ . catch ( fail )
598
+ . then ( done ) ;
599
+ } ) ;
600
+
601
+ it ( 'shows the exact data when bins have single values' , function ( done ) {
602
+ var gd = createGraphDiv ( ) ;
603
+
604
+ Plotly . plot ( gd , [ {
605
+ x : [ 0 , 0 , 3.3 , 3.3 , 3.3 , 7 , 7 ] ,
606
+ y : [ 2 , 2 , 4.2 , 4.2 , 4.2 , 8.8 , 8.8 ] ,
607
+ xbins : { start : - 0.5 , end : 8.5 , size : 3 } ,
608
+ ybins : { start : 0.5 , end : 9.5 , size : 3 } ,
609
+ type : 'histogram2d'
610
+ } ] , {
611
+ width : 500 ,
612
+ height : 400 ,
613
+ margin : { l : 0 , t : 0 , r : 0 , b : 0 }
614
+ } )
615
+ . then ( function ( ) {
616
+ _hover ( gd , 250 , 200 ) ;
617
+ assertHoverLabelContent ( {
618
+ nums : 'x: 3.3\ny: 4.2\nz: 3'
619
+ } ) ;
620
+ } )
621
+ . catch ( fail )
622
+ . then ( done ) ;
623
+ } ) ;
624
+ } ) ;
625
+
504
626
describe ( 'hoverformat' , function ( ) {
505
627
var data = [ {
506
628
x : [ 1 , 2 , 3 ] ,
0 commit comments