Util.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. topSuite("Ext.chart.Util", ['Ext.chart.*'], function() {
  2. var defaultRange = [0, 1];
  3. describe('expandRange', function () {
  4. it('should handle nulls correctly', function () {
  5. var dataRange = [NaN, NaN];
  6. var data = [-800, -600, -400, null, null];
  7. Ext.chart.Util.expandRange(dataRange, data);
  8. expect(dataRange[0]).toBe(-800);
  9. expect(dataRange[1]).toBe(-400);
  10. });
  11. });
  12. describe('validateRange', function () {
  13. it('should work with zero ranges', function () {
  14. var range1 = [0, 0];
  15. var range2 = [5, 5];
  16. var range3 = [-5, -5];
  17. var range4 = [-Infinity, -Infinity];
  18. var range5 = [Infinity, Infinity];
  19. var range6 = [Ext.Number.MIN_SAFE_INTEGER, Ext.Number.MIN_SAFE_INTEGER];
  20. var range7 = [Ext.Number.MAX_SAFE_INTEGER, Ext.Number.MAX_SAFE_INTEGER];
  21. var range8 = [Ext.Number.MIN_SAFE_INTEGER - 1, Ext.Number.MIN_SAFE_INTEGER - 1];
  22. var range9 = [Ext.Number.MAX_SAFE_INTEGER + 1, Ext.Number.MAX_SAFE_INTEGER + 1];
  23. var range10 = [null, 5];
  24. var range11 = [5, null];
  25. var range12 = [NaN, 5];
  26. var range13 = [5, NaN];
  27. var range14 = [NaN, NaN];
  28. var range15 = [undefined, 5];
  29. var range16 = [5, undefined];
  30. var range17 = [undefined, undefined];
  31. var range18 = [5, Infinity];
  32. var range19 = [Infinity, 5];
  33. var range20 = [-Infinity, -5];
  34. var range21 = [-5, -Infinity];
  35. var range22 = [5, -Infinity];
  36. var range23 = [-5, Infinity];
  37. var result;
  38. result = Ext.chart.Util.validateRange(range1, defaultRange);
  39. expect(result[0]).toBe(-0.5);
  40. expect(result[1]).toBe(0.5);
  41. result = Ext.chart.Util.validateRange(range2, defaultRange);
  42. expect(result[0]).toBe(4.5);
  43. expect(result[1]).toBe(5.5);
  44. result = Ext.chart.Util.validateRange(range3, defaultRange);
  45. expect(result[0]).toBe(-5.5);
  46. expect(result[1]).toBe(-4.5);
  47. result = Ext.chart.Util.validateRange(range4, defaultRange);
  48. expect(result[0]).toBe(0);
  49. expect(result[1]).toBe(1);
  50. result = Ext.chart.Util.validateRange(range5, defaultRange);
  51. expect(result[0]).toBe(0);
  52. expect(result[1]).toBe(1);
  53. result = Ext.chart.Util.validateRange(range6, defaultRange);
  54. expect(result[0]).toBe(Ext.Number.MIN_SAFE_INTEGER - 1);
  55. expect(result[1]).toBe(Ext.Number.MIN_SAFE_INTEGER + 1);
  56. expect(isFinite(result[0])).toBe(true);
  57. expect(isFinite(result[1])).toBe(true);
  58. result = Ext.chart.Util.validateRange(range7, defaultRange);
  59. expect(result[0]).toBe(Ext.Number.MAX_SAFE_INTEGER - 1);
  60. expect(result[1]).toBe(Ext.Number.MAX_SAFE_INTEGER + 1);
  61. expect(isFinite(result[0])).toBe(true);
  62. expect(isFinite(result[1])).toBe(true);
  63. result = Ext.chart.Util.validateRange(range8, defaultRange);
  64. expect(result[0]).toBe(0);
  65. expect(result[1]).toBe(1);
  66. expect(isFinite(result[0])).toBe(true);
  67. expect(isFinite(result[1])).toBe(true);
  68. result = Ext.chart.Util.validateRange(range9, defaultRange);
  69. expect(result[0]).toBe(0);
  70. expect(result[1]).toBe(1);
  71. expect(isFinite(result[0])).toBe(true);
  72. expect(isFinite(result[1])).toBe(true);
  73. result = Ext.chart.Util.validateRange(range10, defaultRange);
  74. expect(result[0]).toBe(0);
  75. expect(result[1]).toBe(5);
  76. result = Ext.chart.Util.validateRange(range11, defaultRange);
  77. expect(result[0]).toBe(0);
  78. expect(result[1]).toBe(5);
  79. result = Ext.chart.Util.validateRange(range12, defaultRange);
  80. expect(result[0]).toBe(0);
  81. expect(result[1]).toBe(5);
  82. result = Ext.chart.Util.validateRange(range13, defaultRange);
  83. expect(result[0]).toBe(0);
  84. expect(result[1]).toBe(5);
  85. result = Ext.chart.Util.validateRange(range14, defaultRange);
  86. expect(result[0]).toBe(-0.5);
  87. expect(result[1]).toBe(0.5);
  88. result = Ext.chart.Util.validateRange(range15, defaultRange);
  89. expect(result[0]).toBe(0);
  90. expect(result[1]).toBe(5);
  91. result = Ext.chart.Util.validateRange(range16, defaultRange);
  92. expect(result[0]).toBe(0);
  93. expect(result[1]).toBe(5);
  94. result = Ext.chart.Util.validateRange(range17, defaultRange);
  95. expect(result[0]).toBe(-0.5);
  96. expect(result[1]).toBe(0.5);
  97. result = Ext.chart.Util.validateRange(range18, defaultRange);
  98. expect(result[0]).toBe(5);
  99. expect(result[1]).toBe(6);
  100. result = Ext.chart.Util.validateRange(range19, defaultRange);
  101. expect(result[0]).toBe(5);
  102. expect(result[1]).toBe(6);
  103. result = Ext.chart.Util.validateRange(range20, defaultRange);
  104. expect(result[0]).toBe(-6);
  105. expect(result[1]).toBe(-5);
  106. result = Ext.chart.Util.validateRange(range21, defaultRange);
  107. expect(result[0]).toBe(-6);
  108. expect(result[1]).toBe(-5);
  109. result = Ext.chart.Util.validateRange(range22, defaultRange);
  110. expect(result[0]).toBe(4);
  111. expect(result[1]).toBe(5);
  112. result = Ext.chart.Util.validateRange(range23, defaultRange);
  113. expect(result[0]).toBe(-5);
  114. expect(result[1]).toBe(-4);
  115. result = Ext.chart.Util.validateRange(range2, defaultRange, 0);
  116. expect(result[0]).toBe(5);
  117. expect(result[1]).toBe(5);
  118. result = Ext.chart.Util.validateRange(range7, defaultRange, 0);
  119. expect(result[0]).toBe(Ext.Number.MAX_SAFE_INTEGER);
  120. expect(result[1]).toBe(Ext.Number.MAX_SAFE_INTEGER);
  121. });
  122. });
  123. });