123 lines
5.5 KiB
TypeScript
Generated
123 lines
5.5 KiB
TypeScript
Generated
|
|
/*
|
|
* Licensed to the Apache Software Foundation (ASF) under one
|
|
* or more contributor license agreements. See the NOTICE file
|
|
* distributed with this work for additional information
|
|
* regarding copyright ownership. The ASF licenses this file
|
|
* to you under the Apache License, Version 2.0 (the
|
|
* "License"); you may not use this file except in compliance
|
|
* with the License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing,
|
|
* software distributed under the License is distributed on an
|
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
* KIND, either express or implied. See the License for the
|
|
* specific language governing permissions and limitations
|
|
* under the License.
|
|
*/
|
|
|
|
import sliderMove from '../../../../../src/component/helper/sliderMove';
|
|
|
|
|
|
describe('component/helper/sliderMove', function () {
|
|
|
|
describe('sliderMove', function () {
|
|
|
|
it('normalize', function () {
|
|
// Return input handleEnds
|
|
const inputHandleEnds = [22, 50];
|
|
const outputHandleEnds = sliderMove(0, inputHandleEnds, [20, 50], 0);
|
|
expect(inputHandleEnds === outputHandleEnds).toEqual(true);
|
|
expect(outputHandleEnds).toEqual([22, 50]);
|
|
|
|
// delta 0 and normalize
|
|
expect(sliderMove(0, [-10, 70], [20, 50], 0)).toEqual([20, 50]);
|
|
|
|
// normalize by minSpec
|
|
expect(sliderMove(0, [20, 22], [20, 50], 0, 10)).toEqual([20, 30]);
|
|
|
|
// normalize by maxSpec
|
|
expect(sliderMove(0, [20, 42], [20, 50], 0, null, 10)).toEqual([20, 30]);
|
|
|
|
// minSpan bigger than extent
|
|
expect(sliderMove(4, [20, 25], [10, 50], 0, 300)).toEqual([10, 50]);
|
|
|
|
// maxSpan smaller than minSpan
|
|
expect(sliderMove(4, [20, 25], [10, 50], 0, 6, 3)).toEqual([24, 30]);
|
|
|
|
// extent small then input range
|
|
expect(sliderMove(0, [-10, 70], [20, 50], 'all')).toEqual([20, 50]);
|
|
|
|
expect(sliderMove(0, [-10, 14], [1, 101], 'all')).toEqual([1, 25]);
|
|
expect(sliderMove(0, [99, 110], [1, 101], 'all')).toEqual([90, 101]);
|
|
expect(sliderMove(0, [-10, 14], [1, 101], 'all', null, 16)).toEqual([1, 17]);
|
|
expect(sliderMove(0, [-10, 14], [1, 101], 'all', 15, 16)).toEqual([1, 17]);
|
|
expect(sliderMove(0, [-10, 14], [1, 101], 'all', 50, null)).toEqual([1, 51]);
|
|
expect(sliderMove(0, [-10, 14], [1, 101], 'all', 50, 55)).toEqual([1, 51]);
|
|
expect(sliderMove(0, [-10, 14], [1, 101], 'all', 10, 55)).toEqual([1, 25]);
|
|
});
|
|
|
|
it('rigid_move', function () {
|
|
|
|
expect(sliderMove(2, [20, 30], [10, 50], 'all')).toEqual([22, 32]);
|
|
expect(sliderMove(200, [20, 30], [10, 50], 'all')).toEqual([40, 50]);
|
|
expect(sliderMove(-2, [30, 40], [10, 50], 'all')).toEqual([28, 38]);
|
|
expect(sliderMove(-2, [10, 20], [10, 50], 'all')).toEqual([10, 20]);
|
|
|
|
});
|
|
|
|
it('cross', function () {
|
|
|
|
expect(sliderMove(2, [20, 25], [10, 50], 0)).toEqual([22, 25]);
|
|
expect(sliderMove(200, [20, 25], [10, 50], 0)).toEqual([50, 25]);
|
|
expect(sliderMove(-2, [20, 25], [10, 50], 0)).toEqual([18, 25]);
|
|
expect(sliderMove(-200, [20, 25], [10, 50], 0)).toEqual([10, 25]);
|
|
|
|
expect(sliderMove(2, [20, 25], [10, 50], 1)).toEqual([20, 27]);
|
|
expect(sliderMove(200, [20, 25], [10, 50], 1)).toEqual([20, 50]);
|
|
expect(sliderMove(-2, [20, 25], [10, 50], 1)).toEqual([20, 23]);
|
|
expect(sliderMove(-200, [20, 25], [10, 50], 1)).toEqual([20, 10]);
|
|
|
|
});
|
|
|
|
it('minSpan_push', function () {
|
|
|
|
expect(sliderMove(1, [20, 25], [10, 50], 0, 3)).toEqual([21, 25]);
|
|
expect(sliderMove(4, [20, 25], [10, 50], 0, 3)).toEqual([24, 27]);
|
|
expect(sliderMove(200, [20, 25], [10, 50], 0, 3)).toEqual([47, 50]);
|
|
expect(sliderMove(-200, [20, 25], [10, 50], 0, 3)).toEqual([10, 25]);
|
|
|
|
expect(sliderMove(-1, [20, 25], [10, 50], 1, 3)).toEqual([20, 24]);
|
|
expect(sliderMove(-4, [20, 25], [10, 50], 1, 3)).toEqual([18, 21]);
|
|
expect(sliderMove(-200, [20, 25], [10, 50], 1, 3)).toEqual([10, 13]);
|
|
expect(sliderMove(200, [20, 25], [10, 50], 1, 3)).toEqual([20, 50]);
|
|
|
|
// minSpan is 0.
|
|
expect(sliderMove(10, [20, 25], [10, 50], 0, 0)).toEqual([30, 30]);
|
|
expect(sliderMove(-10, [20, 25], [10, 50], 1, 0)).toEqual([15, 15]);
|
|
|
|
// Input handleEnds[0] === handleEnds[1], should not cross.
|
|
expect(sliderMove(10, [20, 20], [10, 50], 0, 0)).toEqual([30, 30]);
|
|
expect(sliderMove(-5, [20, 20], [10, 50], 1, 0)).toEqual([15, 15]);
|
|
});
|
|
|
|
it('maxSpan_pull', function () {
|
|
|
|
expect(sliderMove(-8, [20, 25], [10, 50], 0, null, 4)).toEqual([12, 16]);
|
|
expect(sliderMove(14, [20, 25], [10, 50], 0, null, 4)).toEqual([34, 30]);
|
|
expect(sliderMove(200, [20, 25], [10, 50], 0, null, 4)).toEqual([50, 46]);
|
|
expect(sliderMove(-200, [20, 25], [10, 50], 0, null, 4)).toEqual([10, 14]);
|
|
|
|
expect(sliderMove(8, [20, 25], [10, 50], 1, null, 4)).toEqual([29, 33]);
|
|
expect(sliderMove(-15, [20, 25], [10, 50], 1, null, 4)).toEqual([14, 10]);
|
|
expect(sliderMove(-200, [20, 25], [10, 50], 1, null, 4)).toEqual([14, 10]);
|
|
expect(sliderMove(200, [20, 25], [10, 50], 1, null, 4)).toEqual([46, 50]);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|