dromaeo-object-string.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. startTest("dromaeo-object-string", 'ef8605c3');
  2. // Try to force real results
  3. var ret;
  4. var num = 5000;
  5. // TESTS: String concatenation
  6. test("Concat String", function () {
  7. var str = "";
  8. for (var i = 0; i < num; i++)
  9. str += "a";
  10. ret = str;
  11. });
  12. test("Concat String Object", function () {
  13. var str = new String();
  14. for (var i = 0; i < num; i++)
  15. str += "a";
  16. ret = str;
  17. });
  18. test("Concat String from charCode", function () {
  19. var str = "";
  20. for (var i = 0; i < num / 2; i++)
  21. str += String.fromCharCode(97);
  22. ret = str;
  23. });
  24. test("Array String Join", function () {
  25. var str = [];
  26. for (var i = 0; i < num / 2; i++)
  27. str.push("a");
  28. ret = str.join("");
  29. });
  30. var ostr = [], tmp, tmp2, num = 5000, tmpstr;
  31. for (var i = 0; i < 16384; i++)
  32. ostr.push(String.fromCharCode((25 * Math.random()) + 97));
  33. ostr = ostr.join("");
  34. ostr += ostr;
  35. ostr += ostr;
  36. var str;
  37. var i = 52288;
  38. prep(function () {
  39. str = new String(ostr);
  40. });
  41. // TESTS: split
  42. test("String Split", function () {
  43. ret = str.split("");
  44. });
  45. prep(function () {
  46. tmpstr = str;
  47. tmpstr += tmpstr;
  48. tmpstr += tmpstr;
  49. tmpstr += tmpstr;
  50. tmpstr += tmpstr;
  51. });
  52. test("String Split on Char", function () {
  53. ret = tmpstr.split("a");
  54. });
  55. prep(function () {
  56. str += str;
  57. });
  58. // TESTS: characters
  59. test("charAt", function () {
  60. for (var j = 0; j < num; j++) {
  61. ret = str.charAt(0);
  62. ret = str.charAt(str.length - 1);
  63. ret = str.charAt(15000);
  64. ret = str.charAt(12000);
  65. }
  66. });
  67. test("[Number]", function () {
  68. for (var j = 0; j < num; j++) {
  69. ret = str[0];
  70. ret = str[str.length - 1];
  71. ret = str[15000];
  72. ret = str[10000];
  73. ret = str[5000];
  74. }
  75. });
  76. test("charCodeAt", function () {
  77. for (var j = 0; j < num; j++) {
  78. ret = str.charCodeAt(0);
  79. ret = str.charCodeAt(str.length - 1);
  80. ret = str.charCodeAt(15000);
  81. ret = str.charCodeAt(10000);
  82. ret = str.charCodeAt(5000);
  83. }
  84. });
  85. // TESTS: indexOf
  86. test("indexOf", function () {
  87. for (var j = 0; j < num; j++) {
  88. ret = str.indexOf("a");
  89. ret = str.indexOf("b");
  90. ret = str.indexOf("c");
  91. ret = str.indexOf("d");
  92. }
  93. });
  94. test("lastIndexOf", function () {
  95. for (var j = 0; j < num; j++) {
  96. ret = str.lastIndexOf("a");
  97. ret = str.lastIndexOf("b");
  98. ret = str.lastIndexOf("c");
  99. ret = str.lastIndexOf("d");
  100. }
  101. });
  102. // TESTS: slice
  103. test("slice", function () {
  104. for (var j = 0; j < num; j++) {
  105. ret = str.slice(0);
  106. ret = str.slice(0, 5);
  107. ret = str.slice(-1);
  108. ret = str.slice(-6, -1);
  109. ret = str.slice(15000, 15005);
  110. ret = str.slice(12000, -1);
  111. }
  112. });
  113. // TESTS: substr
  114. test("substr", function () {
  115. for (var j = 0; j < num; j++) {
  116. ret = str.substr(0);
  117. ret = str.substr(0, 5);
  118. ret = str.substr(-1);
  119. ret = str.substr(-6, 1);
  120. ret = str.substr(15000, 5);
  121. ret = str.substr(12000, 5);
  122. }
  123. });
  124. // TESTS: substring
  125. test("substring", function () {
  126. for (var j = 0; j < num; j++) {
  127. ret = str.substring(0);
  128. ret = str.substring(0, 5);
  129. ret = str.substring(-1);
  130. ret = str.substring(-6, -1);
  131. ret = str.substring(15000, 15005);
  132. ret = str.substring(12000, -1);
  133. }
  134. });
  135. // TESTS: toLower/UpperCase
  136. test("toLowerCase", function () {
  137. for (var j = 0; j < num / 1000; j++) {
  138. ret = str.toLowerCase();
  139. }
  140. });
  141. test("toUpperCase", function () {
  142. for (var j = 0; j < num / 1000; j++) {
  143. ret = str.toUpperCase();
  144. }
  145. });
  146. // TESTS: comparing
  147. prep(function () {
  148. tmp = str;
  149. tmp2 = str;
  150. });
  151. test("comparing", function () {
  152. tmp = "a" + tmp + "a";
  153. tmp2 = "a" + tmp2 + "a";
  154. for (var j = 0; j < num / 1000; j++) {
  155. ret = tmp == tmp2;
  156. ret = tmp < tmp2;
  157. ret = tmp > tmp2;
  158. }
  159. });
  160. endTest();