Commit 82ec630c authored by Evgeny's avatar Evgeny

Add popFromColumn

parent be21592a
......@@ -123,26 +123,75 @@ describe('c3 api load', function () {
chart.loadColumns([['data1', 0, 100, 200]]);
chart.appendToColumn(['data1', 300, 400, 500]);
var data = chart.getDataById('data1');
for(var i = 0; i < data.length; i++){
expect(data[i].value).toBe(i*100);
}
setTimeout(function(){
var data = chart.getDataById('data1');
for(var i = 0; i < data.length; i++){
expect(data[i].value).toBe(i*100);
}
done();
done();
}, 500);
});
it('should append values to non-existing column', function(done){
chart.appendToColumn(['data5', 0, 100, 200, 300]);
var data = chart.getDataById('data5');
setTimeout(function(){
var data = chart.getDataById('data5');
for(var i = 0; i < data.length; i++){
expect(data[i].value).toBe(i*100);
}
done();
}, 500);
});
});
describe("popFromColumn", function(){
it("should pop values from column", function(done){
chart.loadColumns([['data1', 0, 100, 200, 300]]);
chart.loadColumns([['data2', 0, -100, -200, -300]]);
chart.popFromColumn('data1', 1);
chart.popFromColumn('data2', 3);
setTimeout(function(){
var data1 = chart.getDataById('data1');
var data2 = chart.getDataById('data2');
expect(data1.length).toBe(3);
expect(data2.length).toBe(1);
for(var i = 0; i < data.length; i++){
expect(data[i].value).toBe(i*100);
}
for(var i = 0; i < data1.length; i++){
expect(data1[i].value).toBe(i*100);
}
for(var i = 0; i < data2.length; i++){
expect(data2[i].value).toBe(-i*100)
}
done();
}, 500);
});
it("should throw when non-existing sequence given", function(done){
expect(function(){
chart.popFromColumn('data2015', 2);
}).toThrow();
done();
});
it("shouldn't throw when popping more values than there is", function(done){
chart.loadColumns([['data1', 10, 20]]);
chart.popFromColumn('data1', 3);
expect(chart.getDataById('data1').length).toBe(0);
chart.popFromColumn('data1', 2);
expect(chart.getDataById('data1').length).toBe(0);
done();
});
});
});
......@@ -69,6 +69,21 @@ c3_chart_fn.appendToColumn = function(col) {
$$.api.loadColumns([col]);
};
c3_chart_fn.popFromColumn = function(id, amount){
var $$ = this.internal;
var columns = $$.api.getDataById(id);
if(isUndefined(columns)){
throw new Error("Popping values from non-existing sequence");
}
for(var i = 0; i < amount; i++){
columns.pop();
}
$$.api.loadColumns(columns);
};
c3_chart_fn.loadColumns = function(cols){
var $$ = this.internal;
$$.api.load({
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment