@@ -507,41 +507,41 @@ describe('applySortingToData', () => {
507507describe ( 'getRoundReferenceValue' , ( ) => {
508508 it ( 'should return appropriate rounded values with 10% buffer' , ( ) => {
509509 // Small values (< 10)
510- expect ( getRoundReferenceValue ( 0.1 ) ) . toBe ( 0.2 ) ; // 0.1 → 0.11 → 0.2
511- expect ( getRoundReferenceValue ( 1 ) ) . toBe ( 2 ) ; // 1.1 → 1.5 → 2
512- expect ( getRoundReferenceValue ( 2 ) ) . toBe ( 5 ) ; // 2.2 → 3 → 5
513- expect ( getRoundReferenceValue ( 3 ) ) . toBe ( 5 ) ; // 3.3 → 4 → 5
510+ expect ( getRoundReferenceValue ( 0.1 ) ) . toBe ( 0.1 ) ; // 0.1 → 0.11 → 0.1 (magnitude 0.1, remainder 0.01)
511+ expect ( getRoundReferenceValue ( 1 ) ) . toBe ( 1 ) ; // 1 → 1.1 → 1 (magnitude 1, remainder 0.1)
512+ expect ( getRoundReferenceValue ( 2 ) ) . toBe ( 2 ) ; // 2 → 2 .2 → 2 (magnitude 1, remainder 0.2)
513+ expect ( getRoundReferenceValue ( 3 ) ) . toBe ( 3 ) ; // 3 → 3 .3 → 3 (magnitude 1, remainder 0.3)
514514
515515 // Values 5-10 range
516- expect ( getRoundReferenceValue ( 6 ) ) . toBe ( 10 ) ; // 6.6 → 10 (skip 7.5 for values < 10 )
517- expect ( getRoundReferenceValue ( 9 ) ) . toBe ( 10 ) ; // 9.9 → 10
516+ expect ( getRoundReferenceValue ( 6 ) ) . toBe ( 6 ) ; // 6 → 6 .6 → 6 (magnitude 1, remainder 0.6 )
517+ expect ( getRoundReferenceValue ( 9 ) ) . toBe ( 9 ) ; // 9 → 9 .9 → 9 (magnitude 1, remainder 0.9)
518518
519519 // Larger values get 10% buffer applied
520- expect ( getRoundReferenceValue ( 15 ) ) . toBe ( 20 ) ; // 16.5 → 20
521- expect ( getRoundReferenceValue ( 35 ) ) . toBe ( 40 ) ; // 38.5 → 40
522- expect ( getRoundReferenceValue ( 75 ) ) . toBe ( 100 ) ; // 82.5 → 100
523- expect ( getRoundReferenceValue ( 150 ) ) . toBe ( 200 ) ; // 165 → 200
524- expect ( getRoundReferenceValue ( 350 ) ) . toBe ( 400 ) ; // 385 → 400
525- expect ( getRoundReferenceValue ( 750 ) ) . toBe ( 1000 ) ; // 825 → 1000
526- expect ( getRoundReferenceValue ( 1500 ) ) . toBe ( 2000 ) ; // 1650 → 2000
527- expect ( getRoundReferenceValue ( 3500 ) ) . toBe ( 4000 ) ; // 3850 → 4000
528- expect ( getRoundReferenceValue ( 7500 ) ) . toBe ( 10000 ) ; // 8250 → 10000
529- expect ( getRoundReferenceValue ( 15000 ) ) . toBe ( 20000 ) ; // 16500 → 20000
520+ expect ( getRoundReferenceValue ( 15 ) ) . toBe ( 10 ) ; // 15 → 16.5, remainder 5, incremented 20 > 16.5, so round down to 10
521+ expect ( getRoundReferenceValue ( 35 ) ) . toBe ( 30 ) ; // 35 → 38.5, remainder 5, incremented 40 > 38.5, so round down to 30
522+ expect ( getRoundReferenceValue ( 75 ) ) . toBe ( 80 ) ; // 75 → 82.5, remainder 5, incremented 80 <= 82.5, so round up to 80
523+ expect ( getRoundReferenceValue ( 150 ) ) . toBe ( 150 ) ; // 150 → 165, remainder 0, so return 150
524+ expect ( getRoundReferenceValue ( 350 ) ) . toBe ( 350 ) ; // 350 → 385, remainder 0, so return 350
525+ expect ( getRoundReferenceValue ( 750 ) ) . toBe ( 750 ) ; // 750 → 825, remainder 0, so return 750
526+ expect ( getRoundReferenceValue ( 1500 ) ) . toBe ( 1500 ) ; // 1500 → 1650, remainder 0, so return 1500
527+ expect ( getRoundReferenceValue ( 3500 ) ) . toBe ( 3500 ) ; // 3500 → 3850, remainder 0, so return 3500
528+ expect ( getRoundReferenceValue ( 7500 ) ) . toBe ( 7500 ) ; // 7500 → 8250, remainder 0, so return 7500
529+ expect ( getRoundReferenceValue ( 15000 ) ) . toBe ( 15000 ) ; // 15000 → 16500, remainder 0, so return 15000
530530 } ) ;
531531} ) ;
532532
533533describe ( 'getTicks' , ( ) => {
534534 describe ( 'small values (< 10)' , ( ) => {
535535 it ( 'should return 2 ticks for non-symmetrical small values' , ( ) => {
536- expect ( getTicks ( 1 , false ) ) . toEqual ( [ 0 , 1 ] ) ;
537- expect ( getTicks ( 2 , false ) ) . toEqual ( [ 0 , 2 ] ) ;
538- expect ( getTicks ( 5 , false ) ) . toEqual ( [ 0 , 5 ] ) ;
536+ expect ( getTicks ( 1 , false ) ) . toEqual ( [ 0 , 0.5 , 1 ] ) ; // 1 % 2 != 0, defaults to 3 ticks
537+ expect ( getTicks ( 2 , false ) ) . toEqual ( [ 0 , 1 , 2 ] ) ; // 2 % (3-1) == 0, uses 3 ticks
538+ expect ( getTicks ( 5 , false ) ) . toEqual ( [ 0 , 2.5 , 5 ] ) ; // 5 % 2 != 0 and 5 % 3 != 0, defaults to 3 ticks
539539 } ) ;
540540
541541 it ( 'should return 3 ticks for symmetrical small values' , ( ) => {
542- expect ( getTicks ( 1 , true ) ) . toEqual ( [ - 1 , 0 , 1 ] ) ;
543- expect ( getTicks ( 2 , true ) ) . toEqual ( [ - 2 , 0 , 2 ] ) ;
544- expect ( getTicks ( 5 , true ) ) . toEqual ( [ - 5 , 0 , 5 ] ) ;
542+ expect ( getTicks ( 1 , true ) ) . toEqual ( [ - 1 , - 0.5 , 0 , 0.5 , 1 ] ) ; // 1 % 2 != 0, defaults to 3 ticks, symmetrical adds negatives
543+ expect ( getTicks ( 2 , true ) ) . toEqual ( [ - 2 , - 1 , 0 , 1 , 2 ] ) ; // 2 % (3-1) == 0, uses 3 ticks, symmetrical adds negatives
544+ expect ( getTicks ( 5 , true ) ) . toEqual ( [ - 5 , - 2.5 , 0 , 2.5 , 5 ] ) ; // 5 % 2 != 0 and 5 % 3 != 0, defaults to 3 ticks, symmetrical adds negatives
545545 } ) ;
546546 } ) ;
547547
@@ -738,8 +738,8 @@ describe('computeUnitLabelAndRoundReferenceValue', () => {
738738 ) ;
739739
740740 expect ( result . unitLabel ) . toBe ( 'kB' ) ;
741- // 1680 / 1000 = 1.68, with buffer: 1.848 → rounds to 2
742- expect ( result . roundReferenceValue ) . toBe ( 2 ) ;
741+ // 1680 / 1000 = 1.68, with buffer: 1.848 → rounds to 1 (magnitude 1, remainder 0.848)
742+ expect ( result . roundReferenceValue ) . toBe ( 1 ) ;
743743 expect ( result . rechartsData ) . toEqual ( [
744744 {
745745 category : 'category1' ,
@@ -772,8 +772,8 @@ describe('computeUnitLabelAndRoundReferenceValue', () => {
772772 ) ;
773773
774774 expect ( result . unitLabel ) . toBe ( 'B' ) ;
775- // 680 with buffer: 748 → rounds to 800 (8 * 100, value > 10 )
776- expect ( result . roundReferenceValue ) . toBe ( 800 ) ;
775+ // 680 with buffer: 748 → rounds to 680 (value >= 10, remainder 0, rounds down )
776+ expect ( result . roundReferenceValue ) . toBe ( 680 ) ;
777777 expect ( result . rechartsData ) . toEqual ( [
778778 { category : 'category1' , success : 680 } ,
779779 ] ) ;
0 commit comments