light-chart
Version:
Charts for mobile visualization.
84 lines (73 loc) • 2.37 kB
JavaScript
const expect = require('chai').expect;
const F2 = require('../../src/core');
require('../../src/geom/interval');
require('../../src/geom/area');
const canvas = document.createElement('canvas');
canvas.width = 500;
canvas.height = 500;
canvas.id = 'issue179';
document.body.appendChild(canvas);
describe('issue 179', () => {
let chart;
it('柱状图,未进行列定义设置,默认从 0 开始生长', function() {
const data = [
{ value: -139255.5, season: '第四季' },
{ value: -51926.5, season: '第三季' },
{ value: -49959.4, season: '第二季' },
{ value: -37099.9, season: '第一季' }
];
chart = new F2.Chart({
id: 'issue179',
pixelRatio: window.devicePixelRatio,
padding: [ 45, 'auto', 'auto' ]
});
chart.source(data);
const geom = chart.interval().position('season*value');
chart.render();
const yScale = chart.getYScales()[0];
expect(yScale.max).to.equal(0);
// 测试柱状图并未超出画布
const coord = chart.get('coord');
const yMin = coord.end.y;
const container = geom.get('container');
const shapes = container.get('children');
for (let i = 0; i < shapes.length; i++) {
const shape = shapes[i];
expect(shape.attr('y')).to.equal(yMin);
}
});
it('柱状图,进行列定义设置', function() {
chart.scale('value', {
max: 100000
});
chart.repaint();
const yScale = chart.getYScales()[0];
expect(yScale.max).to.equal(100000);
const zeroPosition = chart.getPosition({
season: '第一季',
value: 0
});
const geom = chart.get('geoms')[0];
const container = geom.get('container');
const shapes = container.get('children');
for (let i = 0; i < shapes.length; i++) {
const shape = shapes[i];
expect(shape.attr('y')).to.equal(zeroPosition.y);
}
});
it('负区间区域图', function() {
chart.clear();
chart.scale('value', {});
chart.area().position('season*value');
chart.render();
const geom = chart.get('geoms')[0];
const dataArray = geom.get('dataArray')[0];
// 区域图不超过坐标系区域
for (let i = 0; i < dataArray.length; i++) {
const item = dataArray[i];
expect(item.points[0].y).to.equal(1);
}
chart.destroy();
document.body.removeChild(canvas);
});
});