describe('List', function () {
var utHelper = window.utHelper;
var testCase = utHelper.prepare(['echarts/data/List']);
describe('Data Manipulation', function () {
testCase('initData 1d', function (List) {
var list = new List(['x', 'y']);
list.initData([10, 20, 30]);
expect(list.get('x', 0)).toEqual(10);
expect(list.get('x', 1)).toEqual(20);
expect(list.get('x', 2)).toEqual(30);
expect(list.get('y', 1)).toEqual(20);
});
testCase('initData 2d', function (List) {
var list = new List(['x', 'y']);
list.initData([[10, 15], [20, 25], [30, 35]]);
expect(list.get('x', 1)).toEqual(20);
expect(list.get('y', 1)).toEqual(25);
});
testCase('initData 2d yx', function (List) {
var list = new List(['y', 'x']);
list.initData([[10, 15], [20, 25], [30, 35]]);
expect(list.get('x', 1)).toEqual(25);
expect(list.get('y', 1)).toEqual(20);
});
testCase('Data with option 1d', function (List) {
var list = new List(['x', 'y']);
list.initData([1, {
value: 2,
somProp: 'foo'
}]);
expect(list.getItemModel(1).get('somProp')).toEqual('foo');
expect(list.getItemModel(0).get('somProp')).toBeNull();
});
testCase('Empty data', function (List) {
var list = new List(['x', 'y']);
list.initData([1, '-']);
expect(list.get('y', 1)).toBeNaN();
});
testCase('Stacked data', function (List) {
var list1 = new List(['x', {
name: 'y',
stackable: true
}]);
var list2 = new List(['x', {
name: 'y',
stackable: true
}]);
list1.initData([1, '-', 2, -2]);
list2.initData([1, 2, 3, 2]);
list2.stackedOn = list1;
expect(list2.get('y', 1, true)).toEqual(2);
expect(list2.get('y', 2, true)).toEqual(5);
expect(list2.get('y', 3, true)).toEqual(2);
});
testCase('getRawValue', function (List) {
var list = new List(['x', 'y']);
list.initData([1, 2, 3]);
expect(list.getItemModel(1).option).toEqual(2);
list.initData([[10, 15], [20, 25], [30, 35]]);
expect(list.getItemModel(1).option).toEqual([20, 25]);
});
testCase('getDataExtent', function (List) {
var list = new List(['x', 'y']);
list.initData([1, 2, 3]);
expect(list.getDataExtent('x')).toEqual([1, 3]);
expect(list.getDataExtent('y')).toEqual([1, 3]);
});
testCase('Data types', function (List) {
var list = new List([{
name: 'x',
type: 'int'
}, {
name: 'y',
type: 'float'
}]);
list.initData([[1.1, 1.1]]);
expect(list.get('x', 0)).toEqual(1);
expect(list.get('y', 0)).toBeCloseTo(1.1, 5);
});
testCase('map', function (List) {
var list = new List(['x', 'y']);
list.initData([[10, 15], [20, 25], [30, 35]]);
expect(list.map(['x', 'y'], function (x, y) {
return [x + 2, y + 2];
}).mapArray('x', function (x) {
return x;
})).toEqual([12, 22, 32]);
});
testCase('mapArray', function (List) {
var list = new List(['x', 'y']);
list.initData([[10, 15], [20, 25], [30, 35]]);
expect(list.mapArray(['x', 'y'], function (x, y) {
return [x, y];
})).toEqual([[10, 15], [20, 25], [30, 35]]);
});
testCase('filterSelf', function (List) {
var list = new List(['x', 'y']);
list.initData([[10, 15], [20, 25], [30, 35]]);
expect(list.filterSelf(['x', 'y'], function (x, y) {
return x < 30 && x > 10;
}).mapArray('x', function (x) {
return x;
})).toEqual([20]);
});
});
});
|