+ var graph = document.getElementById("graph");
+ var g = new Dygraph(graph, data, opts);
+ var rolled = getRolledData(g, data, 1, 2);
+
+ // precalculated rounded values expected
+ var values = [10, 15, 25, 35];
+ var lows = [-9, -1, 6, 14];
+ var highs = [29, 31, 44, 56];
+
+ for (var i=0;i<data.length;i++) {
+ assert.equal(values[i], Math.round(rolled[i][1]), "unexpected rolled average");
+ assert.equal(lows[i], Math.round(rolled[i][2][0]), "unexpected rolled min");
+ assert.equal(highs[i], Math.round(rolled[i][2][1]), "unexpected rolled max");
+ }
+});
+
+it('testRollFractionsBarsWilson', function() {
+ var opts = {
+ fractions: true,
+ errorBars: true,
+ wilsonInterval: true,
+ rollPeriod: 2,
+ labels: ['x', 'A']
+ };
+ var data = [ [1, [1, 10]],
+ [2, [2, 10]],
+ [3, [3, 10]],
+ [4, [4, 10]]
+ ];
+
+ var graph = document.getElementById("graph");
+ var g = new Dygraph(graph, data, opts);
+ var rolled = getRolledData(g, data, 1, 2);
+
+ //precalculated rounded values expected
+ var values = [10, 15, 25, 35];
+ var lows = [2, 5, 11, 18];
+ var highs = [41, 37, 47, 57];
+
+ for (var i=0;i<data.length;i++) {
+ assert.equal(values[i], Math.round(rolled[i][1]), "unexpected rolled average");
+ assert.equal(lows[i], Math.round(rolled[i][2][0]), "unexpected rolled min");
+ assert.equal(highs[i], Math.round(rolled[i][2][1]), "unexpected rolled max");
+ }
+});
+
+var getRolledData = function(g, data, seriesIdx, rollPeriod){
+ var options = g.attributes_;
+ return g.dataHandler_.rollingAverage(g.dataHandler_.extractSeries(data, seriesIdx, options), rollPeriod, options);