graphic.js 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. describe('util/graphic', function() {
  2. var graphic;
  3. beforeAll(function (done) { // jshint ignore:line
  4. window.requireES(['echarts/src/util/graphic'], function (g) {
  5. graphic = g;
  6. done();
  7. });
  8. });
  9. describe('subPixelOptimize', function () {
  10. it('subPixelOptimize_base', function (done) {
  11. expect(graphic.subPixelOptimize(5, 1)).toEqual(4.5);
  12. expect(graphic.subPixelOptimize(5, 2)).toEqual(5);
  13. expect(graphic.subPixelOptimize(5, 43)).toEqual(4.5);
  14. expect(graphic.subPixelOptimize(7.5, 1)).toEqual(7.5);
  15. expect(graphic.subPixelOptimize(7.5, 2)).toEqual(7);
  16. expect(graphic.subPixelOptimize(14, 1, true)).toEqual(14.5);
  17. expect(graphic.subPixelOptimize(14, 2, true)).toEqual(14);
  18. expect(graphic.subPixelOptimize(-11, 1)).toEqual(-11.5);
  19. expect(graphic.subPixelOptimize(-11, 2)).toEqual(-11);
  20. expect(graphic.subPixelOptimize(0, 2)).toEqual(0);
  21. expect(graphic.subPixelOptimize(0, 1)).toEqual(-0.5);
  22. expect(graphic.subPixelOptimize(5, 0)).toEqual(5);
  23. done();
  24. });
  25. it('subPixelOptimize_line', function (done) {
  26. function doSubPixelOptimizeLine(x, y, width, height, lineWidth) {
  27. return graphic.subPixelOptimizeLine(makeParam(x, y, width, height, lineWidth));
  28. }
  29. function makeParam(x1, y1, x2, y2, lineWidth) {
  30. return {
  31. shape: {x1: x1, y1: y1, x2: x2, y2: y2},
  32. style: {lineWidth: lineWidth}
  33. };
  34. }
  35. expect(doSubPixelOptimizeLine(5, 11, 3, 7, 1)).toEqual(makeParam(5, 11, 3, 7, 1));
  36. expect(doSubPixelOptimizeLine(5, 11, 5, 7, 1)).toEqual(makeParam(5.5, 11, 5.5, 7, 1));
  37. expect(doSubPixelOptimizeLine(5, 11, 5, 7, 2)).toEqual(makeParam(5, 11, 5, 7, 2));
  38. expect(doSubPixelOptimizeLine(5, 11, 15, 11, 1)).toEqual(makeParam(5, 11.5, 15, 11.5, 1));
  39. expect(doSubPixelOptimizeLine(5, 11, 15, 11, 2)).toEqual(makeParam(5, 11, 15, 11, 2));
  40. expect(doSubPixelOptimizeLine(5, 11, 15, 11, 3)).toEqual(makeParam(5, 11.5, 15, 11.5, 3));
  41. expect(doSubPixelOptimizeLine(5, 11, 15, 11.5, 3)).toEqual(makeParam(5, 11, 15, 11.5, 3));
  42. expect(doSubPixelOptimizeLine(5, 11.5, 15, 11.5, 3)).toEqual(makeParam(5, 11.5, 15, 11.5, 3));
  43. expect(doSubPixelOptimizeLine(5, 11.5, 15, 11.5, 4)).toEqual(makeParam(5, 12, 15, 12, 4));
  44. done();
  45. });
  46. it('subPixelOptimize_rect', function (done) {
  47. function doSubPixelOptimizeRect(x, y, width, height, lineWidth) {
  48. return graphic.subPixelOptimizeRect(makeParam(x, y, width, height, lineWidth));
  49. }
  50. function makeParam(x, y, width, height, lineWidth) {
  51. return {
  52. shape: {x: x, y: y, width: width, height: height},
  53. style: {lineWidth: lineWidth}
  54. };
  55. }
  56. expect(doSubPixelOptimizeRect(5, 11, 3, 7, 1)).toEqual(makeParam(5.5, 11.5, 2, 6, 1));
  57. expect(doSubPixelOptimizeRect(5, 11, 3, 7, 2)).toEqual(makeParam(5, 11, 3, 7, 2));
  58. expect(doSubPixelOptimizeRect(5, 11, 3, 7, 3)).toEqual(makeParam(5.5, 11.5, 2, 6, 3));
  59. // Boundary value tests
  60. expect(doSubPixelOptimizeRect(5, 11, 1, 7, 1)).toEqual(makeParam(5.5, 11.5, 1, 6, 1));
  61. expect(doSubPixelOptimizeRect(5, 11, 1, 0, 1)).toEqual(makeParam(5.5, 11.5, 1, 0, 1));
  62. done();
  63. });
  64. });
  65. });