UNPKG

@fusioncharts/fusiontime

Version:

FusionCharts JavaScript time-series charting framework

1 lines 40.9 kB
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _axis=_interopRequireDefault(require("./axis"));var _timeBin=_interopRequireDefault(require("./../../../../fc-utils/src/scales/time-bin"));var _linear=_interopRequireDefault(require("./../../../../fc-utils/src/scales/linear"));var _timeConverter=_interopRequireDefault(require("./../../../../fc-utils/src/time-converter"));var _SmartlabelManager=_interopRequireDefault(require("../../../../fc-core/src/_internal/vendors/fusioncharts-smartlabel/src/SmartlabelManager"));var _timeIntervals=require("./../../../../fc-utils/src/time-intervals");var Scale=function(){function Scale(){this._timeFormat={major:"day",minor:"hour"};this._tickType=["major","minor","minor","minor","major","minor","minor","minor","major"];this.formatters={millisecond:_timeConverter.default.formatter(".%L"),second:_timeConverter.default.formatter(":%S"),minute:_timeConverter.default.formatter("%I:%M"),hour:_timeConverter.default.formatter("%I %p"),day:_timeConverter.default.formatter("%b %d"),week:_timeConverter.default.formatter("%b %d"),month:_timeConverter.default.formatter("%B"),year:_timeConverter.default.formatter("%Y")}}var _proto=Scale.prototype;_proto.getRangeValue=function getRangeValue(d){return Number(d)};_proto.ticks=function ticks(){return[new Date("Sat Feb 01 2014 00:00:00 GMT+0530"),new Date("Sat Feb 01 2014 06:00:00 GMT+0530"),new Date("Sat Feb 01 2014 12:00:00 GMT+0530"),new Date("Sat Feb 01 2014 18:00:00 GMT+0530"),new Date("Sun Feb 02 2014 00:00:00 GMT+0530"),new Date("Sun Feb 02 2014 06:00:00 GMT+0530"),new Date("Sun Feb 02 2014 12:00:00 GMT+0530"),new Date("Sun Feb 02 2014 18:00:00 GMT+0530"),new Date("Mon Feb 03 2014 00:00:00 GMT+0530")]};_proto.setDomain=function setDomain(){};_proto.getDomain=function getDomain(){return[new Date("Fri Jan 31 2014 11:30:00 GMT+0530"),new Date("Mon Feb 03 2014 00:30:00 GMT+0530")]};_proto.tickFormat=function tickFormat(){var _this=this;return function(d,type){return _this.formatters[type].format(d)}};_proto.getRange=function getRange(){return[49.2314453125,584]};_proto.copy=function copy(){return this};_proto.makeBin=function makeBin(){var tick=this.ticks(),inc=6e4,i=0,startDate=+tick[0],firstbinstart=startDate-3*inc,endDate=+tick[tick.length-1],lastbinend=endDate+3*inc,currbinstart,currbinend,obj={cliptype:0,start:new Date,end:new Date},bins=[];while(firstbinstart<lastbinend){currbinstart=firstbinstart;firstbinstart+=inc;currbinend=firstbinstart;obj["start"]=new Date(currbinstart);obj["end"]=new Date(currbinend);bins[i]=obj;i++}return bins};return Scale}();describe("AX_TS_1: Verify axis is placed in position",(function(){var axis,graphicalElements={};beforeEach((function(){axis=new _axis.default;axis._env={smartLabel:new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]),dataSource:{}};graphicalElements={};axis.addGraphicalElement=function(obj){graphicalElements[obj.id]=obj};axis.getGraphicalElement=function(id){return graphicalElements[id]};axis._env.chart={config:{}};axis.config.values=[];axis.__setDefaultConfig()}));afterEach((function(){axis=undefined;graphicalElements={}}));describe("Test for Vertical Axis",(function(){it("vertical left axis translation",(function(){axis.configure({align:"left"});axis.setTranslation(40);expect(axis.config.groupTranslation).toBe("t40, 0")}));it("vertical left axis orientation",(function(){axis.configure({align:"left"});axis.setTranslation(40);expect(axis.config.k).toBe(-1)}));it("vertical right axis translation",(function(){axis.configure({align:"right"});axis.setTranslation(40);expect(axis.config.groupTranslation).toBe("t40, 0")}));it("vertical right axis orientation",(function(){axis.configure({align:"right"});expect(axis.config.k).toBe(1)}))}));describe("Test for Horizontal Axis",(function(){it("horizontal top axis translation",(function(){axis.configure({align:"top"});axis.setTranslation(0,40);expect(axis.config.groupTranslation).toBe("t0, 40")}));it("horizontal top axis orientation",(function(){axis.configure({align:"top"});expect(axis.config.k).toBe(-1)}));it("horizontal bottom axis translation",(function(){axis.configure({align:"bottom"});axis.setTranslation(0,40);expect(axis.config.groupTranslation).toBe("t0, 40")}));it("horizontal bottom axis orientation",(function(){axis.configure({align:"bottom"});expect(axis.config.k).toBe(1)}))}));describe("Test for final attr sent for drawing element: Horizontal Axis",(function(){it("horizontal top axis attr",(function(){axis.configure({align:"top"});axis.setTranslation(0,40);axis.draw();expect(axis.getGraphicalElement("axisGroup").attr.name).toBe("axis-top");expect(axis.getGraphicalElement("meso-axis").attr.transform).toBe("t0, 40")}));it("horizontal bottom axis attr",(function(){axis.configure({align:"bottom"});axis.setTranslation(0,40);axis.draw();expect(axis.getGraphicalElement("axisGroup").attr.name).toBe("axis-bottom");expect(axis.getGraphicalElement("meso-axis").attr.transform).toBe("t0, 40")}))}));describe("Test for final attr sent for drawing element: Vertical Axis",(function(){it("vertical left axis attr",(function(){axis.configure({align:"left"});axis.setTranslation(40);axis.draw();expect(axis.getGraphicalElement("axisGroup").attr.name).toBe("axis-left");expect(axis.getGraphicalElement("meso-axis").attr.transform).toBe("t40, 0")}));it("vertical right axis attr",(function(){axis.configure({align:"right"});axis.setTranslation(40);axis.draw();expect(axis.getGraphicalElement("axisGroup").attr.name).toBe("axis-right");expect(axis.getGraphicalElement("meso-axis").attr.transform).toBe("t40, 0")}))}))}));describe("AX_TS_2: Verify the length of the ticks",(function(){var axis,scale,typeRegex={tick:/tick-[0-9]+/gi,"tick-label":/tick-label-[0-9]+/gi,"tick-group":/tick-group-[0-9]+/gi},graphicalElements={},domain=[13912128e5,139135284e4];var formatterFn=function formatterFn(_ref){var value=_ref.value;return(+value).toFixed(8)};beforeEach((function(){axis=new _axis.default;scale=new Scale;scale.setDomain(domain);axis._env={chart:{config:{}},smartLabel:new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]),dataSource:{}};axis.__setDefaultConfig();axis.configure({scale:scale,align:"bottom"});graphicalElements={};axis.addGraphicalElement=function(obj){graphicalElements[obj.id]=obj};axis.getGraphicalElement=function(id){return graphicalElements[id]};axis.getGraphicalElementByType=function(type){var keyArr=Object.keys(graphicalElements).filter((function(key){return typeRegex[type].test(key)})),typeArr=[];for(var i=0;i<keyArr.length;++i){typeArr.push(graphicalElements[keyArr[i]])}return typeArr}}));afterEach((function(){axis=undefined;scale=undefined}));it("AX_TC_13: The length of all minor ticks should be equal",(function(){axis.placeAxis();axis.draw();var ticks=axis.getGraphicalElementByType("tick");for(var i=0;i<scale._tickType.length;++i){if(scale._tickType[i]==="minor"){expect(ticks[i].attr.path).toBe("M 0 0 V 8")}}}));it("AX_TC_14: The length of all major ticks should be equal",(function(){axis.placeAxis();axis.draw();var ticks=axis.getGraphicalElementByType("tick");for(var i=0;i<scale._tickType.length;++i){if(scale._tickType[i]==="major"){expect(ticks[i].attr.path).toBe("M 0 0 V 12")}}}));it("AX_TC_15: The length of major tick must be greater than minor tick",(function(){axis.placeAxis();axis.draw();var minorTickIndex=scale._tickType.indexOf("minor"),ticks=axis.getGraphicalElementByType("tick"),minorTickLen=+ticks[minorTickIndex].attr.path.split(" ").pop();for(var i=0;i<ticks.length;++i){if(scale._tickType[i]==="major"){expect(+ticks[i].attr.path.split(" ").pop()).toBeGreaterThan(minorTickLen)}}}));it("AX_TC_16: Validate the ticks length when negative value is provided",(function(){axis.configure({scale:scale,align:"bottom",tickSize:-12,formatterFn:formatterFn});axis.config.tickFormat=function(value){return(+value).toFixed(8)};axis.placeAxis();axis.draw();var ticks=axis.getGraphicalElementByType("tick");for(var i=0;i<scale._tickType.length;++i){expect(+ticks[i].attr.path.split(" ").pop()).toBeGreaterThan(0)}}))}));describe("AX_TS_4: Verify the alignment of the ticks",(function(){var axis,scale,typeRegex={tick:/tick-[0-9]+/gi,"tick-label":/tick-label-[0-9]+/gi,"tick-group":/tick-group-[0-9]+/gi},graphicalElements={},domain=[13912128e5,139135284e4];var formatterFn=function formatterFn(_ref2){var value=_ref2.value;return(+value).toFixed(8)};beforeEach((function(){axis=new _axis.default;scale=new Scale;scale.setDomain(domain);axis._env={chart:{config:{}},smartLabel:new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]),dataSource:{}};axis.__setDefaultConfig();axis.configure({scale:scale,align:"bottom",formatterFn:formatterFn});graphicalElements={};axis.addGraphicalElement=function(obj){graphicalElements[obj.id]=obj};axis.getGraphicalElement=function(id){return graphicalElements[id]};axis.getGraphicalElementByType=function(type){var keyArr=Object.keys(graphicalElements).filter((function(key){return typeRegex[type].test(key)})),typeArr=[];for(var i=0;i<keyArr.length;++i){typeArr.push(graphicalElements[keyArr[i]])}return typeArr}}));afterEach((function(){axis=undefined;scale=undefined}));it("AX_TC_19: All the ticks must be drawn from a fixed height (x-axis line)",(function(){axis.config.tickFormat=function(value){return(+value).toFixed(8)};axis.placeAxis();axis.draw();var ticks=axis.getGraphicalElementByType("tick"),tickGroups=axis.getGraphicalElementByType("tick-group");for(var i=0;i<tickGroups.length;++i){expect(+tickGroups[i].attr.transform.split(",")[1]).toBe(0);expect(ticks[i].attr.path.split(" ")[0]).toBe("M");expect(ticks[i].attr.path.split(" ")[1]).toBe("0");expect(ticks[i].attr.path.split(" ")[2]).toBe("0")}}));it("AX_TC_20: The space between any two consecutive ticks must equal",(function(){axis.config.tickFormat=function(value){return(+value).toFixed(8)};axis.placeAxis();axis.draw();var tickGroups=axis.getGraphicalElementByType("tick-group"),getXTranslation=function getXTranslation(transformString){return+transformString.split(",")[0].substring(1)},differenceWidth=getXTranslation(tickGroups[1].attr.transform)-getXTranslation(tickGroups[0].attr.transform);for(var i=1;i<tickGroups.length;++i){expect(getXTranslation(tickGroups[i].attr.transform)-getXTranslation(tickGroups[i-1].attr.transform)).toBe(differenceWidth)}}))}));describe("AX_TS_7: Verify that minor labels are not overlapping",(function(){var axis,scale,getXTranslation=function getXTranslation(transformString){return+transformString.split(",")[0].substring(1)},smartLabel=new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]),typeRegex={tick:/tick-[0-9]+/gi,"tick-label":/tick-label-[0-9]+/gi,"tick-group":/tick-group-[0-9]+/gi},graphicalElements={},domain=[13912128e5,13913532e5];beforeEach((function(){axis=new _axis.default;scale=new _timeBin.default;scale.setRange([49.2314453125,584]);scale.setDomain(domain);scale.setThresholdIntervals([[_timeIntervals.timeMinute,1,6e4],[_timeIntervals.timeHour,1,60*6e4]]);scale.setBinMin([_timeIntervals.timeMinute,1,6e4]);scale.setRangeThreshold([_timeIntervals.timeMinute,1,6e4]);scale.bins=(new Scale).makeBin();axis._env={chart:{config:{}},smartLabel:smartLabel,getStyleDef:function getStyleDef(styleDef){return styleDef},dataSource:{}};axis.__setDefaultConfig();axis.configure({scale:scale,align:"bottom"});graphicalElements={};axis.addGraphicalElement=function(obj){graphicalElements[obj.id]=obj};axis.getGraphicalElement=function(id){return graphicalElements[id]};axis.getGraphicalElementByType=function(type){var keyArr=Object.keys(graphicalElements).filter((function(key){return typeRegex[type].test(key)})),typeArr=[];for(var i=0;i<keyArr.length;++i){typeArr.push(graphicalElements[keyArr[i]])}return typeArr}}));afterEach((function(){axis=undefined;scale=undefined}));it("AX_TC_27: Consecutive minor labels should not overlap with each other when labels are small",(function(){axis._env.baseTextStyle={fontFamily:"sans-serif",fontSize:12+"px",fontStyle:"normal",fontWeight:"normal"};axis.parseStyle();axis.placeAxis();axis.draw();var labels=axis.getGraphicalElementByType("tick-label"),tickGroup=axis.getGraphicalElementByType("tick-group"),ticksArr=[],labelStartPos,labelWidth,labelEndPos;for(var i=0;i<tickGroup.length;++i){labelWidth=smartLabel.getSmartText(labels[i].attr.text||"").width;labelStartPos=getXTranslation(tickGroup[i].attr.transform)-labelWidth/2;labelEndPos=getXTranslation(tickGroup[i].attr.transform)+labelWidth/2;if(scale._tickType[i]==="minor"&&labels[i].attr.text){ticksArr.push({start:labelStartPos,end:labelEndPos})}}for(var _i=0;_i<ticksArr.length-1;++_i){expect(ticksArr[_i].end).toBeLessThan(ticksArr[_i+1].start)}}));it("AX_TC_48: Consecutive minor labels should not overlap with each other when labels are large",(function(){axis._env.baseTextStyle={fontFamily:"sans-serif",fontSize:72+"px",fontStyle:"normal",fontWeight:"normal"};axis.parseStyle();axis.placeAxis();axis.draw();var labels=axis.getGraphicalElementByType("tick-label"),tickGroup=axis.getGraphicalElementByType("tick-group"),ticksArr=[],labelStartPos,labelWidth,labelEndPos;for(var i=0;i<tickGroup.length;++i){labelWidth=smartLabel.getSmartText(labels[i].attr.text||"").width;labelStartPos=getXTranslation(tickGroup[i].attr.transform)-labelWidth/2;labelEndPos=getXTranslation(tickGroup[i].attr.transform)+labelWidth/2;if(scale._tickType[i]==="minor"&&labels[i].attr.text){ticksArr.push({start:labelStartPos,end:labelEndPos})}}for(var _i2=0;_i2<ticksArr.length-1;++_i2){expect(ticksArr[_i2].end).toBeLessThan(ticksArr[_i2+1].start)}}))}));describe("AX_TS_8: Verify that major labels are not overlapping",(function(){var axis,scale,getXTranslation=function getXTranslation(transformString){return+transformString.split(",")[0].substring(1)},smartLabel=new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]),typeRegex={tick:/tick-[0-9]+/gi,"tick-label":/tick-label-[0-9]+/gi,"tick-group":/tick-group-[0-9]+/gi},graphicalElements={},domain=[13912128e5,13913532e5];beforeEach((function(){axis=new _axis.default;scale=new _timeBin.default;scale.setRange([49.2314453125,584]);scale.setDomain(domain);scale.setThresholdIntervals([[_timeIntervals.timeMinute,1,6e4]]);scale.setBinMin([_timeIntervals.timeMinute,1,6e4]);scale.setRangeThreshold([_timeIntervals.timeMinute,1,6e4]);axis._env={chart:{config:{}},smartLabel:smartLabel,getStyleDef:function getStyleDef(styleDef){return styleDef},dataSource:{}};axis.__setDefaultConfig();axis.configure({scale:scale,align:"bottom"});graphicalElements={};axis.addGraphicalElement=function(obj){graphicalElements[obj.id]=obj};axis.getGraphicalElement=function(id){return graphicalElements[id]};axis.getGraphicalElementByType=function(type){var keyArr=Object.keys(graphicalElements).filter((function(key){return typeRegex[type].test(key)})),typeArr=[];for(var i=0;i<keyArr.length;++i){typeArr.push(graphicalElements[keyArr[i]])}return typeArr}}));afterEach((function(){axis=undefined;scale=undefined}));it("AX_TC_28: Consecutive major labels should not overlap with each other when labels are small",(function(){scale.setDomain([13912128e5,13912199e5]);axis._env.baseTextStyle={fontFamily:"sans-serif",fontSize:12+"px",fontStyle:"normal",fontWeight:"normal"};axis.parseStyle();axis.placeAxis();axis.draw();var labels=axis.getGraphicalElementByType("tick-label"),tickGroup=axis.getGraphicalElementByType("tick-group"),ticksArr=[],labelStartPos,labelWidth,labelEndPos;for(var i=0;i<tickGroup.length;++i){labelWidth=smartLabel.getSmartText(labels[i].attr.text||"").width;labelStartPos=getXTranslation(tickGroup[i].attr.transform)-labelWidth/2;labelEndPos=getXTranslation(tickGroup[i].attr.transform)+labelWidth/2;if(scale._tickType[i]==="major"&&labels[i].attr.text){ticksArr.push({start:labelStartPos,end:labelEndPos})}}for(var _i3=0;_i3<ticksArr.length-1;++_i3){expect(ticksArr[_i3].end).toBeLessThan(ticksArr[_i3+1].start)}}));it("AX_TC_49: Consecutive major labels should not overlap with each other when labels are large",(function(){scale.setDomain([13912128e5,13912199e5]);axis._env.baseTextStyle={fontFamily:"sans-serif",fontSize:100+"px",fontStyle:"normal",fontWeight:"normal"};axis.parseStyle();axis.placeAxis();axis.draw();var labels=axis.getGraphicalElementByType("tick-label"),tickGroup=axis.getGraphicalElementByType("tick-group"),ticksArr=[],labelStartPos,labelWidth,labelEndPos;for(var i=0;i<tickGroup.length;++i){labelWidth=smartLabel.getSmartText(labels[i].attr.text||"").width;labelStartPos=getXTranslation(tickGroup[i].attr.transform)-labelWidth/2;labelEndPos=getXTranslation(tickGroup[i].attr.transform)+labelWidth/2;if(scale._tickType[i]==="major"&&labels[i].attr.text){ticksArr.push({start:labelStartPos,end:labelEndPos})}}for(var _i4=0;_i4<ticksArr.length-1;++_i4){expect(ticksArr[_i4].end).toBeLessThan(ticksArr[_i4+1].start)}}))}));describe("AX_TS_9: Verify that major label and minor labels are not overlapping",(function(){var axis,scale,getXTranslation=function getXTranslation(transformString){return+transformString.split(",")[0].substring(1)},smartLabel=new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]),typeRegex={tick:/tick-[0-9]+/gi,"tick-label":/tick-label-[0-9]+/gi,"tick-group":/tick-group-[0-9]+/gi},graphicalElements={},domain=[13912128e5,13913532e5];beforeEach((function(){axis=new _axis.default;scale=new _timeBin.default;scale.setRange([49.2314453125,584]);scale.setDomain(domain);scale.setThresholdIntervals([[_timeIntervals.timeMinute,1,6e4],[_timeIntervals.timeHour,1,60*6e4]]);scale.setBinMin([_timeIntervals.timeMinute,1,6e4]);scale.setRangeThreshold([_timeIntervals.timeMinute,1,6e4]);axis._env={chart:{config:{}},smartLabel:smartLabel,getStyleDef:function getStyleDef(styleDef){return styleDef},dataSource:{}};axis.__setDefaultConfig();axis.configure({scale:scale,align:"bottom"});graphicalElements={};axis.addGraphicalElement=function(obj){graphicalElements[obj.id]=obj};axis.getGraphicalElement=function(id){return graphicalElements[id]};axis.getGraphicalElementByType=function(type){var keyArr=Object.keys(graphicalElements).filter((function(key){return typeRegex[type].test(key)})),typeArr=[];for(var i=0;i<keyArr.length;++i){typeArr.push(graphicalElements[keyArr[i]])}return typeArr}}));afterEach((function(){axis=undefined;scale=undefined}));it("AX_TC_29: Major label should not overlap with minor labels when label size is small",(function(){scale.setDomain([13912128e5,13912299e5]);axis._env.baseTextStyle={fontFamily:"sans-serif",fontSize:20+"px",fontStyle:"normal",fontWeight:"normal"};axis.parseStyle();axis.placeAxis();axis.draw();var labels=axis.getGraphicalElementByType("tick-label"),tickGroup=axis.getGraphicalElementByType("tick-group"),ticksArr=[],labelStartPos,labelWidth,labelEndPos;for(var i=0;i<tickGroup.length;++i){labelWidth=smartLabel.getSmartText(labels[i].attr.text||"").width;labelStartPos=getXTranslation(tickGroup[i].attr.transform)-labelWidth/2;labelEndPos=getXTranslation(tickGroup[i].attr.transform)+labelWidth/2;if(labels[i].attr.text){ticksArr.push({start:labelStartPos,end:labelEndPos})}}for(var _i5=0;_i5<ticksArr.length-1;++_i5){expect(ticksArr[_i5].end).toBeLessThan(ticksArr[_i5+1].start)}}));it("AX_TC_30: Major label should not overlap with minor labels when label size is large",(function(){scale.setDomain([13912128e5,13912199e5]);axis._env.baseTextStyle={fontFamily:"sans-serif",fontSize:72+"px",fontStyle:"normal",fontWeight:"normal"};axis.parseStyle();axis.placeAxis();axis.draw();var labels=axis.getGraphicalElementByType("tick-label"),tickGroup=axis.getGraphicalElementByType("tick-group"),ticksArr=[],labelStartPos,labelWidth,labelEndPos;for(var i=0;i<tickGroup.length;++i){labelWidth=smartLabel.getSmartText(labels[i].attr.text||"").width;labelStartPos=getXTranslation(tickGroup[i].attr.transform)-labelWidth/2;labelEndPos=getXTranslation(tickGroup[i].attr.transform)+labelWidth/2;if(labels[i].attr.text){ticksArr.push({start:labelStartPos,end:labelEndPos})}}for(var _i6=0;_i6<ticksArr.length-1;++_i6){expect(ticksArr[_i6].end).toBeLessThan(ticksArr[_i6+1].start)}}))}));describe("AX_TS_10: Verify alignment of the labels",(function(){var axis,scale,smartLabel=new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]),typeRegex={tick:/tick-[0-9]+/gi,"tick-label":/tick-label-[0-9]+/gi,"tick-group":/tick-group-[0-9]+/gi},graphicalElements={},domain=[13912128e5,13913532e5],idx;beforeEach((function(){axis=new _axis.default;scale=new _timeBin.default;scale.setRange([49.2314453125,584]);scale.setDomain(domain);scale.setThresholdIntervals([[_timeIntervals.timeMinute,1,6e4],[_timeIntervals.timeHour,1,60*6e4],[_timeIntervals.timeDay,1,24*3600*1e3]]);scale.setBinMin([_timeIntervals.timeMinute,1,6e4]);scale.setRangeThreshold([_timeIntervals.timeMinute,1,6e4]);axis._env={chart:{config:{}},smartLabel:smartLabel,getStyleDef:function getStyleDef(styleDef){return styleDef},dataSource:{}};axis.__setDefaultConfig();axis.configure({scale:scale,align:"bottom"});graphicalElements={};axis.addGraphicalElement=function(obj){graphicalElements[obj.id]=obj};axis.getGraphicalElement=function(id){return graphicalElements[id]};axis.getGraphicalElementByType=function(type){var keyArr=Object.keys(graphicalElements).filter((function(key){return typeRegex[type].test(key)})),typeArr=[];for(var i=0;i<keyArr.length;++i){typeArr.push(graphicalElements[keyArr[i]])}return typeArr}}));afterEach((function(){axis=undefined;scale=undefined}));it("AX_TC_31: Major labels must be aligned middle to its tick",(function(){scale.setDomain([13912128e5,13912199e5]);axis._env.baseTextStyle={fontFamily:"sans-serif",fontSize:20+"px",fontStyle:"normal",fontWeight:"normal"};axis.parseStyle();axis.placeAxis();axis.draw();var labels=axis.getGraphicalElementByType("tick-label"),tickTypesArr=scale._tickType;for(var i=0;i<labels.length;++i){idx=+labels[i].id.split("-").pop();if(tickTypesArr[idx]==="major"){expect(labels[i].attr["text-anchor"]).toBe("middle");expect(labels[i].attr.x).toBe(0)}}}));it("AX_TC_32: Minor labels must be aligned middle to its tick",(function(){scale.setDomain([13912128e5,13912199e5]);axis._env.baseTextStyle={fontFamily:"sans-serif",fontSize:20+"px",fontStyle:"normal",fontWeight:"normal"};axis.parseStyle();axis.placeAxis();axis.draw();var labels=axis.getGraphicalElementByType("tick-label"),tickTypesArr=scale._tickType;for(var i=0;i<labels.length;++i){idx=+labels[i].id.split("-").pop();if(tickTypesArr[idx]==="minor"){expect(labels[i].attr["text-anchor"]).toBe("middle");expect(labels[i].attr.x).toBe(0)}}}));it("AX_TC_33: Context labels must be aligned middle",(function(){scale.setDomain([13912128e5,13912199e5]);axis._env.baseTextStyle={fontFamily:"sans-serif",fontSize:20+"px",fontStyle:"normal",fontWeight:"normal"};axis.parseStyle();axis.placeAxis();axis.draw();var labels=axis.getGraphicalElementByType("tick-label"),tickTypesArr=scale._tickType;for(var i=0;i<labels.length;++i){idx=+labels[i].id.split("-").pop();if(tickTypesArr[idx]==="context"){expect(labels[i].attr["text-anchor"]).toBe("middle");expect(labels[i].attr.x).toBe(0)}}}))}));describe("AX_TS_11: Verify the ticks and labels are not overlapping",(function(){var axis,scale,smartLabel=new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]),typeRegex={tick:/tick-[0-9]+/gi,"tick-label":/tick-label-[0-9]+/gi,"tick-group":/tick-group-[0-9]+/gi},graphicalElements={},domain=[13912128e5,13913532e5],idx;beforeEach((function(){axis=new _axis.default;scale=new _timeBin.default;scale.setRange([49.2314453125,584]);scale.setDomain(domain);scale.setThresholdIntervals([[_timeIntervals.timeMinute,1,6e4],[_timeIntervals.timeHour,1,60*6e4],[_timeIntervals.timeDay,1,24*3600*1e3]]);scale.setBinMin([_timeIntervals.timeMinute,1,6e4]);scale.setRangeThreshold([_timeIntervals.timeMinute,1,6e4]);axis._env={chart:{config:{}},smartLabel:smartLabel,getStyleDef:function getStyleDef(styleDef){return styleDef},dataSource:{}};axis.__setDefaultConfig();axis.configure({scale:scale,align:"bottom"});graphicalElements={};axis.addGraphicalElement=function(obj){graphicalElements[obj.id]=obj};axis.getGraphicalElement=function(id){return graphicalElements[id]};axis.getGraphicalElementByType=function(type){var keyArr=Object.keys(graphicalElements).filter((function(key){return typeRegex[type].test(key)})),typeArr=[];for(var i=0;i<keyArr.length;++i){typeArr.push(graphicalElements[keyArr[i]])}return typeArr}}));afterEach((function(){axis=undefined;scale=undefined}));it("AX_TC_34: A major label must not overlap with the tick of major label",(function(){scale.setDomain([13912128e5,13912199e5]);axis._env.baseTextStyle={fontFamily:"sans-serif",fontSize:20+"px",fontStyle:"normal",fontWeight:"normal"};axis.parseStyle();axis.placeAxis();axis.draw();var label,ticks=axis.getGraphicalElementByType("tick"),tickTypesArr=scale._tickType;for(var i=0;i<ticks.length;++i){idx=+ticks[i].id.split("-").pop();if(tickTypesArr[idx]==="major"){label=axis.getGraphicalElement("tick-label-"+idx);expect(label.attr.y).toBeGreaterThan(Number(ticks[i].attr.path.split(" ").pop()))}}}));it("AX_TC_35: A minor label must not overlap with the tick of minor label",(function(){scale.setDomain([13912128e5,13912199e5]);axis._env.baseTextStyle={fontFamily:"sans-serif",fontSize:20+"px",fontStyle:"normal",fontWeight:"normal"};axis.parseStyle();axis.placeAxis();axis.draw();var label,ticks=axis.getGraphicalElementByType("tick"),tickTypesArr=scale._tickType;for(var i=0;i<ticks.length;++i){idx=ticks[i].id.split("-").pop();if(tickTypesArr[idx]==="minor"){label=axis.getGraphicalElement("tick-label-"+idx);expect(label.attr.y).toBeGreaterThan(Number(ticks[i].attr.path.split(" ").pop()))}}}));it("AX_TC_36: A context label must not overlap with ticks",(function(){scale.setDomain([13912128e5,13912199e5]);axis._env.baseTextStyle={fontFamily:"sans-serif",fontSize:20+"px",fontStyle:"normal",fontWeight:"normal"};axis.parseStyle();axis.placeAxis();axis.draw();var labels=axis.getGraphicalElementByType("tick-label"),ticks=axis.getGraphicalElementByType("tick"),tickTypesArr=scale._tickType;for(var i=0;i<labels.length;++i){idx=+labels[i].id.split("-").pop();if(tickTypesArr[idx]==="context"){for(var j=0;j<ticks.length;j++){expect(labels[i].attr.y).toBeGreaterThan(+ticks[j].attr.path.split(" ").pop())}}}}))}));describe("AX_TS_12: Verify the context labels are not overlapping",(function(){var axis,scale,getXTranslation=function getXTranslation(transformString){return+transformString.split(",")[0].substring(1)},smartLabel=new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]),typeRegex={tick:/tick-[0-9]+/gi,"tick-label":/tick-label-[0-9]+/gi,"tick-group":/tick-group-[0-9]+/gi},graphicalElements={},domain=[13912128e5,13913532e5];beforeEach((function(){axis=new _axis.default;scale=new _timeBin.default;scale.setRange([49.2314453125,584]);scale.setDomain(domain);scale.setThresholdIntervals([[_timeIntervals.timeMinute,1,6e4],[_timeIntervals.timeHour,1,60*6e4],[_timeIntervals.timeDay,1,24*3600*1e3]]);scale.setBinMin([_timeIntervals.timeMinute,1,6e4]);scale.setRangeThreshold([_timeIntervals.timeMinute,1,6e4]);axis._env={chart:{config:{}},smartLabel:smartLabel,getStyleDef:function getStyleDef(styleDef){return styleDef},dataSource:{}};axis.__setDefaultConfig();axis.configure({scale:scale,align:"bottom"});graphicalElements={};axis.addGraphicalElement=function(obj){graphicalElements[obj.id]=obj};axis.getGraphicalElement=function(id){return graphicalElements[id]};axis.getGraphicalElementByType=function(type){var keyArr=Object.keys(graphicalElements).filter((function(key){return typeRegex[type].test(key)})),typeArr=[];for(var i=0;i<keyArr.length;++i){typeArr.push(graphicalElements[keyArr[i]])}return typeArr}}));afterEach((function(){axis=undefined;scale=undefined}));it("AX_TC_37: Consecutive context label must not overlap with each other",(function(){scale.setDomain([9697329e5,9697401e5]);axis._env.baseTextStyle={fontFamily:"sans-serif",fontSize:12+"px",fontStyle:"normal",fontWeight:"normal"};axis.parseStyle();axis.placeAxis();axis.draw();var labels=axis.getGraphicalElementByType("tick-label"),tickGroup=axis.getGraphicalElementByType("tick-group"),ticksArr=[],labelStartPos,labelWidth,labelEndPos;for(var i=0;i<tickGroup.length;++i){labelWidth=smartLabel.getSmartText(labels[i].attr.text||"").width;labelStartPos=getXTranslation(tickGroup[i].attr.transform)-labelWidth/2;labelEndPos=getXTranslation(tickGroup[i].attr.transform)+labelWidth/2;if(scale._tickType[i]==="context"&&labels[i].attr.text){ticksArr.push({start:labelStartPos,end:labelEndPos})}}for(var _i7=0;_i7<ticksArr.length-1;++_i7){expect(ticksArr[_i7].end).toBeLessThan(ticksArr[_i7+1].start)}}));it("AX_TC_38: Context label must not overlap with major label above it",(function(){scale.setDomain([9697329e5,9697401e5]);axis._env.baseTextStyle={fontFamily:"sans-serif",fontSize:12+"px",fontStyle:"normal",fontWeight:"normal"};axis.parseStyle();axis.placeAxis();axis.draw();var labels=axis.getGraphicalElementByType("tick-label"),tickGroup=axis.getGraphicalElementByType("tick-group"),ticksArr=[],labelStartPos,labelWidth,labelEndPos;for(var i=0;i<tickGroup.length;++i){labelWidth=smartLabel.getSmartText(labels[i].attr.text||"").width;labelStartPos=getXTranslation(tickGroup[i].attr.transform)-labelWidth/2;labelEndPos=getXTranslation(tickGroup[i].attr.transform)+labelWidth/2;if(scale._tickType[i]==="context"&&labels[i].attr.text){ticksArr.push({start:labelStartPos,end:labelEndPos,top:labels[i].attr.y})}}smartLabel.setStyle({fontSize:"12px"});for(var j=0;j<scale._tickType.length;++j){if(scale._tickType[j]==="major"){for(var _i8=0;_i8<ticksArr.length;++_i8){expect(ticksArr[_i8].top).toBeGreaterThan(smartLabel.getOriSize(labels[j].attr.text).height-6+labels[j].attr.y)}}}}));it("AX_TC_39: Context label must not overlap with minor label",(function(){scale.setDomain([9697329e5,9697401e5]);axis._env.baseTextStyle={fontFamily:"sans-serif",fontSize:30+"px",fontStyle:"normal",fontWeight:"normal"};axis.parseStyle();axis.placeAxis();axis.draw();var labels=axis.getGraphicalElementByType("tick-label"),tickGroup=axis.getGraphicalElementByType("tick-group"),ticksArr=[],labelStartPos,labelWidth,labelEndPos;for(var i=0;i<tickGroup.length;++i){labelWidth=smartLabel.getSmartText(labels[i].attr.text||"").width;labelStartPos=getXTranslation(tickGroup[i].attr.transform)-labelWidth/2;labelEndPos=getXTranslation(tickGroup[i].attr.transform)+labelWidth/2;if(scale._tickType[i]==="context"&&labels[i].attr.text){ticksArr.push({start:labelStartPos,end:labelEndPos,top:labels[i].attr.y})}}smartLabel.setStyle({fontSize:"30px"});for(var j=0;j<scale._tickType.length;++j){if(scale._tickType[j]==="minor"){for(var _i9=0;_i9<ticksArr.length;++_i9){if(getXTranslation(tickGroup[j].attr.transform)-smartLabel.getOriSize(labels[j].attr.text).width>ticksArr[_i9].start&&getXTranslation(tickGroup[j].attr.transform)-smartLabel.getOriSize(labels[j].attr.text).width<ticksArr[_i9].end){expect(labels[j].attr.y+smartLabel.getOriSize(labels[j].attr.text).height).toBeLessThan(ticksArr[_i9].top)}}}}}))}));describe("AX_TS_13: Verify that axis name is not overlapping",(function(){var axis,scale,smartLabel=new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]),typeRegex={tick:/tick-[0-9]+/gi,"tick-label":/tick-label-[0-9]+/gi,"tick-group":/tick-group-[0-9]+/gi},graphicalElements={},domain=[0,1202794];var formatterFn=function formatterFn(_ref3){var value=_ref3.value;return(+value).toFixed(8)};beforeEach((function(){axis=new _axis.default;scale=new _linear.default;scale.setRange([0,518.3685546875]);scale.setDomain(domain);axis._env={chart:{config:{}},smartLabel:smartLabel,getStyleDef:function getStyleDef(styleDef){return styleDef},baseTextStyle:{fontFamily:"sans-serif",fontSize:12+"px",fontStyle:"normal",fontWeight:"normal"},dataSource:{}};axis.__setDefaultConfig();axis.configure({scale:scale,title:"Testing the axis name",align:"left",formatterFn:formatterFn});axis.setTickArguments(7);axis.parseStyle();graphicalElements={};axis.addGraphicalElement=function(obj){graphicalElements[obj.id]=obj};axis.getGraphicalElement=function(id){return graphicalElements[id]};axis.getGraphicalElementByType=function(type){var keyArr=Object.keys(graphicalElements).filter((function(key){return typeRegex[type].test(key)})),typeArr=[];for(var i=0;i<keyArr.length;++i){typeArr.push(graphicalElements[keyArr[i]])}return typeArr}}));afterEach((function(){axis=undefined;scale=undefined}));it("AX_TC_40: Y-axis name should not overlap with labels",(function(){var _smartLabel$setStyle;axis.placeAxis();axis.draw();smartLabel.setStyle((_smartLabel$setStyle={fontSize:"12px",fill:"#858585","font-size":"12px","font-weight":"normal","font-style":"normal",fontFamily:"sans-serif"},_smartLabel$setStyle["fontSize"]="12px",_smartLabel$setStyle.fontStyle="normal",_smartLabel$setStyle.fontWeight="normal",_smartLabel$setStyle));var labels=axis.getGraphicalElementByType("tick-label"),axisName=axis.getGraphicalElement("axis-name").attr,axisNameWidth=smartLabel.getOriSize(axisName.text).height,axisNameStartPos=axisName.x-axisNameWidth/2,axisNameEndPos=axisNameStartPos+axisNameWidth,labelAttr,labelStartPos;for(var i=0;i<labels.length;++i){labelAttr=labels[i].attr;labelStartPos=labelAttr.x;if(labelAttr["text-anchor"]==="end"){labelStartPos-=smartLabel.getOriSize(labelAttr.text).width}expect(axisNameEndPos<labelStartPos).toBeTruthy()}}));it("AX_TC_41: Y-axis name should not overlap with ticks",(function(){axis.placeAxis();axis.draw();smartLabel.setStyle({fontSize:"12px"});var ticks=axis.getGraphicalElementByType("tick"),axisName=axis.getGraphicalElement("axis-name").attr,axisNameStartPos=axisName.x,axisNameWidth=smartLabel.getOriSize(axisName.text).height,axisNameEndPos=axisNameStartPos+axisNameWidth,tickAttr,tickStartPos;for(var i=0;i<ticks.length;++i){tickAttr=ticks[i].attr;tickStartPos=Number(tickAttr.path.split(" ").pop());expect(axisNameEndPos).toBeLessThan(tickStartPos)}}));it("AX_TC_42: Y-axis name should not overlap with axis line",(function(){axis.placeAxis();axis.draw();smartLabel.setStyle({fontSize:"12px"});var axisName=axis.getGraphicalElement("axis-name").attr,axisNameWidth=smartLabel.getOriSize(axisName.text).height,axisNameStartPos=axisName.x-axisNameWidth/2,axisNameEndPos=axisNameStartPos+axisNameWidth,linePath=axis.getDomainLine(),lineStartPos=+linePath.split(" ")[1];expect(axisNameEndPos).toBeLessThan(lineStartPos)}))}));describe("AX_TS_14: Verify that axis-name doesn't take more space",(function(){var axis,scale,smartLabel=new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]),typeRegex={tick:/tick-[0-9]+/gi,"tick-label":/tick-label-[0-9]+/gi,"tick-group":/tick-group-[0-9]+/gi},graphicalElements={},domain=[0,1202794];var formatterFn=function formatterFn(_ref4){var value=_ref4.value;return(+value).toFixed(8)};beforeEach((function(){axis=new _axis.default;scale=new _linear.default;scale.setRange([0,518.3685546875]);scale.setDomain(domain);axis._env={chart:{config:{}},smartLabel:smartLabel,getStyleDef:function getStyleDef(styleDef){return styleDef},dataSource:{}};axis.__setDefaultConfig();axis.configure({scale:scale,title:"Testing the axis name",align:"left",formatterFn:formatterFn});axis.setTickArguments(7);graphicalElements={};axis.addGraphicalElement=function(obj){graphicalElements[obj.id]=obj};axis.getGraphicalElement=function(id){return graphicalElements[id]};axis.getGraphicalElementByType=function(type){var keyArr=Object.keys(graphicalElements).filter((function(key){return typeRegex[type].test(key)})),typeArr=[];for(var i=0;i<keyArr.length;++i){typeArr.push(graphicalElements[keyArr[i]])}return typeArr}}));afterEach((function(){axis=undefined;scale=undefined}));it("AX_TC_43: Validate when font size is large enough to collide with axis labels",(function(){axis._env.baseTextStyle={fontFamily:"sans-serif",fontSize:50+"px",fontStyle:"normal",fontWeight:"normal"};axis.parseStyle();axis.placeAxis();axis.draw();smartLabel.setStyle({fontSize:"50px"});var labels=axis.getGraphicalElementByType("tick-label"),axisName=axis.getGraphicalElement("axis-name").attr,axisNameStartPos=axisName.x,axisNameWidth=smartLabel.getOriSize(axisName.text).height,axisNameEndPos=axisNameStartPos+axisNameWidth,labelAttr,labelStartPos;smartLabel.setStyle({fontSize:"12px"});for(var i=0;i<labels.length;++i){labelAttr=labels[i].attr;labelStartPos=-smartLabel.getOriSize(labelAttr.text).width+labelAttr.x;expect(axisNameEndPos<labelStartPos).toBeTruthy()}}));it("AX_TC_44: Validate when font size is small enough not to collide with axis labels",(function(){axis.parseStyle();axis.placeAxis();axis.draw();smartLabel.setStyle({fill:"#858585","font-size":"10px","font-weight":"normal","font-style":"normal",fontFamily:"sans-serif",fontSize:"10px",fontStyle:"normal",fontWeight:"normal"});var labels=axis.getGraphicalElementByType("tick-label"),axisName=axis.getGraphicalElement("axis-name").attr,axisNameStartPos=axisName.x,axisNameWidth=smartLabel.getOriSize(axisName.text).height,axisNameEndPos=axisNameStartPos+axisNameWidth,labelAttr,labelStartPos;smartLabel.setStyle({fontSize:"12px"});for(var i=0;i<labels.length;++i){labelAttr=labels[i].attr;labelStartPos=-smartLabel.getOriSize(labelAttr.text).width+labelAttr.x;expect(axisNameEndPos<labelStartPos).toBeTruthy()}}))}));describe("AX_TS_15: Verify that axis-name is visible",(function(){var axis,scale,smartLabel=new _SmartlabelManager.default(document.body||document.getElementsByTagName("body")[0]),typeRegex={tick:/tick-[0-9]+/gi,"tick-label":/tick-label-[0-9]+/gi,"tick-group":/tick-group-[0-9]+/gi},graphicalElements={},domain=[0,1202794];var formatterFn=function formatterFn(_ref5){var value=_ref5.value;return(+value).toFixed(8)};beforeEach((function(){axis=new _axis.default;scale=new _linear.default;scale.setRange([0,518.3685546875]);scale.setDomain(domain);axis._env={chart:{config:{}},smartLabel:smartLabel,getStyleDef:function getStyleDef(styleDef){return styleDef},dataSource:{}};axis.__setDefaultConfig();graphicalElements={};axis.addGraphicalElement=function(obj){graphicalElements[obj.id]=obj};axis.getGraphicalElement=function(id){return graphicalElements[id]};axis.getGraphicalElementByType=function(type){var keyArr=Object.keys(graphicalElements).filter((function(key){return typeRegex[type].test(key)})),typeArr=[];for(var i=0;i<keyArr.length;++i){typeArr.push(graphicalElements[keyArr[i]])}return typeArr}}));afterEach((function(){axis=undefined;scale=undefined}));it("AX_TC_45: To verify if it draws when axis name is very long enough to go outside the canvas",(function(){axis._env.baseTextStyle={fontFamily:"sans-serif",fontSize:12+"px",fontStyle:"normal",fontWeight:"normal"};axis.configure({scale:scale,title:"Testing the axis name which is long enough to go outside the canvas Testing the axis name which is long enough to go outside the canvas Testing the axis name which is long enough to go outside the canvas Testing the axis name which is long enough to go outside the canvas Testing the axis name which is long enough to go outside the canvas Testing the axis name which is long enough to go outside the canvas",align:"left",formatterFn:formatterFn});axis.setTickArguments(7);axis.parseStyle();axis.placeAxis();axis.draw();smartLabel.setStyle({fontSize:"12px"});var axisName=axis.getGraphicalElement("axis-name").attr,axisNameStartPos=axisName.y,axisNameHeight=smartLabel.getOriSize(axisName.text).width,axisNameEndPos=axisNameStartPos+axisNameHeight;expect(axisNameEndPos).toBeLessThan(518.3685546875)}));it("AX_TC_46: To verify if it draws when axis name font is very large enough to go outside the canvas area",(function(){axis.configure({scale:scale,title:"Testing the axis name",align:"left",formatterFn:formatterFn});axis.config.style.title={fontFamily:"sans-serif",fontSize:70+"px",fontStyle:"normal",fontWeight:"normal"};axis.setTickArguments(7);axis.placeAxis();axis.draw();smartLabel.setStyle({fontSize:"70px"});var axisName=axis.getGraphicalElement("axis-name").attr,axisNameStartPos=axisName.y,axisNameHeight=smartLabel.getOriSize(axisName.text).width,axisNameEndPos=axisNameStartPos+axisNameHeight;expect(axisNameEndPos).toBeLessThan(518.3685546875)}));it("AX_TC_47: To verify if it draws when axis name contains special characters",(function(){axis.configure({scale:scale,title:"¢∞§ ¶•§ ¢¶ ¡ ¶• ºººª",align:"left",formatterFn:formatterFn});axis._env.baseTextStyle={fontFamily:"sans-serif",fontSize:10+"px",fontStyle:"normal",fontWeight:"normal"};axis.setTickArguments(7);axis.parseStyle();axis.placeAxis();axis.draw();var axisName=axis.getGraphicalElement("axis-name").attr;expect(axisName.text).toBe("¢∞§ ¶•§ ¢¶ ¡ ¶• ºººª")}))}));