提交 c6eecfe2 编写于 作者: 1 100pah

test: update ut for 5.0.

上级 7090bceb
......@@ -39,7 +39,6 @@ module.exports = {
'**/spec/model/*.test.ts',
'**/spec/scale/*.test.ts',
'**/spec/util/*.test.ts',
'!**/spec/api/containPixel.test.ts',
'!**/spec/component/graphic/setOption.test.ts'
]
};
此差异已折叠。
......@@ -17,26 +17,37 @@
* specific language governing permissions and limitations
* under the License.
*/
const utHelper = require('../../core/utHelper');
import { EChartsType } from '../../../../src/echarts';
import SeriesModel from '../../../../src/model/Series';
import { ParsedValue } from '../../../../src/util/types';
import { LegendOption } from '../../../../src/component/legend/LegendModel';
import TimelineModel from '../../../../src/component/timeline/TimelineModel';
import { createChart } from '../../core/utHelper';
import { EChartsFullOption } from '../../../../src/option';
describe('timelineMediaOptions', function () {
function getData0(chart, seriesIndex) {
function getData0(chart: EChartsType, seriesIndex: number): ParsedValue {
return getSeries(chart, seriesIndex).getData().get('y', 0);
}
function getSeries(chart, seriesIndex) {
return chart.getModel().getComponent('series', seriesIndex);
function getSeries(chart: EChartsType, seriesIndex: number): SeriesModel {
return chart.getModel().getComponent('series', seriesIndex) as SeriesModel;
}
function getLegendOption(chart) {
function getLegendOption(chart: EChartsType): LegendOption {
return chart.getModel().getComponent('legend', 0).option;
}
function getTimelineComponent(chart) {
return chart.getModel().getComponent('timeline', 0);
function getTimelineComponent(chart: EChartsType): TimelineModel {
return chart.getModel().getComponent('timeline', 0) as TimelineModel;
}
var chart;
let chart: EChartsType;
beforeEach(function () {
chart = utHelper.createChart(10, 10);
chart = createChart({
width: 10,
height: 10
});
});
afterEach(function () {
......@@ -49,7 +60,7 @@ describe('timelineMediaOptions', function () {
describe('parse_timeline_media_option', function () {
it('parse_media_has_baseOption_has_default', function () {
var option = {
const option: EChartsFullOption = {
baseOption: {
xAxis: { data: ['a'] },
yAxis: {},
......@@ -77,7 +88,7 @@ describe('timelineMediaOptions', function () {
});
it('parse_media_no_baseOption_has_default', function () {
var option = {
const option: EChartsFullOption = {
xAxis: { data: ['a'] },
yAxis: {},
legend: { left: 10 },
......@@ -101,7 +112,7 @@ describe('timelineMediaOptions', function () {
});
it('parse_media_no_baseOption_no_default', function () {
var option = {
const option: EChartsFullOption = {
xAxis: { data: ['a'] },
yAxis: {},
legend: { left: 10 },
......@@ -121,7 +132,7 @@ describe('timelineMediaOptions', function () {
});
it('parse_timeline_media_has_baseOption', function () {
var option = {
const option: EChartsFullOption = {
baseOption: {
timeline: { axisType: 'category' },
xAxis: { data: ['a'] },
......@@ -161,7 +172,7 @@ describe('timelineMediaOptions', function () {
});
it('parse_timeline_media_no_baseOption', function () {
var option = {
const option: EChartsFullOption = {
timeline: { axisType: 'category' },
xAxis: { data: ['a'] },
yAxis: {},
......@@ -197,7 +208,7 @@ describe('timelineMediaOptions', function () {
});
it('parse_timeline_has_baseOption', function () {
var option = {
const option: EChartsFullOption = {
baseOption: {
timeline: { axisType: 'category' },
xAxis: { data: ['a'] },
......@@ -221,7 +232,7 @@ describe('timelineMediaOptions', function () {
});
it('parse_timeline_has_baseOption_compat', function () {
var option = {
const option: EChartsFullOption = {
timeline: { axisType: 'category' },
baseOption: {
xAxis: { data: ['a'] },
......@@ -245,7 +256,7 @@ describe('timelineMediaOptions', function () {
});
it('parse_timeline_has_baseOption_compat', function () {
var option = {
const option: EChartsFullOption = {
timeline: { axisType: 'category' },
baseOption: {
xAxis: { data: ['a'] },
......@@ -269,7 +280,7 @@ describe('timelineMediaOptions', function () {
});
it('parse_timeline_no_baseOption', function () {
var option = {
const option: EChartsFullOption = {
timeline: { axisType: 'category' },
xAxis: { data: ['a'] },
yAxis: {},
......@@ -299,7 +310,7 @@ describe('timelineMediaOptions', function () {
describe('timeline_onceMore', function () {
it('timeline_setOptionOnceMore_baseOption', function () {
var option = {
const option: EChartsFullOption = {
baseOption: {
timeline: {
axisType: 'category',
......@@ -347,7 +358,7 @@ describe('timelineMediaOptions', function () {
it('timeline_setOptionOnceMore_substitudeTimelineOptions', function () {
var option = {
const option: EChartsFullOption = {
baseOption: {
timeline: {
axisType: 'category',
......@@ -377,7 +388,7 @@ describe('timelineMediaOptions', function () {
};
chart.setOption(option);
var ecModel = chart.getModel();
let ecModel = chart.getModel();
expect(getData0(chart, 0)).toEqual(1111);
expect(getData0(chart, 1)).toEqual(2222);
......@@ -399,9 +410,9 @@ describe('timelineMediaOptions', function () {
}]
});
var ecModel = chart.getModel();
var option = ecModel.getOption();
expect(option.backgroundColor).toEqual('#987654');
ecModel = chart.getModel();
const optionGotten = ecModel.getOption();
expect(optionGotten.backgroundColor).toEqual('#987654');
expect(getData0(chart, 0)).toEqual(1111);
expect(getData0(chart, 1)).toEqual(2222);
......
......@@ -18,15 +18,19 @@
* under the License.
*/
const scaleHelper = require('../../../../lib/scale/helper');
const numberUtil = require('../../../../lib/util/number');
const IntervalScale = require('../../../../lib/scale/Interval');
const utHelper = require('../../core/utHelper');
import { createChart, isValueFinite } from '../../core/utHelper';
import { EChartsType } from '../../../../src/echarts';
import CartesianAxisModel from '../../../../src/coord/cartesian/AxisModel';
import IntervalScale from '../../../../src/scale/Interval';
import { intervalScaleNiceTicks } from '../../../../src/scale/helper';
import { getPrecisionSafe } from '../../../../src/util/number';
describe('scale_interval', function () {
var chart;
let chart: EChartsType;
beforeEach(function () {
chart = utHelper.createChart();
chart = createChart();
});
afterEach(function () {
......@@ -37,9 +41,9 @@ describe('scale_interval', function () {
describe('extreme', function () {
it('ticks_min_max', function () {
var min = 0;
var max = 54.090909;
var splitNumber = 5;
const min = 0;
const max = 54.090909;
const splitNumber = 5;
chart.setOption({
xAxis: {},
......@@ -53,12 +57,12 @@ describe('scale_interval', function () {
series: [{type: 'line', data: []}]
});
var yAxis = chart.getModel().getComponent('yAxis', 0);
var scale = yAxis.axis.scale;
var ticks = scale.getTicks();
const yAxis = chart.getModel().getComponent('yAxis', 0) as CartesianAxisModel;
const scale = yAxis.axis.scale;
const ticks = scale.getTicks();
expect(ticks[0]).toEqual(min);
expect(ticks[ticks.length - 1]).toEqual(max);
expect(ticks[0].value).toEqual(min);
expect(ticks[ticks.length - 1].value).toEqual(max);
});
it('ticks_small_value', function () {
......@@ -87,16 +91,16 @@ describe('scale_interval', function () {
]
});
var yAxis = chart.getModel().getComponent('yAxis', 0);
var scale = yAxis.axis.scale;
var ticks = scale.getTicks();
var labels = yAxis.axis.getViewLabels().map(function (item) {
const yAxis = chart.getModel().getComponent('yAxis', 0) as CartesianAxisModel;
const scale = yAxis.axis.scale as IntervalScale;
const ticks = scale.getTicks();
const labels = yAxis.axis.getViewLabels().map(function (item) {
return item.formattedLabel;
});
var labelPrecisioned = scale.getLabel(0.0000005, {precision: 10});
const labelPrecisioned = scale.getLabel({ value: 0.0000005 }, { precision: 10 });
expect(ticks).toEqual(
expect(ticks.map(tick => tick.value)).toEqual(
[0, 0.0000005, 0.000001, 0.0000015, 0.000002, 0.0000025, 0.000003, 0.0000035]
);
expect(labels).toEqual(
......@@ -110,51 +114,51 @@ describe('scale_interval', function () {
describe('ticks', function () {
function randomNumber(quantity) {
function randomNumber(quantity: number): number {
return (Math.random() - 0.5) * Math.pow(10, (Math.random() - 0.5) * quantity);
}
function doSingleTest(extent, splitNumber) {
var result = scaleHelper.intervalScaleNiceTicks(extent, splitNumber);
var intervalPrecision = result.intervalPrecision;
var interval = result.interval;
var niceTickExtent = result.niceTickExtent;
function doSingleTest(extent: [number, number], splitNumber: number): void {
const result = intervalScaleNiceTicks(extent, splitNumber);
const intervalPrecision = result.intervalPrecision;
const resultInterval = result.interval;
const niceTickExtent = result.niceTickExtent;
expect(interval).toBeFinite();
expect(intervalPrecision).toBeFinite();
expect(niceTickExtent[0]).toBeFinite();
expect(niceTickExtent[1]).toBeFinite();
expect(isValueFinite(resultInterval)).toEqual(true);
expect(isValueFinite(intervalPrecision)).toEqual(true);
expect(isValueFinite(niceTickExtent[0])).toEqual(true);
expect(isValueFinite(niceTickExtent[1])).toEqual(true);
expect(niceTickExtent[0]).toBeGeaterThanOrEqualTo(extent[0]);
expect(niceTickExtent[0]).toBeGreaterThanOrEqual(extent[0]);
expect(niceTickExtent[1]).not.toBeGreaterThan(extent[1]);
expect(niceTickExtent[1]).toBeGeaterThanOrEqualTo(niceTickExtent[1]);
expect(niceTickExtent[1]).toBeGreaterThanOrEqual(niceTickExtent[1]);
var interval = new IntervalScale();
const interval = new IntervalScale();
interval.setExtent(extent[0], extent[1]);
interval.niceExtent({
fixMin: true,
fixMax: true,
splitNumber
});
var ticks = interval.getTicks();
const ticks = interval.getTicks();
expect(ticks).not.toBeEmptyArray();
expect(ticks[0]).toEqual(extent[0]);
expect(ticks[ticks.length - 1]).toEqual(extent[1]);
expect(ticks.length > 0);
expect(ticks[0].value).toEqual(extent[0]);
expect(ticks[ticks.length - 1].value).toEqual(extent[1]);
for (var i = 1; i < ticks.length; i++) {
expect(ticks[i - 1]).not.toBeGeaterThanOrEqualTo(ticks[i]);
for (let i = 1; i < ticks.length; i++) {
expect(ticks[i - 1].value).not.toBeGreaterThanOrEqual(ticks[i].value);
if (ticks[i] !== extent[0] && ticks[i] !== extent[1]) {
var tickPrecision = numberUtil.getPrecisionSafe(ticks[i]);
if (ticks[i].value !== extent[0] && ticks[i].value !== extent[1]) {
const tickPrecision = getPrecisionSafe(ticks[i].value);
expect(tickPrecision).not.toBeGreaterThan(intervalPrecision);
}
}
}
function doRandomTest(count, splitNumber, quantity) {
for (var i = 0; i < count; i++) {
var extent = [];
function doRandomTest(count: number, splitNumber: number, quantity: number): void {
for (let i = 0; i < count; i++) {
const extent: number[] = [];
extent[0] = randomNumber(quantity);
extent[1] = extent[0] + randomNumber(quantity);
if (extent[1] === extent[0]) {
......@@ -163,7 +167,7 @@ describe('scale_interval', function () {
if (extent[0] > extent[1]) {
extent.reverse();
}
doSingleTest(extent, splitNumber);
doSingleTest(extent as [number, number], splitNumber);
}
}
......
......@@ -18,67 +18,70 @@
* under the License.
*/
const graphic = require('../../../../lib/util/graphic');
import {
subPixelOptimize, subPixelOptimizeLine, subPixelOptimizeRect
} from 'zrender/src/graphic/helper/subPixelOptimize';
import { lineLineIntersect } from '../../../../src/util/graphic';
describe('util/graphic', function () {
describe('subPixelOptimize', function () {
it('subPixelOptimize_base', function (done) {
expect(graphic.subPixelOptimize(5, 1)).toEqual(4.5);
expect(graphic.subPixelOptimize(5, 2)).toEqual(5);
expect(graphic.subPixelOptimize(5, 43)).toEqual(4.5);
expect(graphic.subPixelOptimize(7.5, 1)).toEqual(7.5);
expect(graphic.subPixelOptimize(7.5, 2)).toEqual(7);
expect(graphic.subPixelOptimize(14, 1, true)).toEqual(14.5);
expect(graphic.subPixelOptimize(14, 2, true)).toEqual(14);
expect(graphic.subPixelOptimize(-11, 1)).toEqual(-11.5);
expect(graphic.subPixelOptimize(-11, 2)).toEqual(-11);
expect(graphic.subPixelOptimize(0, 2)).toEqual(0);
expect(graphic.subPixelOptimize(0, 1)).toEqual(-0.5);
expect(graphic.subPixelOptimize(5, 0)).toEqual(5);
done();
it('subPixelOptimize_base', function () {
expect(subPixelOptimize(5, 1)).toEqual(4.5);
expect(subPixelOptimize(5, 2)).toEqual(5);
expect(subPixelOptimize(5, 43)).toEqual(4.5);
expect(subPixelOptimize(7.5, 1)).toEqual(7.5);
expect(subPixelOptimize(7.5, 2)).toEqual(7);
expect(subPixelOptimize(14, 1, true)).toEqual(14.5);
expect(subPixelOptimize(14, 2, true)).toEqual(14);
expect(subPixelOptimize(-11, 1)).toEqual(-11.5);
expect(subPixelOptimize(-11, 2)).toEqual(-11);
expect(subPixelOptimize(0, 2)).toEqual(0);
expect(subPixelOptimize(0, 1)).toEqual(-0.5);
expect(subPixelOptimize(5, 0)).toEqual(5);
});
it('subPixelOptimize_line', function (done) {
function doSubPixelOptimizeLine(x, y, width, height, lineWidth) {
return graphic.subPixelOptimizeLine(makeParam(x, y, width, height, lineWidth));
it('subPixelOptimize_line', function () {
function doSubPixelOptimizeLine(x: number, y: number, width: number, height: number, lineWidth: number) {
const params = makeParam(x, y, width, height, lineWidth);
return subPixelOptimizeLine(params.shape, params.shape, params.style);
}
function makeParam(x1, y1, x2, y2, lineWidth) {
function makeParam(x1: number, y1: number, x2: number, y2: number, lineWidth: number) {
return {
shape: {x1: x1, y1: y1, x2: x2, y2: y2},
style: {lineWidth: lineWidth}
};
}
expect(doSubPixelOptimizeLine(5, 11, 3, 7, 1)).toEqual(makeParam(5, 11, 3, 7, 1));
expect(doSubPixelOptimizeLine(5, 11, 5, 7, 1)).toEqual(makeParam(5.5, 11, 5.5, 7, 1));
expect(doSubPixelOptimizeLine(5, 11, 5, 7, 2)).toEqual(makeParam(5, 11, 5, 7, 2));
expect(doSubPixelOptimizeLine(5, 11, 15, 11, 1)).toEqual(makeParam(5, 11.5, 15, 11.5, 1));
expect(doSubPixelOptimizeLine(5, 11, 15, 11, 2)).toEqual(makeParam(5, 11, 15, 11, 2));
expect(doSubPixelOptimizeLine(5, 11, 15, 11, 3)).toEqual(makeParam(5, 11.5, 15, 11.5, 3));
expect(doSubPixelOptimizeLine(5, 11, 15, 11.5, 3)).toEqual(makeParam(5, 11, 15, 11.5, 3));
expect(doSubPixelOptimizeLine(5, 11.5, 15, 11.5, 3)).toEqual(makeParam(5, 11.5, 15, 11.5, 3));
expect(doSubPixelOptimizeLine(5, 11.5, 15, 11.5, 4)).toEqual(makeParam(5, 12, 15, 12, 4));
done();
expect(doSubPixelOptimizeLine(5, 11, 3, 7, 1)).toEqual(makeParam(5, 11, 3, 7, 1).shape);
expect(doSubPixelOptimizeLine(5, 11, 5, 7, 1)).toEqual(makeParam(5.5, 11, 5.5, 7, 1).shape);
expect(doSubPixelOptimizeLine(5, 11, 5, 7, 2)).toEqual(makeParam(5, 11, 5, 7, 2).shape);
expect(doSubPixelOptimizeLine(5, 11, 15, 11, 1)).toEqual(makeParam(5, 11.5, 15, 11.5, 1).shape);
expect(doSubPixelOptimizeLine(5, 11, 15, 11, 2)).toEqual(makeParam(5, 11, 15, 11, 2).shape);
expect(doSubPixelOptimizeLine(5, 11, 15, 11, 3)).toEqual(makeParam(5, 11.5, 15, 11.5, 3).shape);
expect(doSubPixelOptimizeLine(5, 11, 15, 11.5, 3)).toEqual(makeParam(5, 11, 15, 11.5, 3).shape);
expect(doSubPixelOptimizeLine(5, 11.5, 15, 11.5, 3)).toEqual(makeParam(5, 11.5, 15, 11.5, 3).shape);
expect(doSubPixelOptimizeLine(5, 11.5, 15, 11.5, 4)).toEqual(makeParam(5, 12, 15, 12, 4).shape);
});
it('subPixelOptimize_rect', function (done) {
function doSubPixelOptimizeRect(x, y, width, height, lineWidth) {
return graphic.subPixelOptimizeRect(makeParam(x, y, width, height, lineWidth));
it('subPixelOptimize_rect', function () {
function doSubPixelOptimizeRect(x: number, y: number, width: number, height: number, lineWidth: number) {
const params = makeParam(x, y, width, height, lineWidth);
return subPixelOptimizeRect(params.shape, params.shape, params.style);
}
function makeParam(x, y, width, height, lineWidth) {
function makeParam(x: number, y: number, width: number, height: number, lineWidth: number) {
return {
shape: {x: x, y: y, width: width, height: height},
style: {lineWidth: lineWidth}
};
}
expect(doSubPixelOptimizeRect(5, 11, 3, 7, 1)).toEqual(makeParam(5.5, 11.5, 2, 6, 1));
expect(doSubPixelOptimizeRect(5, 11, 3, 7, 2)).toEqual(makeParam(5, 11, 3, 7, 2));
expect(doSubPixelOptimizeRect(5, 11, 3, 7, 3)).toEqual(makeParam(5.5, 11.5, 2, 6, 3));
expect(doSubPixelOptimizeRect(5, 11, 3, 7, 1)).toEqual(makeParam(5.5, 11.5, 2, 6, 1).shape);
expect(doSubPixelOptimizeRect(5, 11, 3, 7, 2)).toEqual(makeParam(5, 11, 3, 7, 2).shape);
expect(doSubPixelOptimizeRect(5, 11, 3, 7, 3)).toEqual(makeParam(5.5, 11.5, 2, 6, 3).shape);
// Boundary value tests
expect(doSubPixelOptimizeRect(5, 11, 1, 7, 1)).toEqual(makeParam(5.5, 11.5, 1, 6, 1));
expect(doSubPixelOptimizeRect(5, 11, 1, 0, 1)).toEqual(makeParam(5.5, 11.5, 1, 0, 1));
done();
expect(doSubPixelOptimizeRect(5, 11, 1, 7, 1)).toEqual(makeParam(5.5, 11.5, 1, 6, 1).shape);
expect(doSubPixelOptimizeRect(5, 11, 1, 0, 1)).toEqual(makeParam(5.5, 11.5, 1, 0, 1).shape);
});
});
......@@ -86,20 +89,20 @@ describe('util/graphic', function () {
describe('lineLineIntersect', function () {
it('extreme', function () {
expect(graphic.lineLineIntersect(10, 10, 30, 30, 10, 10, 10, 10)).toEqual(false);
expect(lineLineIntersect(10, 10, 30, 30, 10, 10, 10, 10)).toEqual(false);
});
it('parallel and colinear', function () {
expect(graphic.lineLineIntersect(10, 20, 30, 40, 100, 220, 120, 240)).toEqual(false);
expect(graphic.lineLineIntersect(10, 10, 30, 30, 40, 40, 50, 50)).toEqual(false);
expect(graphic.lineLineIntersect(10, 10, 30, 30, 10, 10, 30, 30)).toEqual(false);
expect(graphic.lineLineIntersect(10, 10, 30, 30, 20, 20, 30, 30)).toEqual(false);
expect(graphic.lineLineIntersect(10, 10, 30, 30, 20, 20, 22, 22)).toEqual(false);
expect(lineLineIntersect(10, 20, 30, 40, 100, 220, 120, 240)).toEqual(false);
expect(lineLineIntersect(10, 10, 30, 30, 40, 40, 50, 50)).toEqual(false);
expect(lineLineIntersect(10, 10, 30, 30, 10, 10, 30, 30)).toEqual(false);
expect(lineLineIntersect(10, 10, 30, 30, 20, 20, 30, 30)).toEqual(false);
expect(lineLineIntersect(10, 10, 30, 30, 20, 20, 22, 22)).toEqual(false);
});
it('intersect', function () {
expect(graphic.lineLineIntersect(10, 20, 30, 40, 12, 20, 30, 40)).toEqual(true);
expect(graphic.lineLineIntersect(10, 20, 30, 40, 12, 20, 20, 42)).toEqual(true);
expect(lineLineIntersect(10, 20, 30, 40, 12, 20, 30, 40)).toEqual(true);
expect(lineLineIntersect(10, 20, 30, 40, 12, 20, 20, 42)).toEqual(true);
});
});
......
......@@ -17,22 +17,25 @@
* specific language governing permissions and limitations
* under the License.
*/
const layoutUtil = require('../../../../lib/util/layout');
// import { Dictionary } from 'zrender/src/core/types';
import { mergeLayoutParam } from '../../../../src/util/layout';
import { BoxLayoutOptionMixin } from '../../../../src/util/types';
describe('util/number', function () {
describe('mergeLayoutParam', function () {
// The given obj has exactly the given props, has no other props.
function expectPropsEqual(obj, props) {
function expectPropsEqual(obj: object, props: object): void {
expect(propContain(obj, props) && propContain(props, obj)).toEqual(true);
}
function propContain(more, less) {
for (var key in more) {
function propContain(more: object, less: object): boolean {
for (const key in more) {
if (more.hasOwnProperty(key)) {
if (more[key] !== less[key]
&& !(more[key] == null && less[key] == null)
if ((more as any)[key] !== (less as any)[key]
&& !((more as any)[key] == null && (less as any)[key] == null)
) {
return false;
}
......@@ -41,9 +44,9 @@ describe('util/number', function () {
return true;
}
function shadowClone(obj) {
var newObj = {};
for (var key in obj) {
function shadowClone<T extends object>(obj: T): T {
const newObj = {} as T;
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
newObj[key] = obj[key];
}
......@@ -53,18 +56,23 @@ describe('util/number', function () {
it('all', function () {
function testMerge(targetOption, newOption, result, resultIgnoreSize) {
var t1 = shadowClone(targetOption);
var t2 = shadowClone(targetOption);
var n1 = shadowClone(newOption);
var n2 = shadowClone(newOption);
layoutUtil.mergeLayoutParam(t1, n1);
layoutUtil.mergeLayoutParam(t2, n2, {ignoreSize: true});
function testMerge(
targetOption: BoxLayoutOptionMixin,
newOption: BoxLayoutOptionMixin,
result: BoxLayoutOptionMixin,
resultIgnoreSize?: BoxLayoutOptionMixin
) {
const t1 = shadowClone(targetOption);
const t2 = shadowClone(targetOption);
const n1 = shadowClone(newOption);
const n2 = shadowClone(newOption);
mergeLayoutParam(t1, n1);
mergeLayoutParam(t2, n2, {ignoreSize: true});
expectPropsEqual(t1, result);
expectPropsEqual(t2, resultIgnoreSize || result);
}
function singleValueAdd(val) {
function singleValueAdd(val: number | string): void {
testMerge({}, {width: val}, {width: val});
testMerge({}, {left: val}, {left: val});
testMerge({}, {right: val}, {right: val});
......@@ -79,7 +87,7 @@ describe('util/number', function () {
singleValueAdd('right');
singleValueAdd('center');
function singleValueReplace(val) {
function singleValueReplace(val: number | string): void {
testMerge({width: -999}, {width: val}, {width: val});
testMerge({left: -999}, {left: val}, {left: val});
testMerge({right: -999}, {right: val}, {right: val});
......
......@@ -18,20 +18,21 @@
* under the License.
*/
const modelUtil = require('../../../../lib/util/model');
import { compressBatches } from '../../../../src/util/model';
describe('util/model', function () {
describe('compressBatches', function () {
function item(seriesId, dataIndex) {
function item(seriesId: number | string, dataIndex: number | number[]) {
return {seriesId, dataIndex};
}
it('base', function () {
// Remove dupliate between A and B
expect(modelUtil.compressBatches(
expect(compressBatches(
[item(3, 4), item(3, 5), item(4, 5)],
[item(4, 6), item(4, 5), item(3, 3), item(3, 4)]
)).toEqual([
......@@ -40,7 +41,7 @@ describe('util/model', function () {
]);
// Compress
expect(modelUtil.compressBatches(
expect(compressBatches(
[item(3, 4), item(3, 6), item(3, 5), item(4, 5)],
[item(4, 6), item(4, 5), item(3, 3), item(3, 4), item(4, 7)]
)).toEqual([
......@@ -49,7 +50,7 @@ describe('util/model', function () {
]);
// Remove duplicate in themselves
expect(modelUtil.compressBatches(
expect(compressBatches(
[item(3, 4), item(3, 6), item(3, 5), item(4, 5)],
[item(4, 6), item(4, 5), item(3, 3), item(3, 4), item(4, 7), item(4, 6)]
)).toEqual([
......@@ -58,7 +59,7 @@ describe('util/model', function () {
]);
// dataIndex is array
expect(modelUtil.compressBatches(
expect(compressBatches(
[item(3, [4, 5, 8]), item(4, 4), item(3, [5, 7, 7])],
[item(3, [8, 9])]
)).toEqual([
......@@ -67,14 +68,14 @@ describe('util/model', function () {
]);
// empty
expect(modelUtil.compressBatches(
expect(compressBatches(
[item(3, [4, 5, 8]), item(4, 4), item(3, [5, 7, 7])],
[]
)).toEqual([
[item('3', [4, 5, 7, 8]), item('4', [4])],
[]
]);
expect(modelUtil.compressBatches(
expect(compressBatches(
[],
[item(3, [4, 5, 8]), item(4, 4), item(3, [5, 7, 7])]
)).toEqual([
......@@ -83,7 +84,7 @@ describe('util/model', function () {
]);
// should not has empty array
expect(modelUtil.compressBatches(
expect(compressBatches(
[item(3, [4, 5, 8])],
[item(3, [4, 5, 8])]
)).toEqual([
......
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册