From: Dan Vanderkam Date: Wed, 22 Oct 2014 02:41:27 +0000 (-0400) Subject: Rebase PR 292 X-Git-Tag: v1.1.0~31^2~11^2 X-Git-Url: https://adrianiainlam.tk/git/?a=commitdiff_plain;h=872a6a00621c7e18800f75a384b52b88fe751391;p=dygraphs.git Rebase PR 292 --- diff --git a/auto_tests/misc/local.html b/auto_tests/misc/local.html index e04bd62..fa74656 100644 --- a/auto_tests/misc/local.html +++ b/auto_tests/misc/local.html @@ -28,6 +28,7 @@ + @@ -55,9 +56,6 @@ - diff --git a/auto_tests/tests/date_ticker.js b/auto_tests/tests/date_ticker.js new file mode 100644 index 0000000..a23a326 --- /dev/null +++ b/auto_tests/tests/date_ticker.js @@ -0,0 +1,250 @@ +/** + * @fileoverview Test cases for the tick-generating functions. + * These were generated by adding logging code to the old ticker functions. The + * tests serve to track existing behavior should it change in the future. + * + * @author danvdk@gmail.com (Dan Vanderkam) + */ + +var DateTickerTestCase = TestCase("date-ticker-tests"); + +DateTickerTestCase.prototype.setUp = function() { + document.body.innerHTML = "
"; +}; + +DateTickerTestCase.prototype.createOptionsViewForAxis = function(axis, dict) { + return function (x) { + if (dict && dict.hasOwnProperty(x)) { + return dict[x]; + } + if (Dygraph.DEFAULT_ATTRS.axes[axis].hasOwnProperty(x)) { + return Dygraph.DEFAULT_ATTRS.axes[axis][x]; + } + if (Dygraph.DEFAULT_ATTRS.hasOwnProperty(x)) { + return Dygraph.DEFAULT_ATTRS[x]; + } + if (x == 'axisLabelFormatter') return null; + throw "mysterious " + axis + "-axis option: " + x; + }; +}; + +// Broken, since it assumes EST. +DateTickerTestCase.prototype.testBasicDateTicker = function() { + var opts = {labelsDateUTC: true}; + var options = this.createOptionsViewForAxis('x', opts); + + var ticks = Dygraph.dateTicker(-1797534000000, 1255579200000, 800, options); + var expected_ticks = [ + {"v":-1577923200000,"label":"1920"}, + {"v":-1262304000000,"label":"1930"}, + {"v":-946771200000, "label":"1940"}, + {"v":-631152000000, "label":"1950"}, + {"v":-315619200000, "label":"1960"}, + {"v": 0, "label":"1970"}, + {"v": 315532800000, "label":"1980"}, + {"v": 631152000000, "label":"1990"}, + {"v": 946684800000, "label":"2000"} + ]; + assertEquals(expected_ticks, ticks); + + var start = Date.UTC(1999, 11, 31, 14, 0, 0); + var end = Date.UTC(2000, 0, 1, 12, 0, 0); + var granularity = Dygraph.TWO_HOURLY; + ticks = Dygraph.getDateAxis(start, end, granularity, options); + expected_ticks = [ // months of the year are zero-based. + {v: Date.UTC(1999, 11, 31, 14, 0, 0), label: '14:00'}, + {v: Date.UTC(1999, 11, 31, 16, 0, 0), label: '16:00'}, + {v: Date.UTC(1999, 11, 31, 18, 0, 0), label: '18:00'}, + {v: Date.UTC(1999, 11, 31, 20, 0, 0), label: '20:00'}, + {v: Date.UTC(1999, 11, 31, 22, 0, 0), label: '22:00'}, + {v: Date.UTC(2000, 0, 1, 0, 0, 0), label: '01Jan'}, + {v: Date.UTC(2000, 0, 1, 2, 0, 0), label: '02:00'}, + {v: Date.UTC(2000, 0, 1, 4, 0, 0), label: '04:00'}, + {v: Date.UTC(2000, 0, 1, 6, 0, 0), label: '06:00'}, + {v: Date.UTC(2000, 0, 1, 8, 0, 0), label: '08:00'}, + {v: Date.UTC(2000, 0, 1, 10, 0, 0), label: '10:00'}, + {v: Date.UTC(2000, 0, 1, 12, 0, 0), label: '12:00'} + ]; + assertEquals(expected_ticks, ticks); +}; + +DateTickerTestCase.prototype.testAllDateTickers = function() { + var opts = {labelsDateUTC: true}; + var options = this.createOptionsViewForAxis('x', opts); + + // For granularities finer than MONTHLY, the first tick returned tick + // could lie outside [start_time, end_time] range in the original code. + // In these tests, those spurious ticks are removed to test new behavior. + + assertEquals([{"v":-1577923200000,"label":"1920"},{"v":-1262304000000,"label":"1930"},{"v":-946771200000,"label":"1940"},{"v":-631152000000,"label":"1950"},{"v":-315619200000,"label":"1960"},{"v":0,"label":"1970"},{"v":315532800000,"label":"1980"},{"v":631152000000,"label":"1990"},{"v":946684800000,"label":"2000"}], Dygraph.dateTicker(-1797552000000, 1255561200000, 800, options)); + assertEquals([{"v":-5364662400000,"label":"1800"},{"v":-2208988800000,"label":"1900"}], Dygraph.dateTicker(-6122044800000, 189302400000, 480, options)); + assertEquals([{"v":1041120000000,"label":"29Dec"},{"v":1041724800000,"label":"05Jan"},{"v":1042329600000,"label":"12Jan"},{"v":1042934400000,"label":"19Jan"},{"v":1043539200000,"label":"26Jan"},{"v":1044144000000,"label":"02Feb"},{"v":1044748800000,"label":"09Feb"},{"v":1045353600000,"label":"16Feb"}], Dygraph.dateTicker(1041120000000, 1045353600000, 640, options)); + assertEquals([{"v":1041379200000,"label":"Jan 03"},{"v":1072915200000,"label":"Jan 04"},{"v":1104537600000,"label":"Jan 05"},{"v":1136073600000,"label":"Jan 06"},{"v":1167609600000,"label":"Jan 07"},{"v":1199145600000,"label":"Jan 08"},{"v":1230768000000,"label":"Jan 09"},{"v":1262304000000,"label":"Jan 10"},{"v":1293840000000,"label":"Jan 11"}], Dygraph.dateTicker(1041120000000, 1307833200000, 800, options)); + assertEquals([{"v":1159660800000,"label":"01Oct"},{"v":1160265600000,"label":"08Oct"},{"v":1160870400000,"label":"15Oct"},{"v":1161475200000,"label":"22Oct"},{"v":1162080000000,"label":"29Oct"}], Dygraph.dateTicker(1159657200000, 1162252800000, 480, options)); + assertEquals([{"v":1159660800000,"label":"01Oct"},{"v":1160265600000,"label":"08Oct"},{"v":1160870400000,"label":"15Oct"},{"v":1161475200000,"label":"22Oct"},{"v":1162080000000,"label":"29Oct"}], Dygraph.dateTicker(1159657200000, 1162252800000, 640, options)); + assertEquals([{"v":1159660800000,"label":"01Oct"},{"v":1160265600000,"label":"08Oct"},{"v":1160870400000,"label":"15Oct"},{"v":1161475200000,"label":"22Oct"},{"v":1162080000000,"label":"29Oct"},{"v":1162684800000,"label":"05Nov"},{"v":1163289600000,"label":"12Nov"},{"v":1163894400000,"label":"19Nov"},{"v":1164499200000,"label":"26Nov"}], Dygraph.dateTicker(1159657200000, 1164758400000, 1150, options)); + assertEquals([{"v":1159660800000,"label":"Oct 06"},{"v":1162339200000,"label":"Nov 06"}], Dygraph.dateTicker(1159657200000, 1164758400000, 400, options)); + assertEquals([{"v":1159660800000,"label":"01Oct"},{"v":1160265600000,"label":"08Oct"},{"v":1160870400000,"label":"15Oct"},{"v":1161475200000,"label":"22Oct"},{"v":1162080000000,"label":"29Oct"},{"v":1162684800000,"label":"05Nov"},{"v":1163289600000,"label":"12Nov"},{"v":1163894400000,"label":"19Nov"},{"v":1164499200000,"label":"26Nov"}], Dygraph.dateTicker(1159657200000, 1164758400000, 500, options)); + assertEquals([{"v":1159660800000,"label":"01Oct"},{"v":1160265600000,"label":"08Oct"},{"v":1160870400000,"label":"15Oct"},{"v":1161475200000,"label":"22Oct"},{"v":1162080000000,"label":"29Oct"},{"v":1162684800000,"label":"05Nov"},{"v":1163289600000,"label":"12Nov"},{"v":1163894400000,"label":"19Nov"},{"v":1164499200000,"label":"26Nov"}], Dygraph.dateTicker(1159657200000, 1164758400000, 600, options)); + assertEquals([{"v":1160265600000,"label":"08Oct"},{"v":1160870400000,"label":"15Oct"},{"v":1161475200000,"label":"22Oct"},{"v":1162080000000,"label":"29Oct"},{"v":1162684800000,"label":"05Nov"},{"v":1163289600000,"label":"12Nov"}], Dygraph.dateTicker(1160243979962, 1163887694248, 600, options)); + + assertEquals([{"v":1160870400000,"label":"15Oct"}], Dygraph.dateTicker(1160521200000, 1161298800000, 480, options)); + assertEquals([{"v":1161475200000,"label":"22Oct"},{"v":1161561600000,"label":"23Oct"},{"v":1161648000000,"label":"24Oct"},{"v":1161734400000,"label":"25Oct"},{"v":1161820800000,"label":"26Oct"},{"v":1161907200000,"label":"27Oct"},{"v":1161993600000,"label":"28Oct"}], Dygraph.dateTicker(1161471164461, 1161994065957, 600, options)); + assertEquals([{"v":1161561600000,"label":"23Oct"},{"v":1161583200000,"label":"06:00"},{"v":1161604800000,"label":"12:00"},{"v":1161626400000,"label":"18:00"}], Dygraph.dateTicker(1161557878860, 1161642991675, 600, options)); + assertEquals([{"v":1161756000000,"label":"06:00"},{"v":1161759600000,"label":"07:00"},{"v":1161763200000,"label":"08:00"},{"v":1161766800000,"label":"09:00"},{"v":1161770400000,"label":"10:00"},{"v":1161774000000,"label":"11:00"},{"v":1161777600000,"label":"12:00"}], Dygraph.dateTicker(1161752537840, 1161777663332, 600, options)); + assertEquals([{"v":1167609600000,"label":"01Jan"},{"v":1167696000000,"label":"02Jan"},{"v":1167782400000,"label":"03Jan"},{"v":1167868800000,"label":"04Jan"},{"v":1167955200000,"label":"05Jan"},{"v":1168041600000,"label":"06Jan"},{"v":1168128000000,"label":"07Jan"},{"v":1168214400000,"label":"08Jan"},{"v":1168300800000,"label":"09Jan"}], Dygraph.dateTicker(1167609600000, 1168300800000, 480, options)); + assertEquals([{"v":1167609600000,"label":"Jan 07"}], Dygraph.dateTicker(1167609600000, 1199059200000, 100, options)); + assertEquals([{"v":1167609600000,"label":"Jan 07"},{"v":1175385600000,"label":"Apr 07"},{"v":1183248000000,"label":"Jul 07"},{"v":1191196800000,"label":"Oct 07"}], Dygraph.dateTicker(1167609600000, 1199059200000, 300, options)); + assertEquals([{"v":1167609600000,"label":"Jan 07"},{"v":1175385600000,"label":"Apr 07"},{"v":1183248000000,"label":"Jul 07"},{"v":1191196800000,"label":"Oct 07"}], Dygraph.dateTicker(1167609600000, 1199059200000, 480, options)); + assertEquals([{"v":1167609600000,"label":"Jan 07"},{"v":1175385600000,"label":"Apr 07"},{"v":1183248000000,"label":"Jul 07"},{"v":1191196800000,"label":"Oct 07"}], Dygraph.dateTicker(1167609600000, 1199059200000, 600, options)); + assertEquals([{"v":1160870400000,"label":"15Oct"}], Dygraph.dateTicker(1160521200000, 1161298800000, 480, options)); + assertEquals([{"v":1167609600000,"label":"Jan 07"},{"v":1170288000000,"label":"Feb 07"},{"v":1172707200000,"label":"Mar 07"},{"v":1175385600000,"label":"Apr 07"},{"v":1177977600000,"label":"May 07"},{"v":1180656000000,"label":"Jun 07"},{"v":1183248000000,"label":"Jul 07"},{"v":1185926400000,"label":"Aug 07"},{"v":1188604800000,"label":"Sep 07"},{"v":1191196800000,"label":"Oct 07"},{"v":1193875200000,"label":"Nov 07"},{"v":1196467200000,"label":"Dec 07"}], Dygraph.dateTicker(1167609600000, 1199059200000, 800, options)); + + assertEquals([{"v":1293840000000,"label":"Jan 11"},{"v":1296518400000,"label":"Feb 11"},{"v":1298937600000,"label":"Mar 11"},{"v":1301616000000,"label":"Apr 11"},{"v":1304208000000,"label":"May 11"},{"v":1306886400000,"label":"Jun 11"},{"v":1309478400000,"label":"Jul 11"},{"v":1312156800000,"label":"Aug 11"}], Dygraph.dateTicker(1293753600000, 1312844400000, 727, options)); + assertEquals([{"v":1201824000000,"label":"01Feb"},{"v":1201910400000,"label":"02Feb"},{"v":1201996800000,"label":"03Feb"},{"v":1202083200000,"label":"04Feb"},{"v":1202169600000,"label":"05Feb"},{"v":1202256000000,"label":"06Feb"}], Dygraph.dateTicker(1201824000000, 1202256000000, 700, options)); + assertEquals([{"v":1210118400000,"label":"07May"},{"v":1210140000000,"label":"06:00"},{"v":1210161600000,"label":"12:00"},{"v":1210183200000,"label":"18:00"},{"v":1210204800000,"label":"08May"},{"v":1210226400000,"label":"06:00"},{"v":1210248000000,"label":"12:00"},{"v":1210269600000,"label":"18:00"},{"v":1210291200000,"label":"09May"}], Dygraph.dateTicker(1210114800000, 1210291200000, 480, options)); + assertEquals([{"v":1210118400000,"label":"07May"},{"v":1210204800000,"label":"08May"},{"v":1210291200000,"label":"09May"},{"v":1210377600000,"label":"10May"},{"v":1210464000000,"label":"11May"}], Dygraph.dateTicker(1210114800000, 1210464000000, 480, options)); + assertEquals([{"v":1210118400000,"label":"07May"},{"v":1210204800000,"label":"08May"},{"v":1210291200000,"label":"09May"},{"v":1210377600000,"label":"10May"},{"v":1210464000000,"label":"11May"},{"v":1210550400000,"label":"12May"}], Dygraph.dateTicker(1210114800000, 1210550400000, 480, options)); + assertEquals([{"v":1214870400000,"label":"01Jul"},{"v":1214872200000,"label":"00:30"},{"v":1214874000000,"label":"01:00"},{"v":1214875800000,"label":"01:30"}], Dygraph.dateTicker(1214870400000, 1214877599000, 600, options)); + assertEquals([{"v":1214870400000,"label":"Jul 08"},{"v":1217548800000,"label":"Aug 08"},{"v":1220227200000,"label":"Sep 08"}], Dygraph.dateTicker(1214866800000, 1222747200000, 600, options)); + assertEquals([{"v":1215820800000,"label":"12Jul"},{"v":1215842400000,"label":"06:00"},{"v":1215864000000,"label":"12:00"},{"v":1215885600000,"label":"18:00"},{"v":1215907200000,"label":"13Jul"},{"v":1215928800000,"label":"06:00"},{"v":1215950400000,"label":"12:00"},{"v":1215972000000,"label":"18:00"}], Dygraph.dateTicker(1215817200000, 1215989940000, 600, options)); + assertEquals([{"v":1246752000000,"label":"05Jul"},{"v":1247356800000,"label":"12Jul"},{"v":1247961600000,"label":"19Jul"}], Dygraph.dateTicker(1246402800000, 1248217200000, 600, options)); + assertEquals([{"v":1246752000000,"label":"05Jul"},{"v":1247356800000,"label":"12Jul"},{"v":1247961600000,"label":"19Jul"},{"v":1248566400000,"label":"26Jul"},{"v":1249171200000,"label":"02Aug"}], Dygraph.dateTicker(1246402800000, 1249340400000, 600, options)); + assertEquals([{"v":1247356800000,"label":"12Jul"},{"v":1247360400000,"label":"01:00"},{"v":1247364000000,"label":"02:00"},{"v":1247367600000,"label":"03:00"},{"v":1247371200000,"label":"04:00"},{"v":1247374800000,"label":"05:00"},{"v":1247378400000,"label":"06:00"}], Dygraph.dateTicker(1247356800000, 1247378400000, 600, options)); + + assertEquals([{"v":1247356800000,"label":"12Jul"},{"v":1247360400000,"label":"01:00"},{"v":1247364000000,"label":"02:00"},{"v":1247367600000,"label":"03:00"},{"v":1247371200000,"label":"04:00"},{"v":1247374800000,"label":"05:00"},{"v":1247378400000,"label":"06:00"}], Dygraph.dateTicker(1247356800000, 1247378400000, 600, options)); + assertEquals([{"v":1254268800000,"label":"30Sep"},{"v":1254355200000,"label":"01Oct"},{"v":1254441600000,"label":"02Oct"},{"v":1254528000000,"label":"03Oct"},{"v":1254614400000,"label":"04Oct"},{"v":1254700800000,"label":"05Oct"},{"v":1254787200000,"label":"06Oct"},{"v":1254873600000,"label":"07Oct"},{"v":1254960000000,"label":"08Oct"},{"v":1255046400000,"label":"09Oct"},{"v":1255132800000,"label":"10Oct"}], Dygraph.dateTicker(1254222000000, 1255172400000, 900, options)); + assertEquals([{"v":1254441600000,"label":"02Oct"},{"v":1254528000000,"label":"03Oct"},{"v":1254614400000,"label":"04Oct"},{"v":1254700800000,"label":"05Oct"},{"v":1254787200000,"label":"06Oct"},{"v":1254873600000,"label":"07Oct"},{"v":1254960000000,"label":"08Oct"}], Dygraph.dateTicker(1254394800000, 1254999600000, 900, options)); + assertEquals([{"v":1259625600000,"label":"01Dec"},{"v":1259712000000,"label":"02Dec"},{"v":1259798400000,"label":"03Dec"},{"v":1259884800000,"label":"04Dec"},{"v":1259971200000,"label":"05Dec"},{"v":1260057600000,"label":"06Dec"},{"v":1260144000000,"label":"07Dec"}], Dygraph.dateTicker(1259625600000, 1260144000000, 480, options)); + assertEquals([{"v":1259625600000,"label":"01Dec"},{"v":1259712000000,"label":"02Dec"},{"v":1259798400000,"label":"03Dec"},{"v":1259884800000,"label":"04Dec"},{"v":1259971200000,"label":"05Dec"},{"v":1260057600000,"label":"06Dec"},{"v":1260144000000,"label":"07Dec"}], Dygraph.dateTicker(1259625600000, 1260144000000, 600, options)); + assertEquals([{"v":1260057600000,"label":"06Dec"},{"v":1260662400000,"label":"13Dec"},{"v":1261267200000,"label":"20Dec"},{"v":1261872000000,"label":"27Dec"},{"v":1262476800000,"label":"03Jan"},{"v":1263081600000,"label":"10Jan"},{"v":1263686400000,"label":"17Jan"},{"v":1264291200000,"label":"24Jan"}], Dygraph.dateTicker(1260057600000, 1264291200000, 640, options)); + assertEquals([{"v":1262304000000,"label":"Jan 10"},{"v":1264982400000,"label":"Feb 10"},{"v":1267401600000,"label":"Mar 10"},{"v":1270080000000,"label":"Apr 10"}], Dygraph.dateTicker(1262304000000, 1270857600000, 640, options)); + assertEquals([{"v":1288915200000,"label":"05Nov"},{"v":1288936800000,"label":"06:00"},{"v":1288958400000,"label":"12:00"},{"v":1288980000000,"label":"18:00"},{"v":1289001600000,"label":"06Nov"},{"v":1289023200000,"label":"06:00"},{"v":1289044800000,"label":"12:00"},{"v":1289066400000,"label":"18:00"},{"v":1289088000000,"label":"07Nov"},{"v":1289109600000,"label":"06:00"},{"v":1289131200000,"label":"12:00"},{"v":1289152800000,"label":"18:00"},{"v":1289174400000,"label":"08Nov"},{"v":1289196000000,"label":"06:00"},{"v":1289217600000,"label":"12:00"},{"v":1289239200000,"label":"18:00"},{"v":1289260800000,"label":"09Nov"}], Dygraph.dateTicker(1288911600000, 1289260800000, 1024, options)); + assertEquals([{"v":1291161600000,"label":"01Dec"},{"v":1291248000000,"label":"02Dec"},{"v":1291334400000,"label":"03Dec"},{"v":1291420800000,"label":"04Dec"},{"v":1291507200000,"label":"05Dec"},{"v":1291593600000,"label":"06Dec"},{"v":1291680000000,"label":"07Dec"},{"v":1291766400000,"label":"08Dec"},{"v":1291852800000,"label":"09Dec"}], Dygraph.dateTicker(1291161600000, 1291852800000, 600, options)); + assertEquals([{"v":1294358400000,"label":"07Jan"},{"v":1294444800000,"label":"08Jan"},{"v":1294531200000,"label":"09Jan"},{"v":1294617600000,"label":"10Jan"},{"v":1294704000000,"label":"11Jan"},{"v":1294790400000,"label":"12Jan"},{"v":1294876800000,"label":"13Jan"},{"v":1294963200000,"label":"14Jan"}], Dygraph.dateTicker(1294358400000, 1294963200000, 480, options)); + assertEquals([{"v":1307908005000,"label":"19:46:45"},{"v":1307908010000,"label":"19:46:50"},{"v":1307908015000,"label":"19:46:55"},{"v":1307908020000,"label":"19:47"},{"v":1307908025000,"label":"19:47:05"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908035000,"label":"19:47:15"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908045000,"label":"19:47:25"},{"v":1307908050000,"label":"19:47:30"}], Dygraph.dateTicker(1307908000112, 1307908050165, 800, options)); + assertEquals([{"v":1307908005000,"label":"19:46:45"},{"v":1307908010000,"label":"19:46:50"},{"v":1307908015000,"label":"19:46:55"},{"v":1307908020000,"label":"19:47"},{"v":1307908025000,"label":"19:47:05"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908035000,"label":"19:47:15"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908045000,"label":"19:47:25"},{"v":1307908050000,"label":"19:47:30"}], Dygraph.dateTicker(1307908000112, 1307908051166, 800, options)); + assertEquals([{"v":1307908005000,"label":"19:46:45"},{"v":1307908010000,"label":"19:46:50"},{"v":1307908015000,"label":"19:46:55"},{"v":1307908020000,"label":"19:47"},{"v":1307908025000,"label":"19:47:05"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908035000,"label":"19:47:15"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908045000,"label":"19:47:25"},{"v":1307908050000,"label":"19:47:30"}], Dygraph.dateTicker(1307908000112, 1307908052167, 800, options)); + assertEquals([{"v":1307908005000,"label":"19:46:45"},{"v":1307908010000,"label":"19:46:50"},{"v":1307908015000,"label":"19:46:55"},{"v":1307908020000,"label":"19:47"},{"v":1307908025000,"label":"19:47:05"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908035000,"label":"19:47:15"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908045000,"label":"19:47:25"},{"v":1307908050000,"label":"19:47:30"}], Dygraph.dateTicker(1307908000112, 1307908053167, 800, options)); + assertEquals([{"v":1307908005000,"label":"19:46:45"},{"v":1307908010000,"label":"19:46:50"},{"v":1307908015000,"label":"19:46:55"},{"v":1307908020000,"label":"19:47"},{"v":1307908025000,"label":"19:47:05"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908035000,"label":"19:47:15"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908045000,"label":"19:47:25"},{"v":1307908050000,"label":"19:47:30"}], Dygraph.dateTicker(1307908000112, 1307908054168, 800, options)); + assertEquals([{"v":1307908005000,"label":"19:46:45"},{"v":1307908010000,"label":"19:46:50"},{"v":1307908015000,"label":"19:46:55"},{"v":1307908020000,"label":"19:47"},{"v":1307908025000,"label":"19:47:05"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908035000,"label":"19:47:15"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908045000,"label":"19:47:25"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908055000,"label":"19:47:35"}], Dygraph.dateTicker(1307908000112, 1307908055169, 800, options)); + assertEquals([{"v":1307908005000,"label":"19:46:45"},{"v":1307908010000,"label":"19:46:50"},{"v":1307908015000,"label":"19:46:55"},{"v":1307908020000,"label":"19:47"},{"v":1307908025000,"label":"19:47:05"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908035000,"label":"19:47:15"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908045000,"label":"19:47:25"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908055000,"label":"19:47:35"}], Dygraph.dateTicker(1307908000112, 1307908056169, 800, options)); + assertEquals([{"v":1307908005000,"label":"19:46:45"},{"v":1307908010000,"label":"19:46:50"},{"v":1307908015000,"label":"19:46:55"},{"v":1307908020000,"label":"19:47"},{"v":1307908025000,"label":"19:47:05"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908035000,"label":"19:47:15"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908045000,"label":"19:47:25"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908055000,"label":"19:47:35"}], Dygraph.dateTicker(1307908000112, 1307908057170, 800, options)); + assertEquals([{"v":1307908005000,"label":"19:46:45"},{"v":1307908010000,"label":"19:46:50"},{"v":1307908015000,"label":"19:46:55"},{"v":1307908020000,"label":"19:47"},{"v":1307908025000,"label":"19:47:05"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908035000,"label":"19:47:15"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908045000,"label":"19:47:25"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908055000,"label":"19:47:35"}], Dygraph.dateTicker(1307908000112, 1307908058171, 800, options)); + assertEquals([{"v":1307908005000,"label":"19:46:45"},{"v":1307908010000,"label":"19:46:50"},{"v":1307908015000,"label":"19:46:55"},{"v":1307908020000,"label":"19:47"},{"v":1307908025000,"label":"19:47:05"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908035000,"label":"19:47:15"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908045000,"label":"19:47:25"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908055000,"label":"19:47:35"}], Dygraph.dateTicker(1307908000112, 1307908059172, 800, options)); + assertEquals([{"v":1307908005000,"label":"19:46:45"},{"v":1307908010000,"label":"19:46:50"},{"v":1307908015000,"label":"19:46:55"},{"v":1307908020000,"label":"19:47"},{"v":1307908025000,"label":"19:47:05"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908035000,"label":"19:47:15"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908045000,"label":"19:47:25"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908055000,"label":"19:47:35"},{"v":1307908060000,"label":"19:47:40"}], Dygraph.dateTicker(1307908000112, 1307908060172, 800, options)); + assertEquals([{"v":1307908005000,"label":"19:46:45"},{"v":1307908010000,"label":"19:46:50"},{"v":1307908015000,"label":"19:46:55"},{"v":1307908020000,"label":"19:47"},{"v":1307908025000,"label":"19:47:05"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908035000,"label":"19:47:15"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908045000,"label":"19:47:25"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908055000,"label":"19:47:35"},{"v":1307908060000,"label":"19:47:40"}], Dygraph.dateTicker(1307908000112, 1307908061174, 800, options)); + assertEquals([{"v":1307908005000,"label":"19:46:45"},{"v":1307908010000,"label":"19:46:50"},{"v":1307908015000,"label":"19:46:55"},{"v":1307908020000,"label":"19:47"},{"v":1307908025000,"label":"19:47:05"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908035000,"label":"19:47:15"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908045000,"label":"19:47:25"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908055000,"label":"19:47:35"},{"v":1307908060000,"label":"19:47:40"}], Dygraph.dateTicker(1307908000112, 1307908062176, 800, options)); + assertEquals([{"v":1307908005000,"label":"19:46:45"},{"v":1307908010000,"label":"19:46:50"},{"v":1307908015000,"label":"19:46:55"},{"v":1307908020000,"label":"19:47"},{"v":1307908025000,"label":"19:47:05"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908035000,"label":"19:47:15"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908045000,"label":"19:47:25"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908055000,"label":"19:47:35"},{"v":1307908060000,"label":"19:47:40"}], Dygraph.dateTicker(1307908000112, 1307908063177, 800, options)); + assertEquals([{"v":1307908005000,"label":"19:46:45"},{"v":1307908010000,"label":"19:46:50"},{"v":1307908015000,"label":"19:46:55"},{"v":1307908020000,"label":"19:47"},{"v":1307908025000,"label":"19:47:05"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908035000,"label":"19:47:15"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908045000,"label":"19:47:25"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908055000,"label":"19:47:35"},{"v":1307908060000,"label":"19:47:40"}], Dygraph.dateTicker(1307908000112, 1307908064178, 800, options)); + assertEquals([{"v":1307908005000,"label":"19:46:45"},{"v":1307908010000,"label":"19:46:50"},{"v":1307908015000,"label":"19:46:55"},{"v":1307908020000,"label":"19:47"},{"v":1307908025000,"label":"19:47:05"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908035000,"label":"19:47:15"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908045000,"label":"19:47:25"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908055000,"label":"19:47:35"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908065000,"label":"19:47:45"}], Dygraph.dateTicker(1307908000112, 1307908065178, 800, options)); + assertEquals([{"v":1307908005000,"label":"19:46:45"},{"v":1307908010000,"label":"19:46:50"},{"v":1307908015000,"label":"19:46:55"},{"v":1307908020000,"label":"19:47"},{"v":1307908025000,"label":"19:47:05"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908035000,"label":"19:47:15"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908045000,"label":"19:47:25"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908055000,"label":"19:47:35"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908065000,"label":"19:47:45"}], Dygraph.dateTicker(1307908000112, 1307908066178, 800, options)); + assertEquals([{"v":1307908005000,"label":"19:46:45"},{"v":1307908010000,"label":"19:46:50"},{"v":1307908015000,"label":"19:46:55"},{"v":1307908020000,"label":"19:47"},{"v":1307908025000,"label":"19:47:05"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908035000,"label":"19:47:15"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908045000,"label":"19:47:25"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908055000,"label":"19:47:35"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908065000,"label":"19:47:45"}], Dygraph.dateTicker(1307908000112, 1307908067179, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"}], Dygraph.dateTicker(1307908000112, 1307908068179, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"}], Dygraph.dateTicker(1307908000112, 1307908069179, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"}], Dygraph.dateTicker(1307908000112, 1307908070180, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"}], Dygraph.dateTicker(1307908000112, 1307908071180, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"}], Dygraph.dateTicker(1307908000112, 1307908072181, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"}], Dygraph.dateTicker(1307908000112, 1307908073181, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"}], Dygraph.dateTicker(1307908000112, 1307908074182, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"}], Dygraph.dateTicker(1307908000112, 1307908075182, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"}], Dygraph.dateTicker(1307908000112, 1307908076183, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"}], Dygraph.dateTicker(1307908000112, 1307908077183, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"}], Dygraph.dateTicker(1307908000112, 1307908078184, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"}], Dygraph.dateTicker(1307908000112, 1307908079185, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"}], Dygraph.dateTicker(1307908000112, 1307908080186, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"}], Dygraph.dateTicker(1307908000112, 1307908081187, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"}], Dygraph.dateTicker(1307908000112, 1307908082188, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"}], Dygraph.dateTicker(1307908000112, 1307908083188, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"}], Dygraph.dateTicker(1307908000112, 1307908084189, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"}], Dygraph.dateTicker(1307908000112, 1307908085190, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"}], Dygraph.dateTicker(1307908000112, 1307908086191, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"}], Dygraph.dateTicker(1307908000112, 1307908087192, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"}], Dygraph.dateTicker(1307908000112, 1307908088192, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"}], Dygraph.dateTicker(1307908000112, 1307908089193, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"}], Dygraph.dateTicker(1307908000112, 1307908090194, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"}], Dygraph.dateTicker(1307908000112, 1307908091194, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"}], Dygraph.dateTicker(1307908000112, 1307908092196, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"}], Dygraph.dateTicker(1307908000112, 1307908093196, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"}], Dygraph.dateTicker(1307908000112, 1307908094197, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"}], Dygraph.dateTicker(1307908000112, 1307908095197, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"}], Dygraph.dateTicker(1307908000112, 1307908096198, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"}], Dygraph.dateTicker(1307908000112, 1307908097199, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"}], Dygraph.dateTicker(1307908000112, 1307908098200, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"}], Dygraph.dateTicker(1307908000112, 1307908099200, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"}], Dygraph.dateTicker(1307908000112, 1307908100201, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"}], Dygraph.dateTicker(1307908000112, 1307908101201, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"}], Dygraph.dateTicker(1307908000112, 1307908102202, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"}], Dygraph.dateTicker(1307908000112, 1307908103203, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"}], Dygraph.dateTicker(1307908000112, 1307908104204, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"}], Dygraph.dateTicker(1307908000112, 1307908105205, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"}], Dygraph.dateTicker(1307908000112, 1307908106205, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"}], Dygraph.dateTicker(1307908000112, 1307908107206, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"}], Dygraph.dateTicker(1307908000112, 1307908108209, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"}], Dygraph.dateTicker(1307908000112, 1307908109209, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"}], Dygraph.dateTicker(1307908000112, 1307908110209, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"}], Dygraph.dateTicker(1307908000112, 1307908111210, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"}], Dygraph.dateTicker(1307908000112, 1307908112211, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"}], Dygraph.dateTicker(1307908000112, 1307908113211, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"}], Dygraph.dateTicker(1307908000112, 1307908114212, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"}], Dygraph.dateTicker(1307908000112, 1307908115213, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"}], Dygraph.dateTicker(1307908000112, 1307908116214, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"}], Dygraph.dateTicker(1307908000112, 1307908117214, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"}], Dygraph.dateTicker(1307908000112, 1307908118215, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"}], Dygraph.dateTicker(1307908000112, 1307908119215, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908120000,"label":"19:48:40"}], Dygraph.dateTicker(1307908000112, 1307908120217, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908120000,"label":"19:48:40"}], Dygraph.dateTicker(1307908000112, 1307908121218, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908120000,"label":"19:48:40"}], Dygraph.dateTicker(1307908000112, 1307908122219, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908120000,"label":"19:48:40"}], Dygraph.dateTicker(1307908000112, 1307908123219, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908120000,"label":"19:48:40"}], Dygraph.dateTicker(1307908000112, 1307908124220, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908120000,"label":"19:48:40"}], Dygraph.dateTicker(1307908000112, 1307908125221, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908120000,"label":"19:48:40"}], Dygraph.dateTicker(1307908000112, 1307908126222, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908120000,"label":"19:48:40"}], Dygraph.dateTicker(1307908000112, 1307908127222, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908120000,"label":"19:48:40"}], Dygraph.dateTicker(1307908000112, 1307908128223, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908120000,"label":"19:48:40"}], Dygraph.dateTicker(1307908000112, 1307908129223, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908120000,"label":"19:48:40"},{"v":1307908130000,"label":"19:48:50"}], Dygraph.dateTicker(1307908000112, 1307908130224, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908120000,"label":"19:48:40"},{"v":1307908130000,"label":"19:48:50"}], Dygraph.dateTicker(1307908000112, 1307908131225, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908120000,"label":"19:48:40"},{"v":1307908130000,"label":"19:48:50"}], Dygraph.dateTicker(1307908000112, 1307908132226, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908120000,"label":"19:48:40"},{"v":1307908130000,"label":"19:48:50"}], Dygraph.dateTicker(1307908000112, 1307908133227, 800, options)); + assertEquals([{"v":1307908010000,"label":"19:46:50"},{"v":1307908020000,"label":"19:47"},{"v":1307908030000,"label":"19:47:10"},{"v":1307908040000,"label":"19:47:20"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908060000,"label":"19:47:40"},{"v":1307908070000,"label":"19:47:50"},{"v":1307908080000,"label":"19:48"},{"v":1307908090000,"label":"19:48:10"},{"v":1307908100000,"label":"19:48:20"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908120000,"label":"19:48:40"},{"v":1307908130000,"label":"19:48:50"}], Dygraph.dateTicker(1307908000112, 1307908134227, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"}], Dygraph.dateTicker(1307908000112, 1307908135227, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"}], Dygraph.dateTicker(1307908000112, 1307908136228, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"}], Dygraph.dateTicker(1307908000112, 1307908137230, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"}], Dygraph.dateTicker(1307908000112, 1307908138231, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"}], Dygraph.dateTicker(1307908000112, 1307908139232, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908140233, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908141233, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908142234, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908143240, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908144240, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908145240, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908146241, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908147241, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908148242, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908149243, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908150243, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908151244, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908152245, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908153245, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908154246, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908155247, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908156247, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908157248, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908158249, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908159250, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908160251, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908161252, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908162252, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908163253, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908164254, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908165254, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908166255, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908167256, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908168256, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"}], Dygraph.dateTicker(1307908000112, 1307908169257, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"},{"v":1307908170000,"label":"19:49:30"}], Dygraph.dateTicker(1307908000112, 1307908170258, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"},{"v":1307908170000,"label":"19:49:30"}], Dygraph.dateTicker(1307908000112, 1307908171258, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"},{"v":1307908170000,"label":"19:49:30"}], Dygraph.dateTicker(1307908000112, 1307908172259, 800, options)); + assertEquals([{"v":1307908020000,"label":"19:47"},{"v":1307908050000,"label":"19:47:30"},{"v":1307908080000,"label":"19:48"},{"v":1307908110000,"label":"19:48:30"},{"v":1307908140000,"label":"19:49"},{"v":1307908170000,"label":"19:49:30"}], Dygraph.dateTicker(1307908000112, 1307908173260, 800, options)); + assertEquals([{"v":978307200000,"label":"Jan 01"},{"v":986083200000,"label":"Apr 01"},{"v":993945600000,"label":"Jul 01"},{"v":1001894400000,"label":"Oct 01"}], Dygraph.dateTicker(978307200000, 1001894400000, 400, options)); +}; diff --git a/auto_tests/tests/numeric_ticker.js b/auto_tests/tests/numeric_ticker.js index fcda671..737e4b5 100644 --- a/auto_tests/tests/numeric_ticker.js +++ b/auto_tests/tests/numeric_ticker.js @@ -70,3 +70,120 @@ NumericTickerTestCase.prototype.testBasicNumericTicker = function() { ]; assertEquals(expected_ticks, ticks); }; + +/* +NumericTickerTestCase.prototype.testAllNumericTickers = function() { + assertEquals([{"v":-0.5,"label":"-0.5"},{"v":0,"label":"0"},{"v":0.5,"label":"0.5"},{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"},{"v":4,"label":"4"}], Dygraph.numericTicks(-0.4, 4.4, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":-1.5,"label":"-1.5"},{"v":-1,"label":"-1"},{"v":-0.5,"label":"-0.5"},{"v":0,"label":"0"},{"v":0.5,"label":"0.5"},{"v":1,"label":"1"}], Dygraph.numericTicks(-1.4157430939856124, 1.4157430939856124, 400, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":-10,"label":"-10"},{"v":-8,"label":"-8"},{"v":-6,"label":"-6"},{"v":-4,"label":"-4"},{"v":-2,"label":"-2"},{"v":0,"label":"0"},{"v":2,"label":"2"},{"v":4,"label":"4"},{"v":6,"label":"6"},{"v":8,"label":"8"}], Dygraph.numericTicks(-10, 9.98046875, 400, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":-200,"label":"-200"},{"v":0,"label":"0"},{"v":200,"label":"200"},{"v":400,"label":"400"},{"v":600,"label":"600"},{"v":800,"label":"800"},{"v":-17999000,"label":"1000"}], Dygraph.numericTicks(-101.10000000000001, 1100.1, 300, this.createOptionsViewForAxis('y',{"logscale":false,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":-20,"label":"-20"},{"v":-10,"label":"-10"},{"v":0,"label":"0"},{"v":10,"label":"10"},{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"}], Dygraph.numericTicks(-11.687459005175139, 42.287459005175144, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":-15,"label":"-15"},{"v":-10,"label":"-10"},{"v":-5,"label":"-5"},{"v":0,"label":"0"},{"v":5,"label":"5"},{"v":10,"label":"10"}], Dygraph.numericTicks(-12, 12, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":-15,"label":"-15"},{"v":-10,"label":"-10"},{"v":-5,"label":"-5"},{"v":0,"label":"0"},{"v":5,"label":"5"},{"v":10,"label":"10"}], Dygraph.numericTicks(-13.19792086872138, 13.197062407353386, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":-220,"label":"-220"},{"v":-200,"label":"-200"},{"v":-180,"label":"-180"},{"v":-160,"label":"-160"},{"v":-140,"label":"-140"},{"v":-120,"label":"-120"}], Dygraph.numericTicks(-220, -100, 200, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":-40,"label":"-40"},{"v":-20,"label":"-20"},{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"},{"v":100,"label":"100"},{"v":120,"label":"120"}], Dygraph.numericTicks(-32.8, 132.8, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":-40,"label":"-40"},{"v":-30,"label":"-30"},{"v":-20,"label":"-20"},{"v":-10,"label":"-10"},{"v":0,"label":"0"},{"v":10,"label":"10"},{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"}], Dygraph.numericTicks(-34.309, 89.279, 400, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":-60,"label":"-60"},{"v":-40,"label":"-40"},{"v":-20,"label":"-20"},{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"}], Dygraph.numericTicks(-60, 60, 200, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":-60,"label":"-60"},{"v":-40,"label":"-40"},{"v":-20,"label":"-20"},{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"}], Dygraph.numericTicks(-60, 60, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":0.0001,"label":"1.00e-4"},{"v":0.0002,"label":"2.00e-4"},{"v":-17999999,"label":"3.00e-4"},{"v":0.0004,"label":"4.00e-4"},{"v":0.0005,"label":"5.00e-4"}], Dygraph.numericTicks(0, 0.00055, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":0},{"v":0.0001,"label":0.0001},{"v":0.0002,"label":0.0002},{"v":-17999999,"label":0.0003},{"v":0.0004,"label":0.0004},{"v":0.0005,"label":0.0005}], Dygraph.numericTicks(0, 0.00055, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":0.2,"label":"0.2"},{"v":0.4,"label":"0.4"},{"v":-17999999,"label":"0.6"},{"v":0.8,"label":"0.8"}], Dygraph.numericTicks(0, 1, 200, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":0.2,"label":"0.2"},{"v":0.4,"label":"0.4"},{"v":-17999999,"label":"0.6"},{"v":0.8,"label":"0.8"}], Dygraph.numericTicks(0, 1, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":0.1,"label":"0.1"},{"v":0.2,"label":"0.2"},{"v":-17999999,"label":"0.3"},{"v":0.4,"label":"0.4"},{"v":0.5,"label":"0.5"},{"v":-17999999,"label":"0.6"},{"v":-17999999,"label":"0.7"},{"v":0.8,"label":"0.8"},{"v":0.9,"label":"0.9"},{"v":1,"label":"1"},{"v":1.1,"label":"1.1"},{"v":-17999998,"label":"1.2"}], Dygraph.numericTicks(0, 1.2, 400, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":10,"label":"10"},{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"},{"v":90,"label":"90"}], Dygraph.numericTicks(0, 100, 400, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"},{"v":100,"label":"100"}], Dygraph.numericTicks(0, 104.53192180924043, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"},{"v":100,"label":"100"}], Dygraph.numericTicks(0, 109.9856877755916, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":2,"label":"2"},{"v":4,"label":"4"},{"v":6,"label":"6"},{"v":8,"label":"8"},{"v":10,"label":"10"}], Dygraph.numericTicks(0, 11, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"},{"v":100,"label":"100"}], Dygraph.numericTicks(0, 110, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"},{"v":100,"label":"100"}], Dygraph.numericTicks(0, 110, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":10,"label":"10"},{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"},{"v":90,"label":"90"},{"v":100,"label":"100"}], Dygraph.numericTicks(0, 110, 350, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":200,"label":"200"},{"v":400,"label":"400"},{"v":600,"label":"600"},{"v":800,"label":"800"},{"v":-17999000,"label":"1000"}], Dygraph.numericTicks(0, 1100, 300, this.createOptionsViewForAxis('y',{"logscale":false,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":-17000000,"label":"1M"},{"v":-16000000,"label":"2M"},{"v":-15000000,"label":"3M"},{"v":-14000000,"label":"4M"},{"v":-13000000,"label":"5M"},{"v":-12000000,"label":"6M"},{"v":-11000000,"label":"7M"},{"v":-10000000,"label":"8M"},{"v":-9000000,"label":"9M"},{"v":-8000000,"label":"10M"}], Dygraph.numericTicks(0, 11000000, 480, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":true}))); + assertEquals([{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"},{"v":100,"label":"100"}], Dygraph.numericTicks(0, 119, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"},{"v":100,"label":"100"},{"v":120,"label":"120"}], Dygraph.numericTicks(0, 130.9, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"},{"v":100,"label":"100"},{"v":120,"label":"120"}], Dygraph.numericTicks(0, 131, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":-17998000,"label":"2000"},{"v":-17996000,"label":"4000"},{"v":-17994000,"label":"6000"},{"v":-17992000,"label":"8000"},{"v":-17990000,"label":"10000"},{"v":-17988000,"label":"12000"},{"v":-17986000,"label":"14000"},{"v":-17984000,"label":"16000"}], Dygraph.numericTicks(0, 16977.4, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":0.5,"label":"0.5"},{"v":1,"label":"1"},{"v":1.5,"label":"1.5"}], Dygraph.numericTicks(0, 2, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":0.2,"label":"0.2"},{"v":0.4,"label":"0.4"},{"v":-17999999,"label":"0.6"},{"v":0.8,"label":"0.8"},{"v":1,"label":"1"},{"v":-17999998,"label":"1.2"},{"v":-17999998,"label":"1.4"},{"v":1.6,"label":"1.6"},{"v":1.8,"label":"1.8"}], Dygraph.numericTicks(0, 2, 400, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":0.5,"label":"0.5"},{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"}], Dygraph.numericTicks(0, 2.2, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":-17800000,"label":"200K"},{"v":-17600000,"label":"400K"},{"v":-17400000,"label":"600K"},{"v":-17200000,"label":"800K"},{"v":-17000000,"label":"1M"},{"v":-16800000,"label":"1.2M"},{"v":-16600000,"label":"1.4M"},{"v":-16400000,"label":"1.6M"},{"v":-16200000,"label":"1.8M"},{"v":-16000000,"label":"2M"}], Dygraph.numericTicks(0, 2200000, 350, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":true}))); + assertEquals([{"v":0,"label":"0"},{"v":50,"label":"50"},{"v":100,"label":"100"},{"v":150,"label":"150"},{"v":200,"label":"200"}], Dygraph.numericTicks(0, 249, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":500,"label":"500"},{"v":-17999000,"label":"1000"},{"v":1500,"label":"1500"},{"v":-17998000,"label":"2000"},{"v":2500,"label":"2500"}], Dygraph.numericTicks(0, 2747.9970998900817, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":200,"label":"200"},{"v":400,"label":"400"},{"v":600,"label":"600"},{"v":800,"label":"800"},{"v":-17999000,"label":"1K"},{"v":1200,"label":"1.2K"},{"v":1400,"label":"1.4K"},{"v":1600,"label":"1.6K"},{"v":1800,"label":"1.8K"},{"v":-17998000,"label":"2K"},{"v":2200,"label":"2.2K"},{"v":2400,"label":"2.4K"},{"v":2600,"label":"2.6K"}], Dygraph.numericTicks(0, 2747.9970998900817, 480, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":true}))); + assertEquals([{"v":0,"label":"0"},{"v":5,"label":"5"},{"v":10,"label":"10"},{"v":15,"label":"15"},{"v":20,"label":"20"},{"v":25,"label":"25"},{"v":30,"label":"30"}], Dygraph.numericTicks(0, 32.698942321287205, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":-17500000,"label":"500000"},{"v":-17000000,"label":"1.00e+6"},{"v":-16500000,"label":"1.50e+6"},{"v":-16000000,"label":"2.00e+6"},{"v":-15500000,"label":"2.50e+6"},{"v":-15000000,"label":"3.00e+6"}], Dygraph.numericTicks(0, 3263100.6418021005, 480, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":5,"label":"5"},{"v":10,"label":"10"},{"v":15,"label":"15"},{"v":20,"label":"20"},{"v":25,"label":"25"},{"v":30,"label":"30"}], Dygraph.numericTicks(0, 33.16213467701236, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":0.5,"label":"0.5"},{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"}], Dygraph.numericTicks(0, 4, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":0.5,"label":"0.5"},{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"},{"v":4,"label":"4"}], Dygraph.numericTicks(0, 4.4, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":5,"label":"5"},{"v":10,"label":"10"},{"v":15,"label":"15"},{"v":20,"label":"20"},{"v":25,"label":"25"},{"v":30,"label":"30"},{"v":35,"label":"35"},{"v":40,"label":"40"}], Dygraph.numericTicks(0, 42, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":true}))); + assertEquals([{"v":0,"label":"0"},{"v":8,"label":"8"},{"v":16,"label":"16"},{"v":24,"label":"24"},{"v":32,"label":"32"},{"v":40,"label":"40"}], Dygraph.numericTicks(0, 42, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":true,"labelsKMB":false}))); + assertEquals([{"v":0,"label":0},{"v":8,"label":8},{"v":16,"label":16},{"v":24,"label":24},{"v":32,"label":32},{"v":40,"label":40}], Dygraph.numericTicks(0, 42, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":true,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":999982000000,"label":"1T"},{"v":1999982000000,"label":"2T"},{"v":2999982000000,"label":"3T"},{"v":3999982000000,"label":"4T"}], Dygraph.numericTicks(0, 4837851162214.3, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":true}))); + assertEquals([{"v":0,"label":"0"},{"v":549755813888,"label":"512G"},{"v":1099511627776,"label":"1T"},{"v":1649267441664,"label":"1.5T"},{"v":2199023255552,"label":"2T"},{"v":2748779069440,"label":"2.5T"},{"v":3298534883328,"label":"3T"},{"v":3848290697216,"label":"3.5T"},{"v":4398046511104,"label":"4T"}], Dygraph.numericTicks(0, 4837851162214.3, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":true,"labelsKMB":false}))); + assertEquals([{"v":0,"label":0},{"v":549755813888,"label":"512G"},{"v":1099511627776,"label":"1T"},{"v":1649267441664,"label":"1.5T"},{"v":2199023255552,"label":"2T"},{"v":2748779069440,"label":"2.5T"},{"v":3298534883328,"label":"3T"},{"v":3848290697216,"label":"3.5T"},{"v":4398046511104,"label":"4T"}], Dygraph.numericTicks(0, 4837851162214.3, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":true,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":-17999000,"label":"1000"},{"v":-17998000,"label":"2000"},{"v":-17997000,"label":"3000"},{"v":-17996000,"label":"4000"},{"v":-17995000,"label":"5000"}], Dygraph.numericTicks(0, 5451.6, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":100,"label":"100"},{"v":200,"label":"200"},{"v":300,"label":"300"},{"v":400,"label":"400"},{"v":500,"label":"500"}], Dygraph.numericTicks(0, 550, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":10,"label":"10"},{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"}], Dygraph.numericTicks(0, 64.9, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":100,"label":"100"},{"v":200,"label":"200"},{"v":300,"label":"300"},{"v":400,"label":"400"},{"v":500,"label":"500"},{"v":600,"label":"600"}], Dygraph.numericTicks(0, 667.9, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":1,"label":"1"},{"v":2,"label":"2"},{"v":3,"label":"3"},{"v":4,"label":"4"},{"v":5,"label":"5"},{"v":6,"label":"6"},{"v":7,"label":"7"}], Dygraph.numericTicks(0, 7.7, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":1,"label":"1"},{"v":2,"label":"2"},{"v":3,"label":"3"},{"v":4,"label":"4"},{"v":5,"label":"5"},{"v":6,"label":"6"},{"v":7,"label":"7"}], Dygraph.numericTicks(0, 7.9347329768293005, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":10,"label":"10"},{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"}], Dygraph.numericTicks(0, 72.6, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"}], Dygraph.numericTicks(0, 99, 200, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"}], Dygraph.numericTicks(0, 99, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":10,"label":"10"},{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"},{"v":90,"label":"90"}], Dygraph.numericTicks(0, 99, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":200,"label":"200"},{"v":400,"label":"400"},{"v":600,"label":"600"},{"v":800,"label":"800"}], Dygraph.numericTicks(0, 999, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0.000001,"label":"1.00e-6"},{"v":-17999999,"label":""},{"v":-17999999,"label":""},{"v":-17999999,"label":""},{"v":-17999999,"label":""},{"v":-17999999,"label":""},{"v":-17999999,"label":""},{"v":-17999999,"label":""},{"v":-17999999,"label":""},{"v":-17999999,"label":"1.00e-5"},{"v":-17999999,"label":""},{"v":-17999999,"label":""},{"v":-17999999,"label":""},{"v":-17999999,"label":""},{"v":-17999999,"label":""},{"v":-17999999,"label":""},{"v":-17999999,"label":""},{"v":-17999999,"label":""},{"v":0.0001,"label":"1.00e-4"},{"v":0.0002,"label":""},{"v":-17999999,"label":""},{"v":0.0004,"label":""},{"v":0.0005,"label":""},{"v":-17999999,"label":""},{"v":0.0007,"label":""},{"v":0.0008,"label":""},{"v":-17999999,"label":""},{"v":0.001,"label":"1.00e-3"},{"v":0.002,"label":""},{"v":0.003,"label":""},{"v":0.004,"label":""},{"v":0.005,"label":""},{"v":0.006,"label":""},{"v":0.007,"label":""},{"v":0.008,"label":""},{"v":-17999999,"label":""},{"v":0.01,"label":"0.01"},{"v":0.02,"label":""},{"v":0.03,"label":""},{"v":0.04,"label":""},{"v":0.05,"label":""},{"v":0.06,"label":""},{"v":0.07,"label":""},{"v":0.08,"label":""},{"v":0.09,"label":""},{"v":0.1,"label":"0.1"},{"v":0.2,"label":""},{"v":-17999999,"label":""},{"v":0.4,"label":""},{"v":0.5,"label":""},{"v":-17999999,"label":""},{"v":-17999999,"label":""},{"v":0.8,"label":""},{"v":0.9,"label":""},{"v":1,"label":"1"},{"v":2,"label":""},{"v":3,"label":""},{"v":4,"label":""},{"v":5,"label":""},{"v":6,"label":""},{"v":7,"label":""},{"v":8,"label":""},{"v":9,"label":""},{"v":10,"label":"10"},{"v":20,"label":""},{"v":30,"label":""},{"v":40,"label":""},{"v":50,"label":""},{"v":60,"label":""},{"v":70,"label":""},{"v":80,"label":""},{"v":90,"label":""},{"v":100,"label":"100"},{"v":200,"label":""},{"v":300,"label":""},{"v":400,"label":""},{"v":500,"label":""},{"v":600,"label":""},{"v":700,"label":""},{"v":800,"label":""},{"v":900,"label":""},{"v":-17999000,"label":"1000"}], Dygraph.numericTicks(0.000001, 1099.9999999, 300, this.createOptionsViewForAxis('y',{"logscale":true,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":1,"label":"1"},{"v":2,"label":"2"},{"v":3,"label":"3"},{"v":4,"label":"4"},{"v":5,"label":"5"}], Dygraph.numericTicks(0.6, 5.4, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0.5,"label":"0.5"},{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"},{"v":4,"label":"4"},{"v":4.5,"label":"4.5"}], Dygraph.numericTicks(0.6373123361267239, 4.824406504982038, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0.5,"label":"0.5"},{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"},{"v":4,"label":"4"},{"v":4.5,"label":"4.5"}], Dygraph.numericTicks(0.6373123361267239, 4.824406504982038, 353, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0.6000000000000001,"label":"0.6"},{"v":0.8,"label":"0.8"},{"v":1,"label":"1"},{"v":-17999998,"label":"1.2"},{"v":-17999998,"label":"1.4"},{"v":1.6,"label":"1.6"},{"v":-17999998,"label":"1.8"},{"v":2,"label":"2"},{"v":2.2,"label":"2.2"},{"v":-17999997,"label":"2.4"},{"v":2.6,"label":"2.6"},{"v":-17999997,"label":"2.8"},{"v":-17999997,"label":"3"},{"v":3.2,"label":"3.2"},{"v":-17999996,"label":"3.4"},{"v":3.6,"label":"3.6"},{"v":-17999996,"label":"3.8"},{"v":4,"label":"4"},{"v":4.2,"label":"4.2"},{"v":4.4,"label":"4.4"},{"v":4.6,"label":"4.6"},{"v":-17999995,"label":"4.8"}], Dygraph.numericTicks(0.6373123361267239, 4.824406504982038, 743, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0.5,"label":"0.5"},{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"},{"v":4,"label":"4"},{"v":4.5,"label":"4.5"}], Dygraph.numericTicks(0.6386658954698001, 4.8095173522082, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0.5,"label":"0.5"},{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"},{"v":4,"label":"4"}], Dygraph.numericTicks(0.7101014279158788, 4.023726495301334, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"},{"v":100,"label":"100"}], Dygraph.numericTicks(1, 109, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"}], Dygraph.numericTicks(1, 3, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"}], Dygraph.numericTicks(1, 4, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"}], Dygraph.numericTicks(1, 4, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"},{"v":4,"label":"4"},{"v":4.5,"label":"4.5"}], Dygraph.numericTicks(1, 5, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":1,"label":1},{"v":1.5,"label":1.5},{"v":2,"label":2},{"v":2.5,"label":2.5},{"v":3,"label":3},{"v":3.5,"label":3.5},{"v":4,"label":4},{"v":4.5,"label":4.5}], Dygraph.numericTicks(1, 5, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":1,"label":"1"},{"v":2,"label":"2"},{"v":3,"label":"3"},{"v":4,"label":"4"},{"v":5,"label":"5"}], Dygraph.numericTicks(1, 6, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":1,"label":"1"},{"v":2,"label":"2"},{"v":3,"label":"3"},{"v":4,"label":"4"},{"v":5,"label":"5"},{"v":6,"label":"6"}], Dygraph.numericTicks(1, 7, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":1,"label":"1"},{"v":2,"label":"2"},{"v":3,"label":"3"},{"v":4,"label":"4"},{"v":5,"label":"5"},{"v":6,"label":"6"},{"v":7,"label":"7"},{"v":8,"label":"8"}], Dygraph.numericTicks(1, 9, 300, this.createOptionsViewForAxis('y',{"logscale":false,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":1,"label":"1"},{"v":2,"label":"2"},{"v":3,"label":"3"},{"v":4,"label":"4"},{"v":5,"label":"5"},{"v":6,"label":""},{"v":7,"label":"7"},{"v":8,"label":""},{"v":9,"label":"9"}], Dygraph.numericTicks(1, 9, 300, this.createOptionsViewForAxis('y',{"logscale":true,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":1,"label":"1"},{"v":2,"label":"2"},{"v":3,"label":"3"},{"v":4,"label":"4"},{"v":5,"label":"5"},{"v":6,"label":"6"},{"v":7,"label":"7"},{"v":8,"label":"8"}], Dygraph.numericTicks(1, 9, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":2,"label":"2"},{"v":4,"label":"4"},{"v":6,"label":"6"},{"v":8,"label":"8"},{"v":10,"label":"10"}], Dygraph.numericTicks(1.2, 10.8, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"},{"v":4,"label":"4"},{"v":4.5,"label":"4.5"}], Dygraph.numericTicks(1.2872947778969237, 4.765317192093838, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":1,"label":"1"},{"v":2,"label":"2"},{"v":3,"label":"3"},{"v":4,"label":"4"},{"v":5,"label":"5"},{"v":6,"label":"6"},{"v":7,"label":"7"}], Dygraph.numericTicks(1.5, 7.5, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":5,"label":"5"},{"v":10,"label":"10"},{"v":15,"label":"15"},{"v":20,"label":"20"},{"v":25,"label":"25"}], Dygraph.numericTicks(1.7999999999999998, 28.2, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":10,"label":"10"},{"v":10.1,"label":"10.1"},{"v":10.2,"label":"10.2"},{"v":10.3,"label":"10.3"},{"v":10.4,"label":"10.4"},{"v":10.5,"label":"10.5"},{"v":10.6,"label":"10.6"},{"v":10.7,"label":"10.7"},{"v":10.8,"label":"10.8"},{"v":10.9,"label":"10.9"}], Dygraph.numericTicks(10, 11, 480, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":100,"label":"100"},{"v":120,"label":"120"},{"v":140,"label":"140"},{"v":160,"label":"160"},{"v":180,"label":"180"}], Dygraph.numericTicks(100, 200, 200, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":10000,"label":"10000"},{"v":-17988000,"label":"12000"},{"v":-17986000,"label":"14000"},{"v":-17984000,"label":"16000"},{"v":-17982000,"label":"18000"},{"v":-17980000,"label":"20000"},{"v":-17978000,"label":"22000"},{"v":-17976000,"label":"24000"},{"v":-17974000,"label":"26000"},{"v":-17972000,"label":"28000"},{"v":-17970000,"label":"30000"},{"v":-17968000,"label":"32000"},{"v":-17966000,"label":"34000"},{"v":-17964000,"label":"36000"}], Dygraph.numericTicks(10122.8, 36789.2, 480, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":11000,"label":"11000"},{"v":11200,"label":"11200"},{"v":11400,"label":"11400"},{"v":11600,"label":"11600"},{"v":11800,"label":"11800"},{"v":-17988000,"label":"12000"},{"v":12200,"label":"12200"},{"v":12400,"label":"12400"},{"v":12600,"label":"12600"},{"v":12800,"label":"12800"},{"v":-17987000,"label":"13000"},{"v":13200,"label":"13200"},{"v":13400,"label":"13400"}], Dygraph.numericTicks(11110.5, 13579.5, 480, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":162000,"label":"162000"},{"v":-17836000,"label":"164000"},{"v":-17834000,"label":"166000"},{"v":-17832000,"label":"168000"},{"v":-17830000,"label":"170000"},{"v":-17828000,"label":"172000"},{"v":-17826000,"label":"174000"},{"v":-17824000,"label":"176000"},{"v":-17822000,"label":"178000"}], Dygraph.numericTicks(163038.4, 179137.6, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"}], Dygraph.numericTicks(2, 4, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":2,"label":"2"},{"v":3,"label":"3"},{"v":4,"label":"4"},{"v":5,"label":"5"},{"v":6,"label":"6"},{"v":7,"label":"7"}], Dygraph.numericTicks(2.6, 7.4, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"},{"v":90,"label":"90"}], Dygraph.numericTicks(21.7, 97.3, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"},{"v":90,"label":"90"}], Dygraph.numericTicks(21.7, 97.3, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"},{"v":90,"label":"90"}], Dygraph.numericTicks(24, 96, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"}], Dygraph.numericTicks(26.185714285714287, 90.81428571428572, 20, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"},{"v":90,"label":"90"}], Dygraph.numericTicks(26.185714285714287, 90.81428571428572, 200, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false,pixelsPerLabel:20}))); + assertEquals([{"v":25,"label":"25"},{"v":30,"label":"30"},{"v":35,"label":"35"},{"v":40,"label":"40"},{"v":45,"label":"45"},{"v":50,"label":"50"},{"v":55,"label":"55"},{"v":60,"label":"60"},{"v":65,"label":"65"},{"v":70,"label":"70"},{"v":75,"label":"75"},{"v":80,"label":"80"},{"v":85,"label":"85"},{"v":90,"label":"90"}], Dygraph.numericTicks(26.185714285714287, 90.81428571428572, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false,pixelsPerLabel:20}))); + assertEquals([{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"},{"v":90,"label":"90"}], Dygraph.numericTicks(26.185714285714287, 90.81428571428572, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"}], Dygraph.numericTicks(28.33333333333333, 88.33333333333334, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":3,"label":"3"},{"v":3.5,"label":"3.5"},{"v":4,"label":"4"},{"v":4.5,"label":"4.5"}], Dygraph.numericTicks(3, 5, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":3000,"label":"3K"},{"v":2500,"label":"2.5K"},{"v":-17998000,"label":"2K"},{"v":1500,"label":"1.5K"},{"v":-17999000,"label":"1K"},{"v":500,"label":"500"}], Dygraph.numericTicks(3000, 0, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":true}))); + assertEquals([{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"}], Dygraph.numericTicks(33.11333333333334, 83.75333333333333, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"}], Dygraph.numericTicks(36.921241050119335, 88.32696897374701, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":50,"label":""},{"v":60,"label":"60"},{"v":70,"label":""},{"v":80,"label":""},{"v":90,"label":""},{"v":100,"label":"100"},{"v":200,"label":""},{"v":300,"label":"300"},{"v":400,"label":""},{"v":500,"label":""},{"v":600,"label":"600"},{"v":700,"label":""},{"v":800,"label":""},{"v":900,"label":""},{"v":-17999000,"label":"1000"},{"v":-17998000,"label":""},{"v":-17997000,"label":"3000"},{"v":-17996000,"label":""},{"v":-17995000,"label":""},{"v":-17994000,"label":"6000"},{"v":-17993000,"label":""},{"v":-17992000,"label":""},{"v":-17991000,"label":""},{"v":-17990000,"label":"10000"}], Dygraph.numericTicks(41.220000000000084, 15576.828000000018, 400, this.createOptionsViewForAxis('y',{"logscale":true,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"},{"v":90,"label":"90"}], Dygraph.numericTicks(44.5, 98.5, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":5,"label":"5"},{"v":6,"label":""},{"v":7,"label":""},{"v":8,"label":""},{"v":9,"label":""},{"v":10,"label":"10"},{"v":20,"label":"20"},{"v":30,"label":""},{"v":40,"label":""},{"v":50,"label":"50"},{"v":60,"label":""},{"v":70,"label":""},{"v":80,"label":""},{"v":90,"label":""},{"v":100,"label":"100"},{"v":200,"label":"200"},{"v":300,"label":""},{"v":400,"label":""},{"v":500,"label":"500"},{"v":600,"label":""},{"v":700,"label":""},{"v":800,"label":""},{"v":900,"label":""},{"v":-17999000,"label":"1000"}], Dygraph.numericTicks(5, 1099.5, 300, this.createOptionsViewForAxis('y',{"logscale":true,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":50,"label":"50"},{"v":55,"label":"55"},{"v":60,"label":"60"},{"v":65,"label":"65"},{"v":70,"label":"70"},{"v":75,"label":"75"},{"v":80,"label":"80"}], Dygraph.numericTicks(52.5, 82.5, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":68,"label":"68"},{"v":70,"label":"70"},{"v":72,"label":"72"},{"v":74,"label":"74"},{"v":76,"label":"76"},{"v":78,"label":"78"},{"v":80,"label":"80"}], Dygraph.numericTicks(69, 81, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":0,"label":"0"},{"v":-17980000,"label":"20K"},{"v":-17960000,"label":"40K"},{"v":-17940000,"label":"60K"},{"v":-17920000,"label":"80K"}], Dygraph.numericTicks(7921.099999999999, 81407.9, 240, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":true}))); + assertEquals([{"v":8,"label":"8"},{"v":10,"label":"10"},{"v":12,"label":"12"},{"v":14,"label":"14"},{"v":16,"label":"16"},{"v":18,"label":"18"},{"v":20,"label":"20"}], Dygraph.numericTicks(9, 21, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":8,"label":"8"},{"v":10,"label":"10"},{"v":12,"label":"12"},{"v":14,"label":"14"},{"v":16,"label":"16"},{"v":18,"label":"18"},{"v":20,"label":"20"}], Dygraph.numericTicks(9, 21, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":9,"label":"9"},{"v":10,"label":"10"},{"v":11,"label":"11"},{"v":12,"label":"12"},{"v":13,"label":"13"},{"v":14,"label":"14"},{"v":15,"label":"15"},{"v":16,"label":"16"},{"v":17,"label":"17"},{"v":18,"label":"18"}], Dygraph.numericTicks(9.2, 18.8, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":80,"label":"80"},{"v":100,"label":"100"},{"v":120,"label":"120"},{"v":140,"label":"140"},{"v":160,"label":"160"},{"v":180,"label":"180"},{"v":200,"label":"200"}], Dygraph.numericTicks(90, 210, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":true}))); + assertEquals([{"v":95,"label":"95"},{"v":96,"label":"96"},{"v":97,"label":"97"},{"v":98,"label":"98"},{"v":99,"label":"99"},{"v":100,"label":"100"},{"v":101,"label":"101"},{"v":102,"label":"102"},{"v":103,"label":"103"},{"v":104,"label":"104"}], Dygraph.numericTicks(95.71121718377088, 104.23150357995226, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); + assertEquals([{"v":950,"label":"950"},{"v":-17999000,"label":"1000"},{"v":1050,"label":"1050"},{"v":1100,"label":"1100"},{"v":1150,"label":"1150"},{"v":1200,"label":"1200"}], Dygraph.numericTicks(980.1, 1218.9, 200, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); +}; +*/ diff --git a/auto_tests/tests/tickers.disabled-js b/auto_tests/tests/tickers.disabled-js deleted file mode 100644 index d3e6fdf..0000000 --- a/auto_tests/tests/tickers.disabled-js +++ /dev/null @@ -1,340 +0,0 @@ -/** - * @fileoverview Test cases for the tick-generating functions. - * These were generated by adding logging code to the old ticker functions. The - * tests serve to track existing behavior should it change in the future. - * - * @author danvdk@gmail.com (Dan Vanderkam) - */ - -var TickerTestCase = TestCase("ticker-tests"); - -TickerTestCase.prototype.setUp = function() { - document.body.innerHTML = "
"; -}; - -TickerTestCase.prototype.createOptionsViewForAxis = function(axis, dict) { - return function (x) { - if (dict && dict.hasOwnProperty(x)) { - return dict[x]; - } - if (Dygraph.DEFAULT_ATTRS.axes[axis].hasOwnProperty(x)) { - return Dygraph.DEFAULT_ATTRS.axes[axis][x]; - } - if (Dygraph.DEFAULT_ATTRS.hasOwnProperty(x)) { - return Dygraph.DEFAULT_ATTRS[x]; - } - if (x == 'axisLabelFormatter') return null; - throw "mysterious " + axis + "-axis option: " + x; - }; -}; - -// Broken, since it assumes EST. -TickerTestCase.prototype._testBasicDateTicker = function() { - var ticks = Dygraph.dateTicker(-1797534000000, 1255579200000, 800, - this.createOptionsViewForAxis('x')); - - var expected_ticks = [{"v":-1577905200000,"label":"1920"},{"v":-1262286000000,"label":"1930"},{"v":-946753200000,"label":"1940"},{"v":-631134000000,"label":"1950"},{"v":-315601200000,"label":"1960"},{"v":18000000,"label":"1970"},{"v":315550800000,"label":"1980"},{"v":631170000000,"label":"1990"},{"v":946702800000,"label":"2000"}]; - - assertEquals(expected_ticks, ticks); -}; - -TickerTestCase.prototype.testBasicNumericTicker = function() { - var opts = {"logscale":null,"labelsKMG2":false,"labelsKMB":false}; - var ticks = Dygraph.numericTicks(-0.4, 4.4, 320, - this.createOptionsViewForAxis('y', opts)); - - var expected_ticks = [{"v":-0.5,"label":"-0.5"},{"v":0,"label":"0"},{"v":0.5,"label":"0.5"},{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"},{"v":4,"label":"4"}]; - - assertEquals(expected_ticks, ticks); -}; - -// Broken, since it assumes EST. -TickerTestCase.prototype._testAllDateTickers = function() { - assertEquals([{"v":-1577905200000,"label":"1920"},{"v":-1262286000000,"label":"1930"},{"v":-946753200000,"label":"1940"},{"v":-631134000000,"label":"1950"},{"v":-315601200000,"label":"1960"},{"v":18000000,"label":"1970"},{"v":315550800000,"label":"1980"},{"v":631170000000,"label":"1990"},{"v":946702800000,"label":"2000"}], Dygraph.dateTicker(-1797534000000, 1255579200000, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":-5364644400000,"label":"1800"},{"v":-2208970800000,"label":"1900"}], Dygraph.dateTicker(-6122026800000, 189320400000, 480, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1041138000000,"label":"29Dec"},{"v":1041742800000,"label":"05Jan"},{"v":1042347600000,"label":"12Jan"},{"v":1042952400000,"label":"19Jan"},{"v":1043557200000,"label":"26Jan"},{"v":1044162000000,"label":"02Feb"},{"v":1044766800000,"label":"09Feb"},{"v":1045371600000,"label":"16Feb"}], Dygraph.dateTicker(1041138000000, 1045371600000, 640, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1041397200000,"label":"Jan 03"},{"v":1072933200000,"label":"Jan 04"},{"v":1104555600000,"label":"Jan 05"},{"v":1136091600000,"label":"Jan 06"},{"v":1167627600000,"label":"Jan 07"},{"v":1199163600000,"label":"Jan 08"},{"v":1230786000000,"label":"Jan 09"},{"v":1262322000000,"label":"Jan 10"},{"v":1293858000000,"label":"Jan 11"}], Dygraph.dateTicker(1041138000000, 1307851200000, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1159675200000,"label":"01Oct"},{"v":1160280000000,"label":"08Oct"},{"v":1160884800000,"label":"15Oct"},{"v":1161489600000,"label":"22Oct"},{"v":1162094400000,"label":"29Oct"}], Dygraph.dateTicker(1159675200000, 1162270800000, 480, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1159675200000,"label":"01Oct"},{"v":1160280000000,"label":"08Oct"},{"v":1160884800000,"label":"15Oct"},{"v":1161489600000,"label":"22Oct"},{"v":1162094400000,"label":"29Oct"}], Dygraph.dateTicker(1159675200000, 1162270800000, 640, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1159675200000,"label":"01Oct"},{"v":1160280000000,"label":"08Oct"},{"v":1160884800000,"label":"15Oct"},{"v":1161489600000,"label":"22Oct"},{"v":1162094400000,"label":"29Oct"},{"v":1162699200000,"label":"05Nov"},{"v":1163304000000,"label":"12Nov"},{"v":1163908800000,"label":"19Nov"},{"v":1164513600000,"label":"26Nov"}], Dygraph.dateTicker(1159675200000, 1164776400000, 1150, this.createOptionsViewForAxis('x'))); - // assertEquals([{"v":1159675200000,"label":"Oct 06"},{"v":1162357200000,"label":"Nov 06"},{"v":null,"label":"undefined NaN"}], Dygraph.dateTicker(1159675200000, 1164776400000, 400, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1159675200000,"label":"01Oct"},{"v":1160280000000,"label":"08Oct"},{"v":1160884800000,"label":"15Oct"},{"v":1161489600000,"label":"22Oct"},{"v":1162094400000,"label":"29Oct"},{"v":1162699200000,"label":"05Nov"},{"v":1163304000000,"label":"12Nov"},{"v":1163908800000,"label":"19Nov"},{"v":1164513600000,"label":"26Nov"}], Dygraph.dateTicker(1159675200000, 1164776400000, 500, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1159675200000,"label":"01Oct"},{"v":1160280000000,"label":"08Oct"},{"v":1160884800000,"label":"15Oct"},{"v":1161489600000,"label":"22Oct"},{"v":1162094400000,"label":"29Oct"},{"v":1162699200000,"label":"05Nov"},{"v":1163304000000,"label":"12Nov"},{"v":1163908800000,"label":"19Nov"},{"v":1164513600000,"label":"26Nov"}], Dygraph.dateTicker(1159675200000, 1164776400000, 600, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1159675200962,"label":"01Oct"},{"v":1160280000962,"label":"08Oct"},{"v":1160884800962,"label":"15Oct"},{"v":1161489600962,"label":"22Oct"},{"v":1162094400962,"label":"29Oct"},{"v":1162699200962,"label":"05Nov"},{"v":1163304000962,"label":"12Nov"}], Dygraph.dateTicker(1160261979962, 1163905694248, 600, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1160280000000,"label":"08Oct"},{"v":1160884800000,"label":"15Oct"}], Dygraph.dateTicker(1160539200000, 1161316800000, 480, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1161403200461,"label":"21Oct"},{"v":1161489600461,"label":"22Oct"},{"v":1161576000461,"label":"23Oct"},{"v":1161662400461,"label":"24Oct"},{"v":1161748800461,"label":"25Oct"},{"v":1161835200461,"label":"26Oct"},{"v":1161921600461,"label":"27Oct"},{"v":1162008000461,"label":"28Oct"}], Dygraph.dateTicker(1161489164461, 1162008465957, 600, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1161554400860,"label":"18:00"},{"v":1161576000860,"label":"00:00"},{"v":1161597600860,"label":"06:00"},{"v":1161619200860,"label":"12:00"},{"v":1161640800860,"label":"18:00"}], Dygraph.dateTicker(1161575878860, 1161660991675, 600, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1161770400840,"label":"06:00"},{"v":1161774000840,"label":"07:00"},{"v":1161777600840,"label":"08:00"},{"v":1161781200840,"label":"09:00"},{"v":1161784800840,"label":"10:00"},{"v":1161788400840,"label":"11:00"},{"v":1161792000840,"label":"12:00"}], Dygraph.dateTicker(1161770537840, 1161792063332, 600, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1167627600000,"label":"01Jan"},{"v":1167714000000,"label":"02Jan"},{"v":1167800400000,"label":"03Jan"},{"v":1167886800000,"label":"04Jan"},{"v":1167973200000,"label":"05Jan"},{"v":1168059600000,"label":"06Jan"},{"v":1168146000000,"label":"07Jan"},{"v":1168232400000,"label":"08Jan"},{"v":1168318800000,"label":"09Jan"}], Dygraph.dateTicker(1167627600000, 1168318800000, 480, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1167627600000,"label":"Jan 07"}], Dygraph.dateTicker(1167627600000, 1199077200000, 100, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1167627600000,"label":"Jan 07"},{"v":1175400000000,"label":"Apr 07"},{"v":1183262400000,"label":"Jul 07"},{"v":1191211200000,"label":"Oct 07"}], Dygraph.dateTicker(1167627600000, 1199077200000, 300, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1167627600000,"label":"Jan 07"},{"v":1175400000000,"label":"Apr 07"},{"v":1183262400000,"label":"Jul 07"},{"v":1191211200000,"label":"Oct 07"}], Dygraph.dateTicker(1167627600000, 1199077200000, 480, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1167627600000,"label":"Jan 07"},{"v":1175400000000,"label":"Apr 07"},{"v":1183262400000,"label":"Jul 07"},{"v":1191211200000,"label":"Oct 07"}], Dygraph.dateTicker(1167627600000, 1199077200000, 600, this.createOptionsViewForAxis('x'))); - // assertEquals([{"v":1167627600000,"label":"Jan 07"},{"v":1170306000000,"label":"Feb 07"},{"v":1172725200000,"label":"Mar 07"},{"v":1175400000000,"label":"Apr 07"},{"v":1177992000000,"label":"May 07"},{"v":1180670400000,"label":"Jun 07"},{"v":1183262400000,"label":"Jul 07"},{"v":1185940800000,"label":"Aug 07"},{"v":1188619200000,"label":"Sep 07"},{"v":1191211200000,"label":"Oct 07"},{"v":1193889600000,"label":"Nov 07"},{"v":1196485200000,"label":"Dec 07"},{"v":null,"label":"undefined NaN"}], Dygraph.dateTicker(1167627600000, 1199077200000, 800, this.createOptionsViewForAxis('x'))); - - // Test monthly for time span starting Dec 31, 2010. - assertEquals([{"v":1293858000000,"label":"Jan 11"},{"v":1296536400000,"label":"Feb 11"},{"v":1298955600000,"label":"Mar 11"},{"v":1301630400000,"label":"Apr 11"},{"v":1304222400000,"label":"May 11"},{"v":1306900800000,"label":"Jun 11"},{"v":1309492800000,"label":"Jul 11"},{"v":1312171200000,"label":"Aug 11"}], Dygraph.dateTicker(1293771600000, 1312862400000, 727, this.createOptionsViewForAxis('x'))); - - assertEquals([{"v":1201842000000,"label":"01Feb"},{"v":1201928400000,"label":"02Feb"},{"v":1202014800000,"label":"03Feb"},{"v":1202101200000,"label":"04Feb"},{"v":1202187600000,"label":"05Feb"},{"v":1202274000000,"label":"06Feb"}], Dygraph.dateTicker(1201842000000, 1202274000000, 700, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1210132800000,"label":"07May"},{"v":1210154400000,"label":"06:00"},{"v":1210176000000,"label":"12:00"},{"v":1210197600000,"label":"18:00"},{"v":1210219200000,"label":"08May"},{"v":1210240800000,"label":"06:00"},{"v":1210262400000,"label":"12:00"},{"v":1210284000000,"label":"18:00"},{"v":1210305600000,"label":"09May"}], Dygraph.dateTicker(1210132800000, 1210305600000, 480, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1210132800000,"label":"07May"},{"v":1210219200000,"label":"08May"},{"v":1210305600000,"label":"09May"},{"v":1210392000000,"label":"10May"},{"v":1210478400000,"label":"11May"}], Dygraph.dateTicker(1210132800000, 1210478400000, 480, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1210132800000,"label":"07May"},{"v":1210219200000,"label":"08May"},{"v":1210305600000,"label":"09May"},{"v":1210392000000,"label":"10May"},{"v":1210478400000,"label":"11May"},{"v":1210564800000,"label":"12May"}], Dygraph.dateTicker(1210132800000, 1210564800000, 480, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1214884800000,"label":"01Jul"},{"v":1214886600000,"label":"00:30"},{"v":1214888400000,"label":"01:00"},{"v":1214890200000,"label":"01:30"}], Dygraph.dateTicker(1214884800000, 1214891999000, 600, this.createOptionsViewForAxis('x'))); - // assertEquals([{"v":1214884800000,"label":"Jul 08"},{"v":1217563200000,"label":"Aug 08"},{"v":1220241600000,"label":"Sep 08"},{"v":null,"label":"undefined NaN"}], Dygraph.dateTicker(1214884800000, 1222765200000, 600, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1215835200000,"label":"12Jul"},{"v":1215856800000,"label":"06:00"},{"v":1215878400000,"label":"12:00"},{"v":1215900000000,"label":"18:00"},{"v":1215921600000,"label":"13Jul"},{"v":1215943200000,"label":"06:00"},{"v":1215964800000,"label":"12:00"},{"v":1215986400000,"label":"18:00"}], Dygraph.dateTicker(1215835200000, 1216007940000, 600, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1246161600000,"label":"28Jun"},{"v":1246766400000,"label":"05Jul"},{"v":1247371200000,"label":"12Jul"},{"v":1247976000000,"label":"19Jul"}], Dygraph.dateTicker(1246420800000, 1248235200000, 600, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1246161600000,"label":"28Jun"},{"v":1246766400000,"label":"05Jul"},{"v":1247371200000,"label":"12Jul"},{"v":1247976000000,"label":"19Jul"},{"v":1248580800000,"label":"26Jul"},{"v":1249185600000,"label":"02Aug"}], Dygraph.dateTicker(1246420800000, 1249358400000, 600, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1247371200000,"label":"12Jul"},{"v":1247374800000,"label":"01:00"},{"v":1247378400000,"label":"02:00"},{"v":1247382000000,"label":"03:00"},{"v":1247385600000,"label":"04:00"},{"v":1247389200000,"label":"05:00"},{"v":1247392800000,"label":"06:00"}], Dygraph.dateTicker(1247371200000, 1247392800000, 600, this.createOptionsViewForAxis('x'))); - // This one is DST-dependent: - // assertEquals([{"v":1247371200000,"label":"02:00"},{"v":1247374800000,"label":"03:00"},{"v":1247378400000,"label":"04:00"},{"v":1247382000000,"label":"05:00"},{"v":1247385600000,"label":"06:00"},{"v":1247389200000,"label":"07:00"},{"v":1247392800000,"label":"08:00"}], Dygraph.dateTicker(1247371200000, 1247392800000, 600, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1247371200000,"label":"12Jul"},{"v":1247374800000,"label":"01:00"},{"v":1247378400000,"label":"02:00"},{"v":1247382000000,"label":"03:00"},{"v":1247385600000,"label":"04:00"},{"v":1247389200000,"label":"05:00"},{"v":1247392800000,"label":"06:00"}], Dygraph.dateTicker(1247371200000, 1247392800000, 600, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1254196800000,"label":"29Sep"},{"v":1254283200000,"label":"30Sep"},{"v":1254369600000,"label":"01Oct"},{"v":1254456000000,"label":"02Oct"},{"v":1254542400000,"label":"03Oct"},{"v":1254628800000,"label":"04Oct"},{"v":1254715200000,"label":"05Oct"},{"v":1254801600000,"label":"06Oct"},{"v":1254888000000,"label":"07Oct"},{"v":1254974400000,"label":"08Oct"},{"v":1255060800000,"label":"09Oct"},{"v":1255147200000,"label":"10Oct"}], Dygraph.dateTicker(1254240000000, 1255190400000, 900, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1254369600000,"label":"01Oct"},{"v":1254456000000,"label":"02Oct"},{"v":1254542400000,"label":"03Oct"},{"v":1254628800000,"label":"04Oct"},{"v":1254715200000,"label":"05Oct"},{"v":1254801600000,"label":"06Oct"},{"v":1254888000000,"label":"07Oct"},{"v":1254974400000,"label":"08Oct"}], Dygraph.dateTicker(1254412800000, 1255017600000, 900, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1259643600000,"label":"01Dec"},{"v":1259730000000,"label":"02Dec"},{"v":1259816400000,"label":"03Dec"},{"v":1259902800000,"label":"04Dec"},{"v":1259989200000,"label":"05Dec"},{"v":1260075600000,"label":"06Dec"},{"v":1260162000000,"label":"07Dec"}], Dygraph.dateTicker(1259643600000, 1260162000000, 480, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1259643600000,"label":"01Dec"},{"v":1259730000000,"label":"02Dec"},{"v":1259816400000,"label":"03Dec"},{"v":1259902800000,"label":"04Dec"},{"v":1259989200000,"label":"05Dec"},{"v":1260075600000,"label":"06Dec"},{"v":1260162000000,"label":"07Dec"}], Dygraph.dateTicker(1259643600000, 1260162000000, 600, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1260075600000,"label":"06Dec"},{"v":1260680400000,"label":"13Dec"},{"v":1261285200000,"label":"20Dec"},{"v":1261890000000,"label":"27Dec"},{"v":1262494800000,"label":"03Jan"},{"v":1263099600000,"label":"10Jan"},{"v":1263704400000,"label":"17Jan"},{"v":1264309200000,"label":"24Jan"}], Dygraph.dateTicker(1260075600000, 1264309200000, 640, this.createOptionsViewForAxis('x'))); - // assertEquals([{"v":1262322000000,"label":"Jan 10"},{"v":1265000400000,"label":"Feb 10"},{"v":1267419600000,"label":"Mar 10"},{"v":1270094400000,"label":"Apr 10"},{"v":null,"label":"undefined NaN"}], Dygraph.dateTicker(1262322000000, 1270872000000, 640, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1288929600000,"label":"05Nov"},{"v":1288951200000,"label":"06:00"},{"v":1288972800000,"label":"12:00"},{"v":1288994400000,"label":"18:00"},{"v":1289016000000,"label":"06Nov"},{"v":1289037600000,"label":"06:00"},{"v":1289059200000,"label":"12:00"},{"v":1289080800000,"label":"18:00"},{"v":1289102400000,"label":"07Nov"},{"v":1289124000000,"label":"05:00"},{"v":1289145600000,"label":"11:00"},{"v":1289167200000,"label":"17:00"},{"v":1289188800000,"label":"23:00"},{"v":1289210400000,"label":"05:00"},{"v":1289232000000,"label":"11:00"},{"v":1289253600000,"label":"17:00"},{"v":1289275200000,"label":"23:00"}], Dygraph.dateTicker(1288929600000, 1289278800000, 1024, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1291179600000,"label":"01Dec"},{"v":1291266000000,"label":"02Dec"},{"v":1291352400000,"label":"03Dec"},{"v":1291438800000,"label":"04Dec"},{"v":1291525200000,"label":"05Dec"},{"v":1291611600000,"label":"06Dec"},{"v":1291698000000,"label":"07Dec"},{"v":1291784400000,"label":"08Dec"},{"v":1291870800000,"label":"09Dec"}], Dygraph.dateTicker(1291179600000, 1291870800000, 600, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1294376400000,"label":"07Jan"},{"v":1294462800000,"label":"08Jan"},{"v":1294549200000,"label":"09Jan"},{"v":1294635600000,"label":"10Jan"},{"v":1294722000000,"label":"11Jan"},{"v":1294808400000,"label":"12Jan"},{"v":1294894800000,"label":"13Jan"},{"v":1294981200000,"label":"14Jan"}], Dygraph.dateTicker(1294376400000, 1294981200000, 480, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922405112,"label":"19:46:45"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922415112,"label":"19:46:55"},{"v":1307922420112,"label":"19:47"},{"v":1307922425112,"label":"19:47:05"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922435112,"label":"19:47:15"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922445112,"label":"19:47:25"},{"v":1307922450112,"label":"19:47:30"}], Dygraph.dateTicker(1307922400112, 1307922450165, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922405112,"label":"19:46:45"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922415112,"label":"19:46:55"},{"v":1307922420112,"label":"19:47"},{"v":1307922425112,"label":"19:47:05"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922435112,"label":"19:47:15"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922445112,"label":"19:47:25"},{"v":1307922450112,"label":"19:47:30"}], Dygraph.dateTicker(1307922400112, 1307922451166, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922405112,"label":"19:46:45"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922415112,"label":"19:46:55"},{"v":1307922420112,"label":"19:47"},{"v":1307922425112,"label":"19:47:05"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922435112,"label":"19:47:15"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922445112,"label":"19:47:25"},{"v":1307922450112,"label":"19:47:30"}], Dygraph.dateTicker(1307922400112, 1307922452167, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922405112,"label":"19:46:45"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922415112,"label":"19:46:55"},{"v":1307922420112,"label":"19:47"},{"v":1307922425112,"label":"19:47:05"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922435112,"label":"19:47:15"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922445112,"label":"19:47:25"},{"v":1307922450112,"label":"19:47:30"}], Dygraph.dateTicker(1307922400112, 1307922453167, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922405112,"label":"19:46:45"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922415112,"label":"19:46:55"},{"v":1307922420112,"label":"19:47"},{"v":1307922425112,"label":"19:47:05"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922435112,"label":"19:47:15"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922445112,"label":"19:47:25"},{"v":1307922450112,"label":"19:47:30"}], Dygraph.dateTicker(1307922400112, 1307922454168, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922405112,"label":"19:46:45"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922415112,"label":"19:46:55"},{"v":1307922420112,"label":"19:47"},{"v":1307922425112,"label":"19:47:05"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922435112,"label":"19:47:15"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922445112,"label":"19:47:25"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922455112,"label":"19:47:35"}], Dygraph.dateTicker(1307922400112, 1307922455169, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922405112,"label":"19:46:45"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922415112,"label":"19:46:55"},{"v":1307922420112,"label":"19:47"},{"v":1307922425112,"label":"19:47:05"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922435112,"label":"19:47:15"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922445112,"label":"19:47:25"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922455112,"label":"19:47:35"}], Dygraph.dateTicker(1307922400112, 1307922456169, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922405112,"label":"19:46:45"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922415112,"label":"19:46:55"},{"v":1307922420112,"label":"19:47"},{"v":1307922425112,"label":"19:47:05"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922435112,"label":"19:47:15"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922445112,"label":"19:47:25"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922455112,"label":"19:47:35"}], Dygraph.dateTicker(1307922400112, 1307922457170, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922405112,"label":"19:46:45"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922415112,"label":"19:46:55"},{"v":1307922420112,"label":"19:47"},{"v":1307922425112,"label":"19:47:05"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922435112,"label":"19:47:15"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922445112,"label":"19:47:25"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922455112,"label":"19:47:35"}], Dygraph.dateTicker(1307922400112, 1307922458171, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922405112,"label":"19:46:45"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922415112,"label":"19:46:55"},{"v":1307922420112,"label":"19:47"},{"v":1307922425112,"label":"19:47:05"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922435112,"label":"19:47:15"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922445112,"label":"19:47:25"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922455112,"label":"19:47:35"}], Dygraph.dateTicker(1307922400112, 1307922459172, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922405112,"label":"19:46:45"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922415112,"label":"19:46:55"},{"v":1307922420112,"label":"19:47"},{"v":1307922425112,"label":"19:47:05"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922435112,"label":"19:47:15"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922445112,"label":"19:47:25"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922455112,"label":"19:47:35"},{"v":1307922460112,"label":"19:47:40"}], Dygraph.dateTicker(1307922400112, 1307922460172, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922405112,"label":"19:46:45"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922415112,"label":"19:46:55"},{"v":1307922420112,"label":"19:47"},{"v":1307922425112,"label":"19:47:05"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922435112,"label":"19:47:15"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922445112,"label":"19:47:25"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922455112,"label":"19:47:35"},{"v":1307922460112,"label":"19:47:40"}], Dygraph.dateTicker(1307922400112, 1307922461174, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922405112,"label":"19:46:45"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922415112,"label":"19:46:55"},{"v":1307922420112,"label":"19:47"},{"v":1307922425112,"label":"19:47:05"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922435112,"label":"19:47:15"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922445112,"label":"19:47:25"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922455112,"label":"19:47:35"},{"v":1307922460112,"label":"19:47:40"}], Dygraph.dateTicker(1307922400112, 1307922462176, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922405112,"label":"19:46:45"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922415112,"label":"19:46:55"},{"v":1307922420112,"label":"19:47"},{"v":1307922425112,"label":"19:47:05"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922435112,"label":"19:47:15"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922445112,"label":"19:47:25"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922455112,"label":"19:47:35"},{"v":1307922460112,"label":"19:47:40"}], Dygraph.dateTicker(1307922400112, 1307922463177, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922405112,"label":"19:46:45"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922415112,"label":"19:46:55"},{"v":1307922420112,"label":"19:47"},{"v":1307922425112,"label":"19:47:05"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922435112,"label":"19:47:15"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922445112,"label":"19:47:25"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922455112,"label":"19:47:35"},{"v":1307922460112,"label":"19:47:40"}], Dygraph.dateTicker(1307922400112, 1307922464178, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922405112,"label":"19:46:45"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922415112,"label":"19:46:55"},{"v":1307922420112,"label":"19:47"},{"v":1307922425112,"label":"19:47:05"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922435112,"label":"19:47:15"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922445112,"label":"19:47:25"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922455112,"label":"19:47:35"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922465112,"label":"19:47:45"}], Dygraph.dateTicker(1307922400112, 1307922465178, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922405112,"label":"19:46:45"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922415112,"label":"19:46:55"},{"v":1307922420112,"label":"19:47"},{"v":1307922425112,"label":"19:47:05"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922435112,"label":"19:47:15"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922445112,"label":"19:47:25"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922455112,"label":"19:47:35"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922465112,"label":"19:47:45"}], Dygraph.dateTicker(1307922400112, 1307922466178, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922405112,"label":"19:46:45"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922415112,"label":"19:46:55"},{"v":1307922420112,"label":"19:47"},{"v":1307922425112,"label":"19:47:05"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922435112,"label":"19:47:15"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922445112,"label":"19:47:25"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922455112,"label":"19:47:35"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922465112,"label":"19:47:45"}], Dygraph.dateTicker(1307922400112, 1307922467179, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"}], Dygraph.dateTicker(1307922400112, 1307922468179, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"}], Dygraph.dateTicker(1307922400112, 1307922469179, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"}], Dygraph.dateTicker(1307922400112, 1307922470180, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"}], Dygraph.dateTicker(1307922400112, 1307922471180, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"}], Dygraph.dateTicker(1307922400112, 1307922472181, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"}], Dygraph.dateTicker(1307922400112, 1307922473181, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"}], Dygraph.dateTicker(1307922400112, 1307922474182, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"}], Dygraph.dateTicker(1307922400112, 1307922475182, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"}], Dygraph.dateTicker(1307922400112, 1307922476183, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"}], Dygraph.dateTicker(1307922400112, 1307922477183, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"}], Dygraph.dateTicker(1307922400112, 1307922478184, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"}], Dygraph.dateTicker(1307922400112, 1307922479185, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"}], Dygraph.dateTicker(1307922400112, 1307922480186, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"}], Dygraph.dateTicker(1307922400112, 1307922481187, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"}], Dygraph.dateTicker(1307922400112, 1307922482188, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"}], Dygraph.dateTicker(1307922400112, 1307922483188, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"}], Dygraph.dateTicker(1307922400112, 1307922484189, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"}], Dygraph.dateTicker(1307922400112, 1307922485190, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"}], Dygraph.dateTicker(1307922400112, 1307922486191, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"}], Dygraph.dateTicker(1307922400112, 1307922487192, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"}], Dygraph.dateTicker(1307922400112, 1307922488192, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"}], Dygraph.dateTicker(1307922400112, 1307922489193, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"}], Dygraph.dateTicker(1307922400112, 1307922490194, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"}], Dygraph.dateTicker(1307922400112, 1307922491194, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"}], Dygraph.dateTicker(1307922400112, 1307922492196, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"}], Dygraph.dateTicker(1307922400112, 1307922493196, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"}], Dygraph.dateTicker(1307922400112, 1307922494197, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"}], Dygraph.dateTicker(1307922400112, 1307922495197, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"}], Dygraph.dateTicker(1307922400112, 1307922496198, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"}], Dygraph.dateTicker(1307922400112, 1307922497199, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"}], Dygraph.dateTicker(1307922400112, 1307922498200, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"}], Dygraph.dateTicker(1307922400112, 1307922499200, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"}], Dygraph.dateTicker(1307922400112, 1307922500201, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"}], Dygraph.dateTicker(1307922400112, 1307922501201, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"}], Dygraph.dateTicker(1307922400112, 1307922502202, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"}], Dygraph.dateTicker(1307922400112, 1307922503203, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"}], Dygraph.dateTicker(1307922400112, 1307922504204, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"}], Dygraph.dateTicker(1307922400112, 1307922505205, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"}], Dygraph.dateTicker(1307922400112, 1307922506205, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"}], Dygraph.dateTicker(1307922400112, 1307922507206, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"}], Dygraph.dateTicker(1307922400112, 1307922508209, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"}], Dygraph.dateTicker(1307922400112, 1307922509209, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"}], Dygraph.dateTicker(1307922400112, 1307922510209, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"}], Dygraph.dateTicker(1307922400112, 1307922511210, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"}], Dygraph.dateTicker(1307922400112, 1307922512211, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"}], Dygraph.dateTicker(1307922400112, 1307922513211, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"}], Dygraph.dateTicker(1307922400112, 1307922514212, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"}], Dygraph.dateTicker(1307922400112, 1307922515213, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"}], Dygraph.dateTicker(1307922400112, 1307922516214, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"}], Dygraph.dateTicker(1307922400112, 1307922517214, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"}], Dygraph.dateTicker(1307922400112, 1307922518215, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"}], Dygraph.dateTicker(1307922400112, 1307922519215, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922520112,"label":"19:48:40"}], Dygraph.dateTicker(1307922400112, 1307922520217, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922520112,"label":"19:48:40"}], Dygraph.dateTicker(1307922400112, 1307922521218, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922520112,"label":"19:48:40"}], Dygraph.dateTicker(1307922400112, 1307922522219, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922520112,"label":"19:48:40"}], Dygraph.dateTicker(1307922400112, 1307922523219, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922520112,"label":"19:48:40"}], Dygraph.dateTicker(1307922400112, 1307922524220, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922520112,"label":"19:48:40"}], Dygraph.dateTicker(1307922400112, 1307922525221, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922520112,"label":"19:48:40"}], Dygraph.dateTicker(1307922400112, 1307922526222, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922520112,"label":"19:48:40"}], Dygraph.dateTicker(1307922400112, 1307922527222, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922520112,"label":"19:48:40"}], Dygraph.dateTicker(1307922400112, 1307922528223, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922520112,"label":"19:48:40"}], Dygraph.dateTicker(1307922400112, 1307922529223, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922520112,"label":"19:48:40"},{"v":1307922530112,"label":"19:48:50"}], Dygraph.dateTicker(1307922400112, 1307922530224, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922520112,"label":"19:48:40"},{"v":1307922530112,"label":"19:48:50"}], Dygraph.dateTicker(1307922400112, 1307922531225, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922520112,"label":"19:48:40"},{"v":1307922530112,"label":"19:48:50"}], Dygraph.dateTicker(1307922400112, 1307922532226, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922520112,"label":"19:48:40"},{"v":1307922530112,"label":"19:48:50"}], Dygraph.dateTicker(1307922400112, 1307922533227, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922400112,"label":"19:46:40"},{"v":1307922410112,"label":"19:46:50"},{"v":1307922420112,"label":"19:47"},{"v":1307922430112,"label":"19:47:10"},{"v":1307922440112,"label":"19:47:20"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922460112,"label":"19:47:40"},{"v":1307922470112,"label":"19:47:50"},{"v":1307922480112,"label":"19:48"},{"v":1307922490112,"label":"19:48:10"},{"v":1307922500112,"label":"19:48:20"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922520112,"label":"19:48:40"},{"v":1307922530112,"label":"19:48:50"}], Dygraph.dateTicker(1307922400112, 1307922534227, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"}], Dygraph.dateTicker(1307922400112, 1307922535227, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"}], Dygraph.dateTicker(1307922400112, 1307922536228, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"}], Dygraph.dateTicker(1307922400112, 1307922537230, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"}], Dygraph.dateTicker(1307922400112, 1307922538231, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"}], Dygraph.dateTicker(1307922400112, 1307922539232, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922540233, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922541233, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922542234, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922543240, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922544240, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922545240, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922546241, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922547241, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922548242, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922549243, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922550243, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922551244, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922552245, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922553245, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922554246, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922555247, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922556247, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922557248, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922558249, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922559250, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922560251, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922561252, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922562252, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922563253, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922564254, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922565254, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922566255, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922567256, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922568256, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"}], Dygraph.dateTicker(1307922400112, 1307922569257, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"},{"v":1307922570112,"label":"19:49:30"}], Dygraph.dateTicker(1307922400112, 1307922570258, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"},{"v":1307922570112,"label":"19:49:30"}], Dygraph.dateTicker(1307922400112, 1307922571258, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"},{"v":1307922570112,"label":"19:49:30"}], Dygraph.dateTicker(1307922400112, 1307922572259, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":1307922390112,"label":"19:46:30"},{"v":1307922420112,"label":"19:47"},{"v":1307922450112,"label":"19:47:30"},{"v":1307922480112,"label":"19:48"},{"v":1307922510112,"label":"19:48:30"},{"v":1307922540112,"label":"19:49"},{"v":1307922570112,"label":"19:49:30"}], Dygraph.dateTicker(1307922400112, 1307922573260, 800, this.createOptionsViewForAxis('x'))); - assertEquals([{"v":978325200000,"label":"Jan 01"},{"v":986101200000,"label":"Apr 01"},{"v":993960000000,"label":"Jul 01"},{"v":1001908800000,"label":"Oct 01"}], Dygraph.dateTicker(978325200000, 1001908800000, 400, this.createOptionsViewForAxis('x'))); -}; - -TickerTestCase.prototype.testAllNumericTickers = function() { - assertEquals([{"v":-0.5,"label":"-0.5"},{"v":0,"label":"0"},{"v":0.5,"label":"0.5"},{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"},{"v":4,"label":"4"}], Dygraph.numericTicks(-0.4, 4.4, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":-1.5,"label":"-1.5"},{"v":-1,"label":"-1"},{"v":-0.5,"label":"-0.5"},{"v":0,"label":"0"},{"v":0.5,"label":"0.5"},{"v":1,"label":"1"}], Dygraph.numericTicks(-1.4157430939856124, 1.4157430939856124, 400, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":-10,"label":"-10"},{"v":-8,"label":"-8"},{"v":-6,"label":"-6"},{"v":-4,"label":"-4"},{"v":-2,"label":"-2"},{"v":0,"label":"0"},{"v":2,"label":"2"},{"v":4,"label":"4"},{"v":6,"label":"6"},{"v":8,"label":"8"}], Dygraph.numericTicks(-10, 9.98046875, 400, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":-200,"label":"-200"},{"v":0,"label":"0"},{"v":200,"label":"200"},{"v":400,"label":"400"},{"v":600,"label":"600"},{"v":800,"label":"800"},{"v":1000,"label":"1000"}], Dygraph.numericTicks(-101.10000000000001, 1100.1, 300, this.createOptionsViewForAxis('y',{"logscale":false,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":-20,"label":"-20"},{"v":-10,"label":"-10"},{"v":0,"label":"0"},{"v":10,"label":"10"},{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"}], Dygraph.numericTicks(-11.687459005175139, 42.287459005175144, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":-15,"label":"-15"},{"v":-10,"label":"-10"},{"v":-5,"label":"-5"},{"v":0,"label":"0"},{"v":5,"label":"5"},{"v":10,"label":"10"}], Dygraph.numericTicks(-12, 12, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":-15,"label":"-15"},{"v":-10,"label":"-10"},{"v":-5,"label":"-5"},{"v":0,"label":"0"},{"v":5,"label":"5"},{"v":10,"label":"10"}], Dygraph.numericTicks(-13.19792086872138, 13.197062407353386, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":-220,"label":"-220"},{"v":-200,"label":"-200"},{"v":-180,"label":"-180"},{"v":-160,"label":"-160"},{"v":-140,"label":"-140"},{"v":-120,"label":"-120"}], Dygraph.numericTicks(-220, -100, 200, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":-40,"label":"-40"},{"v":-20,"label":"-20"},{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"},{"v":100,"label":"100"},{"v":120,"label":"120"}], Dygraph.numericTicks(-32.8, 132.8, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":-40,"label":"-40"},{"v":-30,"label":"-30"},{"v":-20,"label":"-20"},{"v":-10,"label":"-10"},{"v":0,"label":"0"},{"v":10,"label":"10"},{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"}], Dygraph.numericTicks(-34.309, 89.279, 400, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":-60,"label":"-60"},{"v":-40,"label":"-40"},{"v":-20,"label":"-20"},{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"}], Dygraph.numericTicks(-60, 60, 200, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":-60,"label":"-60"},{"v":-40,"label":"-40"},{"v":-20,"label":"-20"},{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"}], Dygraph.numericTicks(-60, 60, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":0.0001,"label":"1.00e-4"},{"v":0.0002,"label":"2.00e-4"},{"v":0.00030000000000000003,"label":"3.00e-4"},{"v":0.0004,"label":"4.00e-4"},{"v":0.0005,"label":"5.00e-4"}], Dygraph.numericTicks(0, 0.00055, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":0},{"v":0.0001,"label":0.0001},{"v":0.0002,"label":0.0002},{"v":0.00030000000000000003,"label":0.0003},{"v":0.0004,"label":0.0004},{"v":0.0005,"label":0.0005}], Dygraph.numericTicks(0, 0.00055, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":0.2,"label":"0.2"},{"v":0.4,"label":"0.4"},{"v":0.6000000000000001,"label":"0.6"},{"v":0.8,"label":"0.8"}], Dygraph.numericTicks(0, 1, 200, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":0.2,"label":"0.2"},{"v":0.4,"label":"0.4"},{"v":0.6000000000000001,"label":"0.6"},{"v":0.8,"label":"0.8"}], Dygraph.numericTicks(0, 1, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":0.1,"label":"0.1"},{"v":0.2,"label":"0.2"},{"v":0.30000000000000004,"label":"0.3"},{"v":0.4,"label":"0.4"},{"v":0.5,"label":"0.5"},{"v":0.6000000000000001,"label":"0.6"},{"v":0.7000000000000001,"label":"0.7"},{"v":0.8,"label":"0.8"},{"v":0.9,"label":"0.9"},{"v":1,"label":"1"},{"v":1.1,"label":"1.1"},{"v":1.2000000000000002,"label":"1.2"}], Dygraph.numericTicks(0, 1.2, 400, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":10,"label":"10"},{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"},{"v":90,"label":"90"}], Dygraph.numericTicks(0, 100, 400, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"},{"v":100,"label":"100"}], Dygraph.numericTicks(0, 104.53192180924043, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"},{"v":100,"label":"100"}], Dygraph.numericTicks(0, 109.9856877755916, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":2,"label":"2"},{"v":4,"label":"4"},{"v":6,"label":"6"},{"v":8,"label":"8"},{"v":10,"label":"10"}], Dygraph.numericTicks(0, 11, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"},{"v":100,"label":"100"}], Dygraph.numericTicks(0, 110, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"},{"v":100,"label":"100"}], Dygraph.numericTicks(0, 110, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":10,"label":"10"},{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"},{"v":90,"label":"90"},{"v":100,"label":"100"}], Dygraph.numericTicks(0, 110, 350, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":200,"label":"200"},{"v":400,"label":"400"},{"v":600,"label":"600"},{"v":800,"label":"800"},{"v":1000,"label":"1000"}], Dygraph.numericTicks(0, 1100, 300, this.createOptionsViewForAxis('y',{"logscale":false,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":1000000,"label":"1M"},{"v":2000000,"label":"2M"},{"v":3000000,"label":"3M"},{"v":4000000,"label":"4M"},{"v":5000000,"label":"5M"},{"v":6000000,"label":"6M"},{"v":7000000,"label":"7M"},{"v":8000000,"label":"8M"},{"v":9000000,"label":"9M"},{"v":10000000,"label":"10M"}], Dygraph.numericTicks(0, 11000000, 480, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":true}))); - assertEquals([{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"},{"v":100,"label":"100"}], Dygraph.numericTicks(0, 119, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"},{"v":100,"label":"100"},{"v":120,"label":"120"}], Dygraph.numericTicks(0, 130.9, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"},{"v":100,"label":"100"},{"v":120,"label":"120"}], Dygraph.numericTicks(0, 131, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":2000,"label":"2000"},{"v":4000,"label":"4000"},{"v":6000,"label":"6000"},{"v":8000,"label":"8000"},{"v":10000,"label":"10000"},{"v":12000,"label":"12000"},{"v":14000,"label":"14000"},{"v":16000,"label":"16000"}], Dygraph.numericTicks(0, 16977.4, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":0.5,"label":"0.5"},{"v":1,"label":"1"},{"v":1.5,"label":"1.5"}], Dygraph.numericTicks(0, 2, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":0.2,"label":"0.2"},{"v":0.4,"label":"0.4"},{"v":0.6000000000000001,"label":"0.6"},{"v":0.8,"label":"0.8"},{"v":1,"label":"1"},{"v":1.2000000000000002,"label":"1.2"},{"v":1.4000000000000001,"label":"1.4"},{"v":1.6,"label":"1.6"},{"v":1.8,"label":"1.8"}], Dygraph.numericTicks(0, 2, 400, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":0.5,"label":"0.5"},{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"}], Dygraph.numericTicks(0, 2.2, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":200000,"label":"200K"},{"v":400000,"label":"400K"},{"v":600000,"label":"600K"},{"v":800000,"label":"800K"},{"v":1000000,"label":"1M"},{"v":1200000,"label":"1.2M"},{"v":1400000,"label":"1.4M"},{"v":1600000,"label":"1.6M"},{"v":1800000,"label":"1.8M"},{"v":2000000,"label":"2M"}], Dygraph.numericTicks(0, 2200000, 350, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":true}))); - assertEquals([{"v":0,"label":"0"},{"v":50,"label":"50"},{"v":100,"label":"100"},{"v":150,"label":"150"},{"v":200,"label":"200"}], Dygraph.numericTicks(0, 249, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":500,"label":"500"},{"v":1000,"label":"1000"},{"v":1500,"label":"1500"},{"v":2000,"label":"2000"},{"v":2500,"label":"2500"}], Dygraph.numericTicks(0, 2747.9970998900817, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":200,"label":"200"},{"v":400,"label":"400"},{"v":600,"label":"600"},{"v":800,"label":"800"},{"v":1000,"label":"1K"},{"v":1200,"label":"1.2K"},{"v":1400,"label":"1.4K"},{"v":1600,"label":"1.6K"},{"v":1800,"label":"1.8K"},{"v":2000,"label":"2K"},{"v":2200,"label":"2.2K"},{"v":2400,"label":"2.4K"},{"v":2600,"label":"2.6K"}], Dygraph.numericTicks(0, 2747.9970998900817, 480, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":true}))); - assertEquals([{"v":0,"label":"0"},{"v":5,"label":"5"},{"v":10,"label":"10"},{"v":15,"label":"15"},{"v":20,"label":"20"},{"v":25,"label":"25"},{"v":30,"label":"30"}], Dygraph.numericTicks(0, 32.698942321287205, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":500000,"label":"500000"},{"v":1000000,"label":"1.00e+6"},{"v":1500000,"label":"1.50e+6"},{"v":2000000,"label":"2.00e+6"},{"v":2500000,"label":"2.50e+6"},{"v":3000000,"label":"3.00e+6"}], Dygraph.numericTicks(0, 3263100.6418021005, 480, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":5,"label":"5"},{"v":10,"label":"10"},{"v":15,"label":"15"},{"v":20,"label":"20"},{"v":25,"label":"25"},{"v":30,"label":"30"}], Dygraph.numericTicks(0, 33.16213467701236, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":0.5,"label":"0.5"},{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"}], Dygraph.numericTicks(0, 4, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":0.5,"label":"0.5"},{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"},{"v":4,"label":"4"}], Dygraph.numericTicks(0, 4.4, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":5,"label":"5"},{"v":10,"label":"10"},{"v":15,"label":"15"},{"v":20,"label":"20"},{"v":25,"label":"25"},{"v":30,"label":"30"},{"v":35,"label":"35"},{"v":40,"label":"40"}], Dygraph.numericTicks(0, 42, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":true}))); - assertEquals([{"v":0,"label":"0"},{"v":8,"label":"8"},{"v":16,"label":"16"},{"v":24,"label":"24"},{"v":32,"label":"32"},{"v":40,"label":"40"}], Dygraph.numericTicks(0, 42, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":true,"labelsKMB":false}))); - assertEquals([{"v":0,"label":0},{"v":8,"label":8},{"v":16,"label":16},{"v":24,"label":24},{"v":32,"label":32},{"v":40,"label":40}], Dygraph.numericTicks(0, 42, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":true,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":1000000000000,"label":"1T"},{"v":2000000000000,"label":"2T"},{"v":3000000000000,"label":"3T"},{"v":4000000000000,"label":"4T"}], Dygraph.numericTicks(0, 4837851162214.3, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":true}))); - assertEquals([{"v":0,"label":"0"},{"v":549755813888,"label":"512G"},{"v":1099511627776,"label":"1T"},{"v":1649267441664,"label":"1.5T"},{"v":2199023255552,"label":"2T"},{"v":2748779069440,"label":"2.5T"},{"v":3298534883328,"label":"3T"},{"v":3848290697216,"label":"3.5T"},{"v":4398046511104,"label":"4T"}], Dygraph.numericTicks(0, 4837851162214.3, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":true,"labelsKMB":false}))); - assertEquals([{"v":0,"label":0},{"v":549755813888,"label":"512G"},{"v":1099511627776,"label":"1T"},{"v":1649267441664,"label":"1.5T"},{"v":2199023255552,"label":"2T"},{"v":2748779069440,"label":"2.5T"},{"v":3298534883328,"label":"3T"},{"v":3848290697216,"label":"3.5T"},{"v":4398046511104,"label":"4T"}], Dygraph.numericTicks(0, 4837851162214.3, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":true,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":1000,"label":"1000"},{"v":2000,"label":"2000"},{"v":3000,"label":"3000"},{"v":4000,"label":"4000"},{"v":5000,"label":"5000"}], Dygraph.numericTicks(0, 5451.6, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":100,"label":"100"},{"v":200,"label":"200"},{"v":300,"label":"300"},{"v":400,"label":"400"},{"v":500,"label":"500"}], Dygraph.numericTicks(0, 550, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":10,"label":"10"},{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"}], Dygraph.numericTicks(0, 64.9, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":100,"label":"100"},{"v":200,"label":"200"},{"v":300,"label":"300"},{"v":400,"label":"400"},{"v":500,"label":"500"},{"v":600,"label":"600"}], Dygraph.numericTicks(0, 667.9, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":1,"label":"1"},{"v":2,"label":"2"},{"v":3,"label":"3"},{"v":4,"label":"4"},{"v":5,"label":"5"},{"v":6,"label":"6"},{"v":7,"label":"7"}], Dygraph.numericTicks(0, 7.7, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":1,"label":"1"},{"v":2,"label":"2"},{"v":3,"label":"3"},{"v":4,"label":"4"},{"v":5,"label":"5"},{"v":6,"label":"6"},{"v":7,"label":"7"}], Dygraph.numericTicks(0, 7.9347329768293005, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":10,"label":"10"},{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"}], Dygraph.numericTicks(0, 72.6, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"}], Dygraph.numericTicks(0, 99, 200, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"}], Dygraph.numericTicks(0, 99, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":10,"label":"10"},{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"},{"v":90,"label":"90"}], Dygraph.numericTicks(0, 99, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":200,"label":"200"},{"v":400,"label":"400"},{"v":600,"label":"600"},{"v":800,"label":"800"}], Dygraph.numericTicks(0, 999, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0.000001,"label":"1.00e-6"},{"v":0.000002,"label":""},{"v":0.000003,"label":""},{"v":0.000004,"label":""},{"v":0.0000049999999999999996,"label":""},{"v":0.000006,"label":""},{"v":0.000007,"label":""},{"v":0.000008,"label":""},{"v":0.000009,"label":""},{"v":0.00001,"label":"1.00e-5"},{"v":0.00002,"label":""},{"v":0.000030000000000000004,"label":""},{"v":0.00004,"label":""},{"v":0.00005,"label":""},{"v":0.00006000000000000001,"label":""},{"v":0.00007000000000000001,"label":""},{"v":0.00008,"label":""},{"v":0.00009,"label":""},{"v":0.0001,"label":"1.00e-4"},{"v":0.0002,"label":""},{"v":0.00030000000000000003,"label":""},{"v":0.0004,"label":""},{"v":0.0005,"label":""},{"v":0.0006000000000000001,"label":""},{"v":0.0007,"label":""},{"v":0.0008,"label":""},{"v":0.0009000000000000001,"label":""},{"v":0.001,"label":"1.00e-3"},{"v":0.002,"label":""},{"v":0.003,"label":""},{"v":0.004,"label":""},{"v":0.005,"label":""},{"v":0.006,"label":""},{"v":0.007,"label":""},{"v":0.008,"label":""},{"v":0.009000000000000001,"label":""},{"v":0.01,"label":"0.01"},{"v":0.02,"label":""},{"v":0.03,"label":""},{"v":0.04,"label":""},{"v":0.05,"label":""},{"v":0.06,"label":""},{"v":0.07,"label":""},{"v":0.08,"label":""},{"v":0.09,"label":""},{"v":0.1,"label":"0.1"},{"v":0.2,"label":""},{"v":0.30000000000000004,"label":""},{"v":0.4,"label":""},{"v":0.5,"label":""},{"v":0.6000000000000001,"label":""},{"v":0.7000000000000001,"label":""},{"v":0.8,"label":""},{"v":0.9,"label":""},{"v":1,"label":"1"},{"v":2,"label":""},{"v":3,"label":""},{"v":4,"label":""},{"v":5,"label":""},{"v":6,"label":""},{"v":7,"label":""},{"v":8,"label":""},{"v":9,"label":""},{"v":10,"label":"10"},{"v":20,"label":""},{"v":30,"label":""},{"v":40,"label":""},{"v":50,"label":""},{"v":60,"label":""},{"v":70,"label":""},{"v":80,"label":""},{"v":90,"label":""},{"v":100,"label":"100"},{"v":200,"label":""},{"v":300,"label":""},{"v":400,"label":""},{"v":500,"label":""},{"v":600,"label":""},{"v":700,"label":""},{"v":800,"label":""},{"v":900,"label":""},{"v":1000,"label":"1000"}], Dygraph.numericTicks(0.000001, 1099.9999999, 300, this.createOptionsViewForAxis('y',{"logscale":true,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":1,"label":"1"},{"v":2,"label":"2"},{"v":3,"label":"3"},{"v":4,"label":"4"},{"v":5,"label":"5"}], Dygraph.numericTicks(0.6, 5.4, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0.5,"label":"0.5"},{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"},{"v":4,"label":"4"},{"v":4.5,"label":"4.5"}], Dygraph.numericTicks(0.6373123361267239, 4.824406504982038, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0.5,"label":"0.5"},{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"},{"v":4,"label":"4"},{"v":4.5,"label":"4.5"}], Dygraph.numericTicks(0.6373123361267239, 4.824406504982038, 353, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0.6000000000000001,"label":"0.6"},{"v":0.8,"label":"0.8"},{"v":1,"label":"1"},{"v":1.2000000000000002,"label":"1.2"},{"v":1.4000000000000001,"label":"1.4"},{"v":1.6,"label":"1.6"},{"v":1.8000000000000003,"label":"1.8"},{"v":2,"label":"2"},{"v":2.2,"label":"2.2"},{"v":2.4000000000000004,"label":"2.4"},{"v":2.6,"label":"2.6"},{"v":2.8000000000000003,"label":"2.8"},{"v":3.0000000000000004,"label":"3"},{"v":3.2,"label":"3.2"},{"v":3.4000000000000004,"label":"3.4"},{"v":3.6,"label":"3.6"},{"v":3.8000000000000003,"label":"3.8"},{"v":4,"label":"4"},{"v":4.2,"label":"4.2"},{"v":4.4,"label":"4.4"},{"v":4.6,"label":"4.6"},{"v":4.800000000000001,"label":"4.8"}], Dygraph.numericTicks(0.6373123361267239, 4.824406504982038, 743, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0.5,"label":"0.5"},{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"},{"v":4,"label":"4"},{"v":4.5,"label":"4.5"}], Dygraph.numericTicks(0.6386658954698001, 4.8095173522082, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0.5,"label":"0.5"},{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"},{"v":4,"label":"4"}], Dygraph.numericTicks(0.7101014279158788, 4.023726495301334, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":20,"label":"20"},{"v":40,"label":"40"},{"v":60,"label":"60"},{"v":80,"label":"80"},{"v":100,"label":"100"}], Dygraph.numericTicks(1, 109, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"}], Dygraph.numericTicks(1, 3, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"}], Dygraph.numericTicks(1, 4, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"}], Dygraph.numericTicks(1, 4, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"},{"v":4,"label":"4"},{"v":4.5,"label":"4.5"}], Dygraph.numericTicks(1, 5, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":1,"label":1},{"v":1.5,"label":1.5},{"v":2,"label":2},{"v":2.5,"label":2.5},{"v":3,"label":3},{"v":3.5,"label":3.5},{"v":4,"label":4},{"v":4.5,"label":4.5}], Dygraph.numericTicks(1, 5, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":1,"label":"1"},{"v":2,"label":"2"},{"v":3,"label":"3"},{"v":4,"label":"4"},{"v":5,"label":"5"}], Dygraph.numericTicks(1, 6, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":1,"label":"1"},{"v":2,"label":"2"},{"v":3,"label":"3"},{"v":4,"label":"4"},{"v":5,"label":"5"},{"v":6,"label":"6"}], Dygraph.numericTicks(1, 7, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":1,"label":"1"},{"v":2,"label":"2"},{"v":3,"label":"3"},{"v":4,"label":"4"},{"v":5,"label":"5"},{"v":6,"label":"6"},{"v":7,"label":"7"},{"v":8,"label":"8"}], Dygraph.numericTicks(1, 9, 300, this.createOptionsViewForAxis('y',{"logscale":false,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":1,"label":"1"},{"v":2,"label":"2"},{"v":3,"label":"3"},{"v":4,"label":"4"},{"v":5,"label":"5"},{"v":6,"label":""},{"v":7,"label":"7"},{"v":8,"label":""},{"v":9,"label":"9"}], Dygraph.numericTicks(1, 9, 300, this.createOptionsViewForAxis('y',{"logscale":true,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":1,"label":"1"},{"v":2,"label":"2"},{"v":3,"label":"3"},{"v":4,"label":"4"},{"v":5,"label":"5"},{"v":6,"label":"6"},{"v":7,"label":"7"},{"v":8,"label":"8"}], Dygraph.numericTicks(1, 9, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":2,"label":"2"},{"v":4,"label":"4"},{"v":6,"label":"6"},{"v":8,"label":"8"},{"v":10,"label":"10"}], Dygraph.numericTicks(1.2, 10.8, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":1,"label":"1"},{"v":1.5,"label":"1.5"},{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"},{"v":4,"label":"4"},{"v":4.5,"label":"4.5"}], Dygraph.numericTicks(1.2872947778969237, 4.765317192093838, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":1,"label":"1"},{"v":2,"label":"2"},{"v":3,"label":"3"},{"v":4,"label":"4"},{"v":5,"label":"5"},{"v":6,"label":"6"},{"v":7,"label":"7"}], Dygraph.numericTicks(1.5, 7.5, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":5,"label":"5"},{"v":10,"label":"10"},{"v":15,"label":"15"},{"v":20,"label":"20"},{"v":25,"label":"25"}], Dygraph.numericTicks(1.7999999999999998, 28.2, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":10,"label":"10"},{"v":10.1,"label":"10.1"},{"v":10.2,"label":"10.2"},{"v":10.3,"label":"10.3"},{"v":10.4,"label":"10.4"},{"v":10.5,"label":"10.5"},{"v":10.6,"label":"10.6"},{"v":10.7,"label":"10.7"},{"v":10.8,"label":"10.8"},{"v":10.9,"label":"10.9"}], Dygraph.numericTicks(10, 11, 480, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":100,"label":"100"},{"v":120,"label":"120"},{"v":140,"label":"140"},{"v":160,"label":"160"},{"v":180,"label":"180"}], Dygraph.numericTicks(100, 200, 200, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":10000,"label":"10000"},{"v":12000,"label":"12000"},{"v":14000,"label":"14000"},{"v":16000,"label":"16000"},{"v":18000,"label":"18000"},{"v":20000,"label":"20000"},{"v":22000,"label":"22000"},{"v":24000,"label":"24000"},{"v":26000,"label":"26000"},{"v":28000,"label":"28000"},{"v":30000,"label":"30000"},{"v":32000,"label":"32000"},{"v":34000,"label":"34000"},{"v":36000,"label":"36000"}], Dygraph.numericTicks(10122.8, 36789.2, 480, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":11000,"label":"11000"},{"v":11200,"label":"11200"},{"v":11400,"label":"11400"},{"v":11600,"label":"11600"},{"v":11800,"label":"11800"},{"v":12000,"label":"12000"},{"v":12200,"label":"12200"},{"v":12400,"label":"12400"},{"v":12600,"label":"12600"},{"v":12800,"label":"12800"},{"v":13000,"label":"13000"},{"v":13200,"label":"13200"},{"v":13400,"label":"13400"}], Dygraph.numericTicks(11110.5, 13579.5, 480, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":162000,"label":"162000"},{"v":164000,"label":"164000"},{"v":166000,"label":"166000"},{"v":168000,"label":"168000"},{"v":170000,"label":"170000"},{"v":172000,"label":"172000"},{"v":174000,"label":"174000"},{"v":176000,"label":"176000"},{"v":178000,"label":"178000"}], Dygraph.numericTicks(163038.4, 179137.6, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":2,"label":"2"},{"v":2.5,"label":"2.5"},{"v":3,"label":"3"},{"v":3.5,"label":"3.5"}], Dygraph.numericTicks(2, 4, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":2,"label":"2"},{"v":3,"label":"3"},{"v":4,"label":"4"},{"v":5,"label":"5"},{"v":6,"label":"6"},{"v":7,"label":"7"}], Dygraph.numericTicks(2.6, 7.4, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"},{"v":90,"label":"90"}], Dygraph.numericTicks(21.7, 97.3, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"},{"v":90,"label":"90"}], Dygraph.numericTicks(21.7, 97.3, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"},{"v":90,"label":"90"}], Dygraph.numericTicks(24, 96, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"}], Dygraph.numericTicks(26.185714285714287, 90.81428571428572, 20, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"},{"v":90,"label":"90"}], Dygraph.numericTicks(26.185714285714287, 90.81428571428572, 200, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false,pixelsPerLabel:20}))); - assertEquals([{"v":25,"label":"25"},{"v":30,"label":"30"},{"v":35,"label":"35"},{"v":40,"label":"40"},{"v":45,"label":"45"},{"v":50,"label":"50"},{"v":55,"label":"55"},{"v":60,"label":"60"},{"v":65,"label":"65"},{"v":70,"label":"70"},{"v":75,"label":"75"},{"v":80,"label":"80"},{"v":85,"label":"85"},{"v":90,"label":"90"}], Dygraph.numericTicks(26.185714285714287, 90.81428571428572, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false,pixelsPerLabel:20}))); - assertEquals([{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"},{"v":90,"label":"90"}], Dygraph.numericTicks(26.185714285714287, 90.81428571428572, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":20,"label":"20"},{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"}], Dygraph.numericTicks(28.33333333333333, 88.33333333333334, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":3,"label":"3"},{"v":3.5,"label":"3.5"},{"v":4,"label":"4"},{"v":4.5,"label":"4.5"}], Dygraph.numericTicks(3, 5, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":3000,"label":"3K"},{"v":2500,"label":"2.5K"},{"v":2000,"label":"2K"},{"v":1500,"label":"1.5K"},{"v":1000,"label":"1K"},{"v":500,"label":"500"}], Dygraph.numericTicks(3000, 0, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":true}))); - assertEquals([{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"}], Dygraph.numericTicks(33.11333333333334, 83.75333333333333, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":30,"label":"30"},{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"}], Dygraph.numericTicks(36.921241050119335, 88.32696897374701, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":50,"label":""},{"v":60,"label":"60"},{"v":70,"label":""},{"v":80,"label":""},{"v":90,"label":""},{"v":100,"label":"100"},{"v":200,"label":""},{"v":300,"label":"300"},{"v":400,"label":""},{"v":500,"label":""},{"v":600,"label":"600"},{"v":700,"label":""},{"v":800,"label":""},{"v":900,"label":""},{"v":1000,"label":"1000"},{"v":2000,"label":""},{"v":3000,"label":"3000"},{"v":4000,"label":""},{"v":5000,"label":""},{"v":6000,"label":"6000"},{"v":7000,"label":""},{"v":8000,"label":""},{"v":9000,"label":""},{"v":10000,"label":"10000"}], Dygraph.numericTicks(41.220000000000084, 15576.828000000018, 400, this.createOptionsViewForAxis('y',{"logscale":true,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":40,"label":"40"},{"v":50,"label":"50"},{"v":60,"label":"60"},{"v":70,"label":"70"},{"v":80,"label":"80"},{"v":90,"label":"90"}], Dygraph.numericTicks(44.5, 98.5, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":5,"label":"5"},{"v":6,"label":""},{"v":7,"label":""},{"v":8,"label":""},{"v":9,"label":""},{"v":10,"label":"10"},{"v":20,"label":"20"},{"v":30,"label":""},{"v":40,"label":""},{"v":50,"label":"50"},{"v":60,"label":""},{"v":70,"label":""},{"v":80,"label":""},{"v":90,"label":""},{"v":100,"label":"100"},{"v":200,"label":"200"},{"v":300,"label":""},{"v":400,"label":""},{"v":500,"label":"500"},{"v":600,"label":""},{"v":700,"label":""},{"v":800,"label":""},{"v":900,"label":""},{"v":1000,"label":"1000"}], Dygraph.numericTicks(5, 1099.5, 300, this.createOptionsViewForAxis('y',{"logscale":true,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":50,"label":"50"},{"v":55,"label":"55"},{"v":60,"label":"60"},{"v":65,"label":"65"},{"v":70,"label":"70"},{"v":75,"label":"75"},{"v":80,"label":"80"}], Dygraph.numericTicks(52.5, 82.5, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":68,"label":"68"},{"v":70,"label":"70"},{"v":72,"label":"72"},{"v":74,"label":"74"},{"v":76,"label":"76"},{"v":78,"label":"78"},{"v":80,"label":"80"}], Dygraph.numericTicks(69, 81, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":0,"label":"0"},{"v":20000,"label":"20K"},{"v":40000,"label":"40K"},{"v":60000,"label":"60K"},{"v":80000,"label":"80K"}], Dygraph.numericTicks(7921.099999999999, 81407.9, 240, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":true}))); - assertEquals([{"v":8,"label":"8"},{"v":10,"label":"10"},{"v":12,"label":"12"},{"v":14,"label":"14"},{"v":16,"label":"16"},{"v":18,"label":"18"},{"v":20,"label":"20"}], Dygraph.numericTicks(9, 21, 300, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":8,"label":"8"},{"v":10,"label":"10"},{"v":12,"label":"12"},{"v":14,"label":"14"},{"v":16,"label":"16"},{"v":18,"label":"18"},{"v":20,"label":"20"}], Dygraph.numericTicks(9, 21, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":9,"label":"9"},{"v":10,"label":"10"},{"v":11,"label":"11"},{"v":12,"label":"12"},{"v":13,"label":"13"},{"v":14,"label":"14"},{"v":15,"label":"15"},{"v":16,"label":"16"},{"v":17,"label":"17"},{"v":18,"label":"18"}], Dygraph.numericTicks(9.2, 18.8, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":80,"label":"80"},{"v":100,"label":"100"},{"v":120,"label":"120"},{"v":140,"label":"140"},{"v":160,"label":"160"},{"v":180,"label":"180"},{"v":200,"label":"200"}], Dygraph.numericTicks(90, 210, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":true}))); - assertEquals([{"v":95,"label":"95"},{"v":96,"label":"96"},{"v":97,"label":"97"},{"v":98,"label":"98"},{"v":99,"label":"99"},{"v":100,"label":"100"},{"v":101,"label":"101"},{"v":102,"label":"102"},{"v":103,"label":"103"},{"v":104,"label":"104"}], Dygraph.numericTicks(95.71121718377088, 104.23150357995226, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); - assertEquals([{"v":950,"label":"950"},{"v":1000,"label":"1000"},{"v":1050,"label":"1050"},{"v":1100,"label":"1100"},{"v":1150,"label":"1150"},{"v":1200,"label":"1200"}], Dygraph.numericTicks(980.1, 1218.9, 200, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false}))); -}; diff --git a/dygraph-options-reference.js b/dygraph-options-reference.js index 3030bc7..0a1c390 100644 --- a/dygraph-options-reference.js +++ b/dygraph-options-reference.js @@ -486,6 +486,12 @@ Dygraph.OPTIONS_REFERENCE = // "type": "boolean", "description": "When set, display the graph as a step plot instead of a line plot. This option may either be set for the whole graph or for single series." }, + "labelsDateUTC": { + "default": "false", + "labels": ["Value display/formatting"], + "type": "boolean", + "description": "Show date/time labels according to UTC (instead of local time)." + }, "labelsKMB": { "default": "false", "labels": ["Value display/formatting"], diff --git a/dygraph-tickers.js b/dygraph-tickers.js index a3fe90a..1e0c61d 100644 --- a/dygraph-tickers.js +++ b/dygraph-tickers.js @@ -241,56 +241,42 @@ Dygraph.DECADAL = 19; Dygraph.CENTENNIAL = 20; Dygraph.NUM_GRANULARITIES = 21; -/** @type {Array.} */ -Dygraph.SHORT_SPACINGS = []; -Dygraph.SHORT_SPACINGS[Dygraph.SECONDLY] = 1000 * 1; -Dygraph.SHORT_SPACINGS[Dygraph.TWO_SECONDLY] = 1000 * 2; -Dygraph.SHORT_SPACINGS[Dygraph.FIVE_SECONDLY] = 1000 * 5; -Dygraph.SHORT_SPACINGS[Dygraph.TEN_SECONDLY] = 1000 * 10; -Dygraph.SHORT_SPACINGS[Dygraph.THIRTY_SECONDLY] = 1000 * 30; -Dygraph.SHORT_SPACINGS[Dygraph.MINUTELY] = 1000 * 60; -Dygraph.SHORT_SPACINGS[Dygraph.TWO_MINUTELY] = 1000 * 60 * 2; -Dygraph.SHORT_SPACINGS[Dygraph.FIVE_MINUTELY] = 1000 * 60 * 5; -Dygraph.SHORT_SPACINGS[Dygraph.TEN_MINUTELY] = 1000 * 60 * 10; -Dygraph.SHORT_SPACINGS[Dygraph.THIRTY_MINUTELY] = 1000 * 60 * 30; -Dygraph.SHORT_SPACINGS[Dygraph.HOURLY] = 1000 * 3600; -Dygraph.SHORT_SPACINGS[Dygraph.TWO_HOURLY] = 1000 * 3600 * 2; -Dygraph.SHORT_SPACINGS[Dygraph.SIX_HOURLY] = 1000 * 3600 * 6; -Dygraph.SHORT_SPACINGS[Dygraph.DAILY] = 1000 * 86400; -Dygraph.SHORT_SPACINGS[Dygraph.WEEKLY] = 1000 * 604800; +// Date components enumeration (in the order of the arguments in Date) +// TODO: make this an @enum +Dygraph.DATEFIELD_Y = 0; +Dygraph.DATEFIELD_M = 1; +Dygraph.DATEFIELD_D = 2; +Dygraph.DATEFIELD_HH = 3; +Dygraph.DATEFIELD_MM = 4; +Dygraph.DATEFIELD_SS = 5; +Dygraph.DATEFIELD_MS = 6; +Dygraph.NUM_DATEFIELDS = 7; + + +/** @type {Array.<{datefield:number, step:number, spacing:number}>} */ +Dygraph.TICK_PLACEMENT = []; +Dygraph.TICK_PLACEMENT[Dygraph.SECONDLY] = {datefield: Dygraph.DATEFIELD_SS, step: 1, spacing: 1000 * 1}; +Dygraph.TICK_PLACEMENT[Dygraph.TWO_SECONDLY] = {datefield: Dygraph.DATEFIELD_SS, step: 2, spacing: 1000 * 2}; +Dygraph.TICK_PLACEMENT[Dygraph.FIVE_SECONDLY] = {datefield: Dygraph.DATEFIELD_SS, step: 5, spacing: 1000 * 5}; +Dygraph.TICK_PLACEMENT[Dygraph.TEN_SECONDLY] = {datefield: Dygraph.DATEFIELD_SS, step: 10, spacing: 1000 * 10}; +Dygraph.TICK_PLACEMENT[Dygraph.THIRTY_SECONDLY] = {datefield: Dygraph.DATEFIELD_SS, step: 30, spacing: 1000 * 30}; +Dygraph.TICK_PLACEMENT[Dygraph.MINUTELY] = {datefield: Dygraph.DATEFIELD_MM, step: 1, spacing: 1000 * 60}; +Dygraph.TICK_PLACEMENT[Dygraph.TWO_MINUTELY] = {datefield: Dygraph.DATEFIELD_MM, step: 2, spacing: 1000 * 60 * 2}; +Dygraph.TICK_PLACEMENT[Dygraph.FIVE_MINUTELY] = {datefield: Dygraph.DATEFIELD_MM, step: 5, spacing: 1000 * 60 * 5}; +Dygraph.TICK_PLACEMENT[Dygraph.TEN_MINUTELY] = {datefield: Dygraph.DATEFIELD_MM, step: 10, spacing: 1000 * 60 * 10}; +Dygraph.TICK_PLACEMENT[Dygraph.THIRTY_MINUTELY] = {datefield: Dygraph.DATEFIELD_MM, step: 30, spacing: 1000 * 60 * 30}; +Dygraph.TICK_PLACEMENT[Dygraph.HOURLY] = {datefield: Dygraph.DATEFIELD_HH, step: 1, spacing: 1000 * 3600}; +Dygraph.TICK_PLACEMENT[Dygraph.TWO_HOURLY] = {datefield: Dygraph.DATEFIELD_HH, step: 2, spacing: 1000 * 3600 * 2}; +Dygraph.TICK_PLACEMENT[Dygraph.SIX_HOURLY] = {datefield: Dygraph.DATEFIELD_HH, step: 6, spacing: 1000 * 3600 * 6}; +Dygraph.TICK_PLACEMENT[Dygraph.DAILY] = {datefield: Dygraph.DATEFIELD_D, step: 1, spacing: 1000 * 86400}; +Dygraph.TICK_PLACEMENT[Dygraph.WEEKLY] = {datefield: Dygraph.DATEFIELD_D, step: 7, spacing: 1000 * 604800}; +Dygraph.TICK_PLACEMENT[Dygraph.MONTHLY] = {datefield: Dygraph.DATEFIELD_M, step: 1, spacing: 1000 * 7200 * 365.2524}; // 1e3 * 60 * 60 * 24 * 365.2524 / 12 +Dygraph.TICK_PLACEMENT[Dygraph.QUARTERLY] = {datefield: Dygraph.DATEFIELD_M, step: 3, spacing: 1000 * 21600 * 365.2524}; // 1e3 * 60 * 60 * 24 * 365.2524 / 4 +Dygraph.TICK_PLACEMENT[Dygraph.BIANNUAL] = {datefield: Dygraph.DATEFIELD_M, step: 6, spacing: 1000 * 43200 * 365.2524}; // 1e3 * 60 * 60 * 24 * 365.2524 / 2 +Dygraph.TICK_PLACEMENT[Dygraph.ANNUAL] = {datefield: Dygraph.DATEFIELD_Y, step: 1, spacing: 1000 * 86400 * 365.2524}; // 1e3 * 60 * 60 * 24 * 365.2524 * 1 +Dygraph.TICK_PLACEMENT[Dygraph.DECADAL] = {datefield: Dygraph.DATEFIELD_Y, step: 10, spacing: 1000 * 864000 * 365.2524}; // 1e3 * 60 * 60 * 24 * 365.2524 * 10 +Dygraph.TICK_PLACEMENT[Dygraph.CENTENNIAL] = {datefield: Dygraph.DATEFIELD_Y, step: 100, spacing: 1000 * 8640000 * 365.2524}; // 1e3 * 60 * 60 * 24 * 365.2524 * 100 -/** - * A collection of objects specifying where it is acceptable to place tick - * marks for granularities larger than WEEKLY. - * 'months' is an array of month indexes on which to place tick marks. - * 'year_mod' ticks are placed when year % year_mod = 0. - * @type {Array.} - */ -Dygraph.LONG_TICK_PLACEMENTS = []; -Dygraph.LONG_TICK_PLACEMENTS[Dygraph.MONTHLY] = { - months : [0,1,2,3,4,5,6,7,8,9,10,11], - year_mod : 1 -}; -Dygraph.LONG_TICK_PLACEMENTS[Dygraph.QUARTERLY] = { - months: [0,3,6,9], - year_mod: 1 -}; -Dygraph.LONG_TICK_PLACEMENTS[Dygraph.BIANNUAL] = { - months: [0,6], - year_mod: 1 -}; -Dygraph.LONG_TICK_PLACEMENTS[Dygraph.ANNUAL] = { - months: [0], - year_mod: 1 -}; -Dygraph.LONG_TICK_PLACEMENTS[Dygraph.DECADAL] = { - months: [0], - year_mod: 10 -}; -Dygraph.LONG_TICK_PLACEMENTS[Dygraph.CENTENNIAL] = { - months: [0], - year_mod: 100 -}; /** * This is a list of human-friendly values at which to show tick marks on a log @@ -317,8 +303,7 @@ Dygraph.PREFERRED_LOG_TICK_VALUES = function() { * @param {number} a Left edge of the chart (ms) * @param {number} b Right edge of the chart (ms) * @param {number} pixels Size of the chart in the relevant dimension (width). - * @param {function(string):*} opts Function mapping from option name -> - * value. + * @param {function(string):*} opts Function mapping from option name -> value. * @return {number} The appropriate axis granularity for this chart. See the * enumeration of possible values in dygraph-tickers.js. */ @@ -334,26 +319,19 @@ Dygraph.pickDateTickGranularity = function(a, b, pixels, opts) { }; /** + * Compute the number of ticks on a date axis for a given granularity. * @param {number} start_time * @param {number} end_time * @param {number} granularity (one of the granularities enumerated above) - * @return {number} Number of ticks that would result. + * @return {number} (Approximate) number of ticks that would result. */ Dygraph.numDateTicks = function(start_time, end_time, granularity) { - if (granularity < Dygraph.MONTHLY) { - // Generate one tick mark for every fixed interval of time. - var spacing = Dygraph.SHORT_SPACINGS[granularity]; - return Math.floor(0.5 + 1.0 * (end_time - start_time) / spacing); - } else { - var tickPlacement = Dygraph.LONG_TICK_PLACEMENTS[granularity]; - - var msInYear = 365.2524 * 24 * 3600 * 1000; - var num_years = 1.0 * (end_time - start_time) / msInYear; - return Math.floor(0.5 + 1.0 * num_years * tickPlacement.months.length / tickPlacement.year_mod); - } + var spacing = Dygraph.TICK_PLACEMENT[granularity].spacing; + return Math.round(1.0 * (end_time - start_time) / spacing); }; /** + * Compute the positions and labels of ticks on a date axis for a given granularity. * @param {number} start_time * @param {number} end_time * @param {number} granularity (one of the granularities enumerated above) @@ -364,112 +342,112 @@ Dygraph.numDateTicks = function(start_time, end_time, granularity) { Dygraph.getDateAxis = function(start_time, end_time, granularity, opts, dg) { var formatter = /** @type{AxisLabelFormatter} */( opts("axisLabelFormatter")); - var ticks = []; - var t; - - if (granularity < Dygraph.MONTHLY) { - // Generate one tick mark for every fixed interval of time. - var spacing = Dygraph.SHORT_SPACINGS[granularity]; - - // Find a time less than start_time which occurs on a "nice" time boundary - // for this granularity. - var g = spacing / 1000; - var d = new Date(start_time); - Dygraph.setDateSameTZ(d, {ms: 0}); - - var x; - if (g <= 60) { // seconds - x = d.getSeconds(); - Dygraph.setDateSameTZ(d, {s: x - x % g}); - } else { - Dygraph.setDateSameTZ(d, {s: 0}); - g /= 60; - if (g <= 60) { // minutes - x = d.getMinutes(); - Dygraph.setDateSameTZ(d, {m: x - x % g}); - } else { - Dygraph.setDateSameTZ(d, {m: 0}); - g /= 60; - - if (g <= 24) { // days - x = d.getHours(); - d.setHours(x - x % g); - } else { - d.setHours(0); - g /= 24; - - if (g == 7) { // one week - d.setDate(d.getDate() - d.getDay()); - } - } - } - } - start_time = d.getTime(); - - // For spacings coarser than two-hourly, we want to ignore daylight - // savings transitions to get consistent ticks. For finer-grained ticks, - // it's essential to show the DST transition in all its messiness. - var start_offset_min = new Date(start_time).getTimezoneOffset(); - var check_dst = (spacing >= Dygraph.SHORT_SPACINGS[Dygraph.TWO_HOURLY]); - - for (t = start_time; t <= end_time; t += spacing) { - d = new Date(t); - - // This ensures that we stay on the same hourly "rhythm" across - // daylight savings transitions. Without this, the ticks could get off - // by an hour. See tests/daylight-savings.html or issue 147. - if (check_dst && d.getTimezoneOffset() != start_offset_min) { - var delta_min = d.getTimezoneOffset() - start_offset_min; - t += delta_min * 60 * 1000; - d = new Date(t); - start_offset_min = d.getTimezoneOffset(); - - // Check whether we've backed into the previous timezone again. - // This can happen during a "spring forward" transition. In this case, - // it's best to skip this tick altogether (we may be shooting for a - // non-existent time like the 2AM that's skipped) and go to the next - // one. - if (new Date(t + spacing).getTimezoneOffset() != start_offset_min) { - t += spacing; - d = new Date(t); - start_offset_min = d.getTimezoneOffset(); - } - } - - ticks.push({ v:t, - label: formatter(d, granularity, opts, dg) - }); - } + var utc = opts("labelsDateUTC"); + + var step = Dygraph.TICK_PLACEMENT[granularity].step; + var datefield = Dygraph.TICK_PLACEMENT[granularity].datefield; + + // Choose appropiate date methods according to UTC or local time option. + // weekday: return the day of week from a Date object. + // decompose_date: decompose a Date object into an array of datefields. + // compose_date: compose a Date object from an array of date fields. + var compose_date, decompose_date, weekday; + if (utc) { + weekday = function (d) { + return d.getUTCDay(); + }; + decompose_date = function (d) { + var a = []; + a[Dygraph.DATEFIELD_Y] = d.getUTCFullYear(); + a[Dygraph.DATEFIELD_M] = d.getUTCMonth(); + a[Dygraph.DATEFIELD_D] = d.getUTCDate(); + a[Dygraph.DATEFIELD_HH] = d.getUTCHours(); + a[Dygraph.DATEFIELD_MM] = d.getUTCMinutes(); + a[Dygraph.DATEFIELD_SS] = d.getUTCSeconds(); + a[Dygraph.DATEFIELD_MS] = d.getUTCMilliseconds(); + return a; + }; + compose_date = function (a) { + var d = new Date(Date.UTC(a[Dygraph.DATEFIELD_Y], + a[Dygraph.DATEFIELD_M], + a[Dygraph.DATEFIELD_D], + a[Dygraph.DATEFIELD_HH], + a[Dygraph.DATEFIELD_MM], + a[Dygraph.DATEFIELD_SS], + a[Dygraph.DATEFIELD_MS])); + return d; + }; } else { - // Display a tick mark on the first of a set of months of each year. - // Years get a tick mark iff y % year_mod == 0. This is useful for - // displaying a tick mark once every 10 years, say, on long time scales. - var months; - var year_mod = 1; // e.g. to only print one point every 10 years. - - if (granularity < Dygraph.NUM_GRANULARITIES) { - months = Dygraph.LONG_TICK_PLACEMENTS[granularity].months; - year_mod = Dygraph.LONG_TICK_PLACEMENTS[granularity].year_mod; - } else { - Dygraph.warn("Span of dates is too long"); - } + weekday = function(d) { + return d.getDay(); + }; + decompose_date = function (d) { + var a = []; + a[Dygraph.DATEFIELD_Y] = d.getFullYear(); + a[Dygraph.DATEFIELD_M] = d.getMonth(); + a[Dygraph.DATEFIELD_D] = d.getDate(); + a[Dygraph.DATEFIELD_HH] = d.getHours(); + a[Dygraph.DATEFIELD_MM] = d.getMinutes(); + a[Dygraph.DATEFIELD_SS] = d.getSeconds(); + a[Dygraph.DATEFIELD_MS] = d.getMilliseconds(); + return a; + }; + compose_date = function (a) { + var d = new Date(a[Dygraph.DATEFIELD_Y], + a[Dygraph.DATEFIELD_M], + a[Dygraph.DATEFIELD_D], + a[Dygraph.DATEFIELD_HH], + a[Dygraph.DATEFIELD_MM], + a[Dygraph.DATEFIELD_SS], + a[Dygraph.DATEFIELD_MS]); + return d; + }; + } + + // Choose a nice tick position before the initial instant. + // Currently, this code deals properly with the existent daily granularities: + // DAILY (with step of 1) and WEEKLY (with step of 7 but specially handled). + // Other daily granularities (say TWO_DAILY) should also be handled specially + // by setting the start_date_offset to 0. + var start_date = new Date(start_time); + var date_array = decompose_date(start_date); + var start_date_offset = date_array[datefield] % step; + if (granularity == Dygraph.WEEKLY) { + // This will put the ticks on Sundays. + start_date_offset = weekday(start_date); + } + date_array[datefield] -= start_date_offset; + for (var df = datefield + 1; df < Dygraph.NUM_DATEFIELDS; df++) { + // The minimum value is 1 for the day of month, and 0 for all other fields. + date_array[df] = (df === Dygraph.DATEFIELD_D) ? 1 : 0; + } - var start_year = new Date(start_time).getFullYear(); - var end_year = new Date(end_time).getFullYear(); - for (var i = start_year; i <= end_year; i++) { - if (i % year_mod !== 0) continue; - for (var j = 0; j < months.length; j++) { - var dt = new Date(i, months[j], 1); - dt.setFullYear(i); - t = dt.getTime(); - if (t < start_time || t > end_time) continue; - ticks.push({ v:t, - label: formatter(new Date(t), granularity, opts, dg) - }); - } + // Generate the ticks. + // This relies on the roll over property of the Date functions: + // when some date field is set to a value outside of its logical range, + // the excess 'rolls over' the next (more significant) field. + // When using local time with DST transitions, different dates may represent + // the same time instant, so do not repeat the tick. At each step, + // we have to check that the date is effectively increased because native + // JS date functions do not assert that on DST transitions. + // Since start_date is no later than start_time (but possibly equal), + // assuming a previous tick just before start_time also removes an spurious + // tick outside the given time range. + var ticks = []; + var next_tick_date = compose_date(date_array); + var next_tick_time = next_tick_date.getTime(); + var prev_tick_time = start_time - 1; + while (next_tick_time <= end_time) { + if (next_tick_time > prev_tick_time) { + ticks.push({ v: next_tick_time, + label: formatter(next_tick_date, granularity, opts, dg) + }); + prev_tick_time = next_tick_time; } + date_array[datefield] += step; + next_tick_date = compose_date(date_array); + next_tick_time = next_tick_date.getTime(); } - return ticks; }; diff --git a/dygraph-utils.js b/dygraph-utils.js index 63fc1e0..14aac18 100644 --- a/dygraph-utils.js +++ b/dygraph-utils.js @@ -477,45 +477,60 @@ Dygraph.zeropad = function(x) { /** * Return a string version of the hours, minutes and seconds portion of a date. - * - * @param {number} date The JavaScript date (ms since epoch) - * @return {string} A time of the form "HH:MM:SS" + * @param {number} hh The hours (from 0-23) + * @param {number} mm The minutes (from 0-59) + * @param {number} ss The seconds (from 0-59) + * @return {string} A time of the form "HH:MM" or "HH:MM:SS" * @private */ -Dygraph.hmsString_ = function(date) { +Dygraph.hmsString_ = function(hh, mm, ss) { var zeropad = Dygraph.zeropad; - var d = new Date(date); - if (d.getSeconds()) { - return zeropad(d.getHours()) + ":" + - zeropad(d.getMinutes()) + ":" + - zeropad(d.getSeconds()); - } else { - return zeropad(d.getHours()) + ":" + zeropad(d.getMinutes()); + var ret = zeropad(hh) + ":" + zeropad(mm); + if (ss) { + ret += ":" + zeropad(ss); } + return ret; }; /** - * Convert a JS date (millis since epoch) to YYYY/MM/DD + * Convert a JS date (millis since epoch) to a formatted string. * @param {number} date The JavaScript date (ms since epoch) - * @return {string} A date of the form "YYYY/MM/DD" + * @param {boolean} utc Wether output UTC or local time + * @return {string} A date of one of these forms: + * "YYYY/MM/DD", "YYYY/MM/DD HH:MM" or "YYYY/MM/DD HH:MM:SS" * @private */ -Dygraph.dateString_ = function(date) { +Dygraph.dateString_ = function(date, utc) { var zeropad = Dygraph.zeropad; - var d = new Date(date); - - // Get the year: - var year = "" + d.getFullYear(); + var dt = new Date(date); + var y, m, d, hh, mm, ss; + if (utc) { + y = dt.getUTCFullYear(); + m = dt.getUTCMonth(); + d = dt.getUTCDate(); + hh = dt.getUTCHours(); + mm = dt.getUTCMinutes(); + ss = dt.getUTCSeconds(); + } else { + y = dt.getFullYear(); + m = dt.getMonth(); + d = dt.getDate(); + hh = dt.getHours(); + mm = dt.getMinutes(); + ss = dt.getSeconds(); + } + // Get a year string: + var year = "" + y; // Get a 0 padded month string - var month = zeropad(d.getMonth() + 1); //months are 0-offset, sigh + var month = zeropad(m + 1); //months are 0-offset, sigh // Get a 0 padded day string - var day = zeropad(d.getDate()); - - var ret = ""; - var frac = d.getHours() * 3600 + d.getMinutes() * 60 + d.getSeconds(); - if (frac) ret = " " + Dygraph.hmsString_(date); - - return year + "/" + month + "/" + day + ret; + var day = zeropad(d); + var frac = hh * 3600 + mm * 60 + ss; + var ret = year + "/" + month + "/" + day; + if (frac) { + ret += " " + Dygraph.hmsString_(hh,mm,ss); + } + return ret; }; /** @@ -1183,37 +1198,6 @@ Dygraph.pow = function(base, exp) { return Math.pow(base, exp); }; -// For Dygraph.setDateSameTZ, below. -Dygraph.dateSetters = { - ms: Date.prototype.setMilliseconds, - s: Date.prototype.setSeconds, - m: Date.prototype.setMinutes, - h: Date.prototype.setHours -}; - -/** - * This is like calling d.setSeconds(), d.setMinutes(), etc, except that it - * adjusts for time zone changes to keep the date/time parts consistent. - * - * For example, d.getSeconds(), d.getMinutes() and d.getHours() will all be - * the same before/after you call setDateSameTZ(d, {ms: 0}). The same is not - * true if you call d.setMilliseconds(0). - * - * @type {function(!Date, Object.)} - */ -Dygraph.setDateSameTZ = function(d, parts) { - var tz = d.getTimezoneOffset(); - for (var k in parts) { - if (!parts.hasOwnProperty(k)) continue; - var setter = Dygraph.dateSetters[k]; - if (!setter) throw "Invalid setter: " + k; - setter.call(d, parts[k]); - if (d.getTimezoneOffset() != tz) { - d.setTime(d.getTime() + (tz - d.getTimezoneOffset()) * 60 * 1000); - } - } -}; - /** * Converts any valid CSS color (hex, rgb(), named color) to an RGB tuple. * diff --git a/dygraph.js b/dygraph.js index b3243bd..06d899a 100644 --- a/dygraph.js +++ b/dygraph.js @@ -202,30 +202,62 @@ Dygraph.SHORT_MONTH_NAMES_ = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', ' /** * Convert a JS date to a string appropriate to display on an axis that - * is displaying values at the stated granularity. + * is displaying values at the stated granularity. This respects the + * labelsDateUTC option. * @param {Date} date The date to format * @param {number} granularity One of the Dygraph granularity constants - * @return {string} The formatted date + * @param {Dygraph} opts An options view + * @return {string} The date formatted as local time * @private */ -Dygraph.dateAxisFormatter = function(date, granularity) { +Dygraph.dateAxisLabelFormatter = function(date, granularity, opts) { + var utc = opts('labelsDateUTC'); + var year, month, day, hours, mins, secs, millis; + if (utc) { + year = date.getUTCFullYear(); + month = date.getUTCMonth(); + day = date.getUTCDate(); + hours = date.getUTCHours(); + mins = date.getUTCMinutes(); + secs = date.getUTCSeconds(); + millis = date.getUTCMilliseconds(); + } else { + year = date.getFullYear(); + month = date.getMonth(); + day = date.getDate(); + hours = date.getHours(); + mins = date.getMinutes(); + secs = date.getSeconds(); + millis = date.getMilliseconds(); + } if (granularity >= Dygraph.DECADAL) { - return '' + date.getFullYear(); + return '' + year; } else if (granularity >= Dygraph.MONTHLY) { - return Dygraph.SHORT_MONTH_NAMES_[date.getMonth()] + ' ' + date.getFullYear(); + return Dygraph.SHORT_MONTH_NAMES_[month] + ' ' + Dygraph.zeropad(year % 100); } else { - var frac = date.getHours() * 3600 + date.getMinutes() * 60 + date.getSeconds() + date.getMilliseconds(); + // 1e-3 factor on millis missing in original implementation + var frac = hours * 3600 + mins * 60 + secs + 1e-3 * millis; if (frac === 0 || granularity >= Dygraph.DAILY) { // e.g. '21Jan' (%d%b) - var nd = new Date(date.getTime() + 3600*1000); - return Dygraph.zeropad(nd.getDate()) + Dygraph.SHORT_MONTH_NAMES_[nd.getMonth()]; + return Dygraph.zeropad(day) + Dygraph.SHORT_MONTH_NAMES_[month]; } else { - return Dygraph.hmsString_(date.getTime()); + return Dygraph.hmsString_(hours, mins, secs); } } }; /** + * @private + * Return a string version of a JS date for a value label. This respects the + * labelsDateUTC option. + * @param {Date} date The date to be formatted + * @param {Dygraph} opts An options view + */ +Dygraph.dateValueFormatter = function(d, opts) { + return Dygraph.dateString_(d, opts('labelsDateUTC')); +}; + +/** * Standard plotters. These may be used by clients. * Available plotters are: * - Dygraph.Plotters.linePlotter: draws central lines (most common) @@ -335,8 +367,8 @@ Dygraph.DEFAULT_ATTRS = { axes: { x: { pixelsPerLabel: 60, - axisLabelFormatter: Dygraph.dateAxisFormatter, - valueFormatter: Dygraph.dateString_, + axisLabelFormatter: Dygraph.dateAxisLabelFormatter, + valueFormatter: Dygraph.dateValueFormatter, drawGrid: true, drawAxis: true, independentTicks: true, @@ -2987,9 +3019,9 @@ Dygraph.prototype.detectTypeFromString_ = function(str) { Dygraph.prototype.setXAxisOptions_ = function(isDate) { if (isDate) { this.attrs_.xValueParser = Dygraph.dateParser; - this.attrs_.axes.x.valueFormatter = Dygraph.dateString_; + this.attrs_.axes.x.valueFormatter = Dygraph.dateValueFormatter; this.attrs_.axes.x.ticker = Dygraph.dateTicker; - this.attrs_.axes.x.axisLabelFormatter = Dygraph.dateAxisFormatter; + this.attrs_.axes.x.axisLabelFormatter = Dygraph.dateAxisLabelFormatter; } else { /** @private (shut up, jsdoc!) */ this.attrs_.xValueParser = function(x) { return parseFloat(x); }; @@ -3187,9 +3219,9 @@ Dygraph.prototype.parseArray_ = function(data) { if (Dygraph.isDateLike(data[0][0])) { // Some intelligent defaults for a date x-axis. - this.attrs_.axes.x.valueFormatter = Dygraph.dateString_; + this.attrs_.axes.x.valueFormatter = Dygraph.dateValueFormatter; this.attrs_.axes.x.ticker = Dygraph.dateTicker; - this.attrs_.axes.x.axisLabelFormatter = Dygraph.dateAxisFormatter; + this.attrs_.axes.x.axisLabelFormatter = Dygraph.dateAxisLabelFormatter; // Assume they're all dates. var parsedData = Dygraph.clone(data); @@ -3246,9 +3278,9 @@ Dygraph.prototype.parseDataTable_ = function(data) { var indepType = data.getColumnType(0); if (indepType == 'date' || indepType == 'datetime') { this.attrs_.xValueParser = Dygraph.dateParser; - this.attrs_.axes.x.valueFormatter = Dygraph.dateString_; + this.attrs_.axes.x.valueFormatter = Dygraph.dateValueFormatter; this.attrs_.axes.x.ticker = Dygraph.dateTicker; - this.attrs_.axes.x.axisLabelFormatter = Dygraph.dateAxisFormatter; + this.attrs_.axes.x.axisLabelFormatter = Dygraph.dateAxisLabelFormatter; } else if (indepType == 'number') { this.attrs_.xValueParser = function(x) { return parseFloat(x); }; this.attrs_.axes.x.valueFormatter = function(x) { return x; }; diff --git a/tests/labelsDateUTC.html b/tests/labelsDateUTC.html new file mode 100644 index 0000000..a4abfc3 --- /dev/null +++ b/tests/labelsDateUTC.html @@ -0,0 +1,64 @@ + + + + + UTC date labels + + + + + + +

UTC date and time labels

+ +

This shows how date ticks and labels may be generated according to local + time (default) or UTC with the option labelsDateUTC.

+ +

72 hours of random hourly data since 2009-Jul-23 18:00 UTC + according to local time (top) and UTC (bottom):

+ +
+
+ +

Please note the offset between the respective ticks in both plots. + It should match your local time zone offset.

+ +

You can also check it by hovering over corresponding points and comparing + the value labels.

+ +

Try different zoom levels to show that ticks are always placed at nice + time boundaries.

+ + + + + diff --git a/tests/x-axis-formatter.html b/tests/x-axis-formatter.html index d216c97..9983391 100644 --- a/tests/x-axis-formatter.html +++ b/tests/x-axis-formatter.html @@ -47,8 +47,8 @@ { axes: { x: { - axisLabelFormatter: function(d, gran) { - return Dygraph.dateAxisFormatter(new Date(d.getTime() + 7200*1000), gran); + axisLabelFormatter: function(d, gran, opts) { + return Dygraph.dateAxisLabelFormatter(new Date(d.getTime() + 7200*1000), gran, opts); } } }