start getting tickers.js to pass
authorDan Vanderkam <danvk@google.com>
Mon, 8 Aug 2011 17:05:43 +0000 (13:05 -0400)
committerDan Vanderkam <danvk@google.com>
Mon, 8 Aug 2011 17:05:43 +0000 (13:05 -0400)
auto_tests/tests/tickers.js [new file with mode: 0644]
auto_tests/tests/utils_test.js
dygraph-utils.js
dygraph.js
tests/number-display.html
tests/two-axes.html

diff --git a/auto_tests/tests/tickers.js b/auto_tests/tests/tickers.js
new file mode 100644 (file)
index 0000000..d599b52
--- /dev/null
@@ -0,0 +1,329 @@
+var TickerTestCase = TestCase("ticker-tests");
+
+TickerTestCase.prototype.setUp = function() {
+  document.body.innerHTML = "<div id='graph'></div>";
+};
+
+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;
+  };
+};
+
+TickerTestCase.prototype.testBasicDateTicker = function() {
+  var ticks = Dygraph.newDateTicker(-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.newNumericTicks(-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);
+};
+
+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.newDateTicker(-1797534000000, 1255579200000, 800, this.createOptionsViewForAxis('x')));
+  assertEquals([{"v":-5364644400000,"label":"1800"},{"v":-2208970800000,"label":"1900"}], Dygraph.newDateTicker(-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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(1159675200000, 1164776400000, 1150, this.createOptionsViewForAxis('x')));
+  // assertEquals([{"v":1159675200000,"label":"Oct 06"},{"v":1162357200000,"label":"Nov 06"},{"v":null,"label":"undefined NaN"}], Dygraph.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(1160261979962, 1163905694248, 600, this.createOptionsViewForAxis('x')));
+  assertEquals([{"v":1160280000000,"label":"08Oct"},{"v":1160884800000,"label":"15Oct"}], Dygraph.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(1167627600000, 1168318800000, 480, this.createOptionsViewForAxis('x')));
+  assertEquals([{"v":1167627600000,"label":"Jan 07"}], Dygraph.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(1167627600000, 1199077200000, 800, 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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(1215835200000, 1216007940000, 600, this.createOptionsViewForAxis('x')));
+  assertEquals([{"v":1246161600000,"label":"28Jun"},{"v":1246766400000,"label":"05Jul"},{"v":1247371200000,"label":"12Jul"},{"v":1247976000000,"label":"19Jul"}], Dygraph.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newDateTicker(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.newNumericTicks(-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.newNumericTicks(-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.newNumericTicks(-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.newNumericTicks(-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.newNumericTicks(-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.newNumericTicks(-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.newNumericTicks(-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.newNumericTicks(-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.newNumericTicks(-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.newNumericTicks(-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.newNumericTicks(-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.newNumericTicks(-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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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":"6"},{"v":7,"label":"7"},{"v":8,"label":"8"}], Dygraph.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(24, 96, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false})));
+  assertEquals([{"v":0,"label":"0"}], Dygraph.newNumericTicks(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.newNumericTicks(26.185714285714287, 90.81428571428572, 200, 20, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false})));
+  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.newNumericTicks(26.185714285714287, 90.81428571428572, 300, 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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(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.newNumericTicks(9.2, 18.8, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false})));
+  assertEquals([{"v":9.25,"label":"9.25"},{"v":10,"label":"10"},{"v":10.75,"label":"10.75"},{"v":11.5,"label":"11.5"},{"v":12.25,"label":"12.25"},{"v":13,"label":"13"},{"v":13.75,"label":"13.75"},{"v":14.5,"label":"14.5"},{"v":15.25,"label":"15.25"},{"v":16,"label":"16"}], Dygraph.newNumericTicks(9.4, 16.6, 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.newNumericTicks(90, 210, 320, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":true})));
+  assertEquals([{"v":900000,"label":"900K"},{"v":1009090.9090909091,"label":"1.01M"},{"v":1118181.8181818181,"label":"1.12M"},{"v":1227272.7272727273,"label":"1.23M"},{"v":1336363.6363636362,"label":"1.34M"},{"v":1445454.5454545454,"label":"1.45M"},{"v":1554545.4545454546,"label":"1.55M"},{"v":1663636.3636363638,"label":"1.66M"},{"v":1772727.2727272727,"label":"1.77M"},{"v":1881818.1818181819,"label":"1.88M"},{"v":1990909.0909090908,"label":"1.99M"}], Dygraph.newNumericTicks(900000, 2100000, 350, 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.newNumericTicks(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.newNumericTicks(980.1, 1218.9, 200, this.createOptionsViewForAxis('y',{"logscale":null,"labelsKMG2":false,"labelsKMB":false})));
+};
index 791ff21..44d543c 100644 (file)
@@ -55,3 +55,23 @@ UtilsTestCase.prototype.testUpdateDeep = function() {
   assertEquals({x: 2, y: 2}, a['c']);
   assertEquals(null, a['d']);
 };
+
+UtilsTestCase.prototype.testUpdateDeepDecoupled = function() {
+  var a = {
+    a: 1,
+    b: [1, 2, 3],
+    c: { x: "original", y: 2},
+  };
+
+  var b = {};
+  Dygraph.updateDeep(b, a);
+
+  b.a = 2;
+  assertEquals(1, a.a);
+
+  b.b[0] = 2;
+  assertEquals(1, a.b[0]);
+
+  b.c.x = "new value";
+  assertEquals("original", a.c.x);
+};
index 1d64d4e..7cb5019 100644 (file)
@@ -481,9 +481,12 @@ Dygraph.updateDeep = function (self, o) {
       if (o.hasOwnProperty(k)) {
         if (o[k] == null) {
           self[k] = null;
-        } else if (typeof(self[k]) == 'object' &&
-                   typeof(o[k]) == 'object' &&
-                   !Dygraph.isArrayLike(o[k])) {
+        } else if (Dygraph.isArrayLike(o[k])) {
+          self[k] = o[k].slice();
+        } else if (typeof(o[k]) == 'object') {
+          if (typeof(self[k]) != 'object') {
+            self[k] = {};
+          }
           Dygraph.updateDeep(self[k], o[k]);
         } else {
           self[k] = o[k];
index 0d3b65e..82e6518 100644 (file)
@@ -362,7 +362,7 @@ Dygraph.prototype.__init__ = function(div, file, attrs) {
   Dygraph.update(this.user_attrs_, attrs);
 
   this.attrs_ = {};
-  Dygraph.update(this.attrs_, Dygraph.DEFAULT_ATTRS);
+  Dygraph.updateDeep(this.attrs_, Dygraph.DEFAULT_ATTRS);
 
   this.boundaryIds_ = [];
 
@@ -2685,6 +2685,8 @@ Dygraph.prototype.start_ = function() {
 Dygraph.prototype.updateOptions = function(input_attrs, block_redraw) {
   if (typeof(block_redraw) == 'undefined') block_redraw = false;
 
+  // mapLegacyOptions_ drops the "file" parameter as a convenience to us.
+  var file = input_attrs['file'];
   var attrs = Dygraph.mapLegacyOptions_(input_attrs);
 
   // TODO(danvk): this is a mess. Move these options into attr_.
@@ -2713,13 +2715,13 @@ Dygraph.prototype.updateOptions = function(input_attrs, block_redraw) {
 
   Dygraph.updateDeep(this.user_attrs_, attrs);
 
-  if (attrs['file']) {
-    this.file_ = attrs['file'];
+  if (file) {
+    this.file_ = file;
     if (!block_redraw) this.start_();
   } else {
     if (!block_redraw) {
       if (requiresNewPoints) {
-        this.predraw_(); 
+        this.predraw_();
       } else {
         this.renderGraph_(false, false);
       }
@@ -2734,6 +2736,7 @@ Dygraph.prototype.updateOptions = function(input_attrs, block_redraw) {
 Dygraph.mapLegacyOptions_ = function(attrs) {
   var my_attrs = {};
   for (var k in attrs) {
+    if (k == 'file') continue;
     if (attrs.hasOwnProperty(k)) my_attrs[k] = attrs[k];
   }
 
index a1a8c64..c6d93b3 100644 (file)
     html += '</tr>\n';
 
     var attr = {};
-    var g_mock = {
-      attr_: function(x) {
-        return attr[x];
-      }
+    var opts = function(x) {
+      return attr[x];
     };
     for (var j = 0; j < nums.length; j++) {
       var x = nums[j];
       html += '<td>' + x + '</td>';
       for (var i = 0; i < scientific.length; i++) {
         attr = { sigFigs: scientific[i] };
-        html += '<td>' + Dygraph.numberFormatter(x, g_mock) + '</td>';
+        html += '<td>' + Dygraph.numberFormatter(x, opts) + '</td>';
       }
       for (var i = 0; i < fixed.length; i++) {
         attr = { sigFigs: null, digitsAfterDecimal: fixed[i][0], maxNumberWidth: fixed[i][1] };
-        html += '<td>' + Dygraph.numberFormatter(x, g_mock) + '</td>';
+        html += '<td>' + Dygraph.numberFormatter(x, opts) + '</td>';
       }
       html += '</tr>\n';
     }
index ad24648..d1c876b 100644 (file)
             height: 350,
             'Y3': {
               axis: {
-                // set axis-related properties here
-                labelsKMB: true
               }
             },
             'Y4': {
               axis: 'Y3'  // use the same y-axis as series Y3
+            },
+            axes: {
+              y2: {
+                // set axis-related properties here
+                labelsKMB: true
+              }
             }
           }
       );