@fusioncharts/fusiontime
Version:
FusionCharts JavaScript time-series charting framework
1 lines • 5.52 kB
JavaScript
;var _domainUtils=require("./domain-utils");var _lib=require("@fusioncharts/core/src/lib");describe("Legacy Mode - getLinearMinMax (strictPadding=false)",(function(){it("pads dataMax beyond userMax by default",(function(){var _getLinearMinMax=(0,_domainUtils.getLinearMinMax)(0,621,0,600,true),min=_getLinearMinMax[0],max=_getLinearMinMax[1];expect(min).toBe(0);expect(max).toBeCloseTo(745.2,3)}));it("returns userMax when it exceeds dataMax",(function(){var _getLinearMinMax2=(0,_domainUtils.getLinearMinMax)(0,500,0,600,true),min=_getLinearMinMax2[0],max=_getLinearMinMax2[1];expect(min).toBe(0);expect(max).toBe(600)}));it("handles equal dataMin and dataMax with padding",(function(){var _getLinearMinMax3=(0,_domainUtils.getLinearMinMax)(100,100,_lib.UNDEF,_lib.UNDEF,true),min=_getLinearMinMax3[0],max=_getLinearMinMax3[1];expect(min).toBe(0);expect(max).toBeCloseTo(120,3)}));it("clamps negative-only data to zero when base is required",(function(){var _getLinearMinMax4=(0,_domainUtils.getLinearMinMax)(-10,-2,_lib.UNDEF,_lib.UNDEF,true),min=_getLinearMinMax4[0],max=_getLinearMinMax4[1];expect(min).toBeCloseTo(-11.6,3);expect(max).toBe(0)}));it("uses userMax when provided and larger than dataMax",(function(){var _getLinearMinMax5=(0,_domainUtils.getLinearMinMax)(0,5,_lib.UNDEF,10,true),min=_getLinearMinMax5[0],max=_getLinearMinMax5[1];expect(min).toBe(0);expect(max).toBe(10)}));it("honors userMin when lower than dataMin",(function(){var _getLinearMinMax6=(0,_domainUtils.getLinearMinMax)(0,10,-5,_lib.UNDEF,true),min=_getLinearMinMax6[0],max=_getLinearMinMax6[1];expect(min).toBe(-5);expect(max).toBeCloseTo(12,3)}));it("ignores explicit padding in legacy mode",(function(){var _getLinearMinMax7=(0,_domainUtils.getLinearMinMax)(0,100,_lib.UNDEF,_lib.UNDEF,true,{maxPad:.5,minPad:.5}),min=_getLinearMinMax7[0],max=_getLinearMinMax7[1];expect(min).toBe(0);expect(max).toBeCloseTo(120,3)}));it("falls back to a minimal span when data is missing",(function(){var _getLinearMinMax8=(0,_domainUtils.getLinearMinMax)(_lib.UNDEF,_lib.UNDEF,_lib.UNDEF,_lib.UNDEF,true),min=_getLinearMinMax8[0],max=_getLinearMinMax8[1];expect(min).toBe(0);expect(max).toBe(1)}));it("drops userMax when dataMax is missing (legacy quirk)",(function(){var _getLinearMinMax9=(0,_domainUtils.getLinearMinMax)(0,_lib.UNDEF,0,500,true),min=_getLinearMinMax9[0],max=_getLinearMinMax9[1];expect(min).toBe(0);expect(max).toBe(1)}));it("uses userMin when dataMin is missing",(function(){var _getLinearMinMax0=(0,_domainUtils.getLinearMinMax)(_lib.UNDEF,100,-20,_lib.UNDEF,true),min=_getLinearMinMax0[0],max=_getLinearMinMax0[1];expect(min).toBe(-20);expect(max).toBeCloseTo(120,3)}))}));describe("Strict Mode - getLinearMinMax (strictPadding=true)",(function(){it("uses userMax as-is when provided (no implicit padding)",(function(){var _getLinearMinMax1=(0,_domainUtils.getLinearMinMax)(0,621,0,600,true,_lib.UNDEF,true),min=_getLinearMinMax1[0],max=_getLinearMinMax1[1];expect(min).toBe(0);expect(max).toBe(600)}));it("ignores minPad when userMin is provided",(function(){var _getLinearMinMax10=(0,_domainUtils.getLinearMinMax)(0,100,10,_lib.UNDEF,false,{minPad:.5},true),min=_getLinearMinMax10[0];expect(min).toBe(10)}));it("applies explicit maxPad when userMax is absent",(function(){var _getLinearMinMax11=(0,_domainUtils.getLinearMinMax)(0,100,_lib.UNDEF,_lib.UNDEF,true,{maxPad:.5},true),min=_getLinearMinMax11[0],max=_getLinearMinMax11[1];expect(min).toBe(0);expect(max).toBe(150)}));it("pads data min with minPad when userMin is absent and base is not required",(function(){var _getLinearMinMax12=(0,_domainUtils.getLinearMinMax)(100,200,_lib.UNDEF,_lib.UNDEF,false,{minPad:.5},true),min=_getLinearMinMax12[0],max=_getLinearMinMax12[1];expect(min).toBe(50);expect(max).toBe(220)}));it("does not apply minPad when min is zero and base is required",(function(){var _getLinearMinMax13=(0,_domainUtils.getLinearMinMax)(0,100,0,_lib.UNDEF,true,{minPad:.5},true),min=_getLinearMinMax13[0];expect(min).toBe(0)}));it("applies both minPad and maxPad when user bounds are absent",(function(){var _getLinearMinMax14=(0,_domainUtils.getLinearMinMax)(100,200,_lib.UNDEF,_lib.UNDEF,false,{minPad:.1,maxPad:.5},true),min=_getLinearMinMax14[0],max=_getLinearMinMax14[1];expect(min).toBe(90);expect(max).toBe(300)}));it("ignores maxPad when userMax is provided",(function(){var _getLinearMinMax15=(0,_domainUtils.getLinearMinMax)(0,100,_lib.UNDEF,50,true,{maxPad:.5},true),max=_getLinearMinMax15[1];expect(max).toBe(50)}));it("snaps to zero for all-negative data when base is required",(function(){var _getLinearMinMax16=(0,_domainUtils.getLinearMinMax)(-10,-2,_lib.UNDEF,_lib.UNDEF,true,{maxPad:.5},true),max=_getLinearMinMax16[1];expect(max).toBe(0)}));it("pads negative data top when base is not required",(function(){var _getLinearMinMax17=(0,_domainUtils.getLinearMinMax)(-10,-2,_lib.UNDEF,_lib.UNDEF,false,{maxPad:.5},true),max=_getLinearMinMax17[1];expect(max).toBeCloseTo(-1,3)}));it("does not shift min below zero when dataMin is zero (padding is proportional)",(function(){var _getLinearMinMax18=(0,_domainUtils.getLinearMinMax)(0,50,_lib.UNDEF,_lib.UNDEF,false,{minPad:.5},true),min=_getLinearMinMax18[0];expect(min).toBe(0)}));it("falls back to a minimal span when data is missing (strict)",(function(){var _getLinearMinMax19=(0,_domainUtils.getLinearMinMax)(_lib.UNDEF,_lib.UNDEF,_lib.UNDEF,_lib.UNDEF,true,_lib.UNDEF,true),min=_getLinearMinMax19[0],max=_getLinearMinMax19[1];expect(min).toBe(0);expect(max).toBe(1)}))}));