sliderMove.js 4.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. describe('component/helper/sliderMove', function () {
  2. var utHelper = window.utHelper;
  3. var testCase = utHelper.prepare(['echarts/src/component/helper/sliderMove']);
  4. describe('sliderMove', function () {
  5. testCase('normalize', function (sliderMove) {
  6. // Return input handleEnds
  7. var inputHandleEnds = [22, 50];
  8. var outputHandleEnds = sliderMove(0, inputHandleEnds, [20, 50], 0);
  9. expect(inputHandleEnds === outputHandleEnds).toEqual(true);
  10. expect(outputHandleEnds).toEqual([22, 50]);
  11. // delta 0 and normalize
  12. expect(sliderMove(0, [-10, 70], [20, 50], 0)).toEqual([20, 50]);
  13. // normalize by minSpec
  14. expect(sliderMove(0, [20, 22], [20, 50], 0, 10)).toEqual([20, 30]);
  15. // normalize by maxSpec
  16. expect(sliderMove(0, [20, 42], [20, 50], 0, null, 10)).toEqual([20, 30]);
  17. // Do not move
  18. expect(sliderMove(0, [-10, 70], [20, 50], 'all')).toEqual([20, 50]);
  19. // minSpan bigger than extent
  20. expect(sliderMove(4, [20, 25], [10, 50], 0, 300)).toEqual([10, 50]);
  21. // maxSpan smaller than minSpan
  22. expect(sliderMove(4, [20, 25], [10, 50], 0, 6, 3)).toEqual([24, 30]);
  23. });
  24. testCase('rigid_move', function (sliderMove) {
  25. expect(sliderMove(2, [20, 30], [10, 50], 'all')).toEqual([22, 32]);
  26. expect(sliderMove(200, [20, 30], [10, 50], 'all')).toEqual([40, 50]);
  27. expect(sliderMove(-2, [30, 40], [10, 50], 'all')).toEqual([28, 38]);
  28. expect(sliderMove(-2, [10, 20], [10, 50], 'all')).toEqual([10, 20]);
  29. });
  30. testCase('cross', function (sliderMove) {
  31. expect(sliderMove(2, [20, 25], [10, 50], 0)).toEqual([22, 25]);
  32. expect(sliderMove(200, [20, 25], [10, 50], 0)).toEqual([50, 25]);
  33. expect(sliderMove(-2, [20, 25], [10, 50], 0)).toEqual([18, 25]);
  34. expect(sliderMove(-200, [20, 25], [10, 50], 0)).toEqual([10, 25]);
  35. expect(sliderMove(2, [20, 25], [10, 50], 1)).toEqual([20, 27]);
  36. expect(sliderMove(200, [20, 25], [10, 50], 1)).toEqual([20, 50]);
  37. expect(sliderMove(-2, [20, 25], [10, 50], 1)).toEqual([20, 23]);
  38. expect(sliderMove(-200, [20, 25], [10, 50], 1)).toEqual([20, 10]);
  39. });
  40. testCase('minSpan_push', function (sliderMove) {
  41. expect(sliderMove(1, [20, 25], [10, 50], 0, 3)).toEqual([21, 25]);
  42. expect(sliderMove(4, [20, 25], [10, 50], 0, 3)).toEqual([24, 27]);
  43. expect(sliderMove(200, [20, 25], [10, 50], 0, 3)).toEqual([47, 50]);
  44. expect(sliderMove(-200, [20, 25], [10, 50], 0, 3)).toEqual([10, 25]);
  45. expect(sliderMove(-1, [20, 25], [10, 50], 1, 3)).toEqual([20, 24]);
  46. expect(sliderMove(-4, [20, 25], [10, 50], 1, 3)).toEqual([18, 21]);
  47. expect(sliderMove(-200, [20, 25], [10, 50], 1, 3)).toEqual([10, 13]);
  48. expect(sliderMove(200, [20, 25], [10, 50], 1, 3)).toEqual([20, 50]);
  49. // minSpan is 0.
  50. expect(sliderMove(10, [20, 25], [10, 50], 0, 0)).toEqual([30, 30]);
  51. expect(sliderMove(-10, [20, 25], [10, 50], 1, 0)).toEqual([15, 15]);
  52. // Input handleEnds[0] === handleEnds[1], should not cross.
  53. expect(sliderMove(10, [20, 20], [10, 50], 0, 0)).toEqual([30, 30]);
  54. expect(sliderMove(-5, [20, 20], [10, 50], 1, 0)).toEqual([15, 15]);
  55. });
  56. testCase('maxSpan_pull', function (sliderMove) {
  57. expect(sliderMove(-8, [20, 25], [10, 50], 0, null, 4)).toEqual([12, 16]);
  58. expect(sliderMove(14, [20, 25], [10, 50], 0, null, 4)).toEqual([34, 30]);
  59. expect(sliderMove(200, [20, 25], [10, 50], 0, null, 4)).toEqual([50, 46]);
  60. expect(sliderMove(-200, [20, 25], [10, 50], 0, null, 4)).toEqual([10, 14]);
  61. expect(sliderMove(8, [20, 25], [10, 50], 1, null, 4)).toEqual([29, 33]);
  62. expect(sliderMove(-15, [20, 25], [10, 50], 1, null, 4)).toEqual([14, 10]);
  63. expect(sliderMove(-200, [20, 25], [10, 50], 1, null, 4)).toEqual([14, 10]);
  64. expect(sliderMove(200, [20, 25], [10, 50], 1, null, 4)).toEqual([46, 50]);
  65. });
  66. });
  67. });