smock 0.1.217 → 0.1.218

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. data/Gemfile.lock +1 -1
  2. data/app/assets/javascripts/modules/category_dropdown.coffee +0 -1
  3. data/examples/pages/homepage.html +1 -0
  4. data/node_modules/exports-loader/.npmignore +1 -0
  5. data/node_modules/exports-loader/README.md +18 -0
  6. data/node_modules/exports-loader/index.js +36 -0
  7. data/node_modules/exports-loader/node_modules/loader-utils/.npmignore +1 -0
  8. data/node_modules/exports-loader/node_modules/loader-utils/README.md +129 -0
  9. data/node_modules/exports-loader/node_modules/loader-utils/index.js +229 -0
  10. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/.bin/json5 +41 -0
  11. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/.npmignore +0 -0
  12. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/LICENCE +23 -0
  13. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/README.md +214 -0
  14. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/big.js +1026 -0
  15. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/big.min.js +1 -0
  16. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/doc/bigAPI.html +1026 -0
  17. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/package.json +61 -0
  18. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/big-vs-bigdecimal.html +678 -0
  19. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/bigtime.js +324 -0
  20. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/BigDecTest.class +0 -0
  21. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/BigDecTest.java +60 -0
  22. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/LICENCE.txt +205 -0
  23. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/bigdecimal.js +592 -0
  24. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/bugs.js +53 -0
  25. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_ICU4J/BigDecimal-all-last.js +5724 -0
  26. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_ICU4J/BigDecimal-all-last.min.js +61 -0
  27. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_ICU4J/LICENCE.txt +30 -0
  28. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/abs.js +555 -0
  29. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/browser/big-vs-number.html +249 -0
  30. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/browser/every-test.html +66 -0
  31. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/browser/single-test.html +26 -0
  32. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/cmp.js +4305 -0
  33. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/div.js +9978 -0
  34. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/every-test.js +31 -0
  35. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/minus.js +1793 -0
  36. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/mod.js +1838 -0
  37. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/plus.js +1916 -0
  38. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/pow.js +1233 -0
  39. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/round.js +5173 -0
  40. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/sqrt.js +788 -0
  41. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/times.js +2159 -0
  42. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/toExponential.js +472 -0
  43. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/toFixed.js +1030 -0
  44. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/toPrecision.js +508 -0
  45. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/toString.js +1068 -0
  46. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/.npmignore +4 -0
  47. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/CHANGELOG.md +56 -0
  48. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/Makefile +27 -0
  49. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/README.md +173 -0
  50. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/lib/cli.js +41 -0
  51. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/lib/json5.js +462 -0
  52. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/lib/require.js +18 -0
  53. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/package.json +66 -0
  54. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/package.json5 +24 -0
  55. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/empty-array.json +1 -0
  56. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/leading-comma-array.js +3 -0
  57. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/lone-trailing-comma-array.js +3 -0
  58. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/no-comma-array.txt +4 -0
  59. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/regular-array.json +5 -0
  60. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/trailing-comma-array.json5 +3 -0
  61. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-following-array-element.json5 +6 -0
  62. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-following-top-level-value.json5 +5 -0
  63. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-in-string.json +1 -0
  64. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-preceding-top-level-value.json5 +5 -0
  65. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-with-asterisks.json5 +7 -0
  66. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-following-array-element.json5 +3 -0
  67. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-following-top-level-value.json5 +1 -0
  68. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-in-string.json +1 -0
  69. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-preceding-top-level-value.json5 +2 -0
  70. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/top-level-block-comment.txt +4 -0
  71. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/top-level-inline-comment.txt +1 -0
  72. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/unterminated-block-comment.txt +5 -0
  73. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/empty.txt +0 -0
  74. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/npm-package.json +106 -0
  75. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/npm-package.json5 +106 -0
  76. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/readme-example.json5 +23 -0
  77. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/decimal-literal-with-exponent.json +1 -0
  78. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/decimal-literal-with-negative-exponent.json +1 -0
  79. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/decimal-literal.json +1 -0
  80. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal-with-lowercase-letter.json5 +1 -0
  81. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal-with-no-digits.txt +1 -0
  82. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal-with-uppercase-x.json5 +1 -0
  83. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal.json5 +1 -0
  84. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/leading-decimal-point.json5 +1 -0
  85. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/negative-decimal-literal.json +1 -0
  86. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/negative-hexadecimal-literal.json5 +1 -0
  87. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/negative-leading-decimal-point.json5 +1 -0
  88. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/noctal-literal-with-octal-digit-after-leading-zero.js +1 -0
  89. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/noctal-literal.js +1 -0
  90. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/octal-literal.txt +1 -0
  91. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/trailing-decimal-point-with-exponent.js +1 -0
  92. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/trailing-decimal-point.js +1 -0
  93. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/zero-literal.json +1 -0
  94. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/empty-object.json +1 -0
  95. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/illegal-unquoted-key-number.txt +3 -0
  96. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/illegal-unquoted-key-symbol.txt +3 -0
  97. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/leading-comma-object.txt +3 -0
  98. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/lone-trailing-comma-object.txt +3 -0
  99. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/no-comma-object.txt +4 -0
  100. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/reserved-unquoted-key.json5 +3 -0
  101. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/single-quoted-key.json5 +3 -0
  102. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/trailing-comma-object.json5 +3 -0
  103. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/unquoted-keys.json5 +8 -0
  104. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/strings/escaped-single-quoted-string.json5 +1 -0
  105. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/strings/multi-line-string.json5 +2 -0
  106. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/strings/single-quoted-string.json5 +1 -0
  107. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/todo/unicode-escaped-unquoted-key.json5 +3 -0
  108. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/todo/unicode-unquoted-key.json5 +3 -0
  109. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse.js +74 -0
  110. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/readme.md +23 -0
  111. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/require.js +18 -0
  112. data/node_modules/exports-loader/node_modules/loader-utils/package.json +54 -0
  113. data/node_modules/exports-loader/node_modules/loader-utils/test/index.js +62 -0
  114. data/node_modules/exports-loader/node_modules/source-map/.npmignore +2 -0
  115. data/node_modules/exports-loader/node_modules/source-map/.travis.yml +4 -0
  116. data/node_modules/exports-loader/node_modules/source-map/CHANGELOG.md +194 -0
  117. data/node_modules/exports-loader/node_modules/source-map/LICENSE +28 -0
  118. data/node_modules/exports-loader/node_modules/source-map/Makefile.dryice.js +166 -0
  119. data/node_modules/exports-loader/node_modules/source-map/README.md +475 -0
  120. data/node_modules/exports-loader/node_modules/source-map/build/assert-shim.js +56 -0
  121. data/node_modules/exports-loader/node_modules/source-map/build/mini-require.js +152 -0
  122. data/node_modules/exports-loader/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  123. data/node_modules/exports-loader/node_modules/source-map/build/prefix-utils.jsm +18 -0
  124. data/node_modules/exports-loader/node_modules/source-map/build/suffix-browser.js +8 -0
  125. data/node_modules/exports-loader/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  126. data/node_modules/exports-loader/node_modules/source-map/build/suffix-utils.jsm +21 -0
  127. data/node_modules/exports-loader/node_modules/source-map/build/test-prefix.js +8 -0
  128. data/node_modules/exports-loader/node_modules/source-map/build/test-suffix.js +3 -0
  129. data/node_modules/exports-loader/node_modules/source-map/lib/source-map.js +8 -0
  130. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/array-set.js +97 -0
  131. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/base64-vlq.js +142 -0
  132. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/base64.js +42 -0
  133. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/binary-search.js +80 -0
  134. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/mapping-list.js +86 -0
  135. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/source-map-consumer.js +575 -0
  136. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/source-map-generator.js +400 -0
  137. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/source-node.js +414 -0
  138. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/util.js +319 -0
  139. data/node_modules/exports-loader/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  140. data/node_modules/exports-loader/node_modules/source-map/node_modules/amdefine/README.md +171 -0
  141. data/node_modules/exports-loader/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  142. data/node_modules/exports-loader/node_modules/source-map/node_modules/amdefine/intercept.js +36 -0
  143. data/node_modules/exports-loader/node_modules/source-map/node_modules/amdefine/package.json +37 -0
  144. data/node_modules/exports-loader/node_modules/source-map/package.json +186 -0
  145. data/node_modules/exports-loader/node_modules/source-map/test/run-tests.js +62 -0
  146. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-api.js +26 -0
  147. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-array-set.js +104 -0
  148. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-base64-vlq.js +23 -0
  149. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-base64.js +35 -0
  150. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  151. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-dog-fooding.js +84 -0
  152. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-source-map-consumer.js +702 -0
  153. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-source-map-generator.js +679 -0
  154. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-source-node.js +612 -0
  155. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-util.js +216 -0
  156. data/node_modules/exports-loader/node_modules/source-map/test/source-map/util.js +192 -0
  157. data/node_modules/exports-loader/package.json +46 -0
  158. data/node_modules/imports-loader/.npmignore +1 -0
  159. data/node_modules/imports-loader/README.md +17 -0
  160. data/node_modules/imports-loader/index.js +46 -0
  161. data/node_modules/imports-loader/node_modules/loader-utils/.npmignore +1 -0
  162. data/node_modules/imports-loader/node_modules/loader-utils/README.md +129 -0
  163. data/node_modules/imports-loader/node_modules/loader-utils/index.js +229 -0
  164. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/.bin/json5 +41 -0
  165. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/.npmignore +0 -0
  166. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/LICENCE +23 -0
  167. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/README.md +214 -0
  168. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/big.js +1026 -0
  169. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/big.min.js +1 -0
  170. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/doc/bigAPI.html +1026 -0
  171. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/package.json +61 -0
  172. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/big-vs-bigdecimal.html +678 -0
  173. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/bigtime.js +324 -0
  174. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/BigDecTest.class +0 -0
  175. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/BigDecTest.java +60 -0
  176. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/LICENCE.txt +205 -0
  177. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/bigdecimal.js +592 -0
  178. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/bugs.js +53 -0
  179. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_ICU4J/BigDecimal-all-last.js +5724 -0
  180. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_ICU4J/BigDecimal-all-last.min.js +61 -0
  181. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_ICU4J/LICENCE.txt +30 -0
  182. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/abs.js +555 -0
  183. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/browser/big-vs-number.html +249 -0
  184. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/browser/every-test.html +66 -0
  185. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/browser/single-test.html +26 -0
  186. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/cmp.js +4305 -0
  187. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/div.js +9978 -0
  188. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/every-test.js +31 -0
  189. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/minus.js +1793 -0
  190. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/mod.js +1838 -0
  191. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/plus.js +1916 -0
  192. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/pow.js +1233 -0
  193. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/round.js +5173 -0
  194. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/sqrt.js +788 -0
  195. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/times.js +2159 -0
  196. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/toExponential.js +472 -0
  197. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/toFixed.js +1030 -0
  198. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/toPrecision.js +508 -0
  199. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/toString.js +1068 -0
  200. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/.npmignore +4 -0
  201. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/CHANGELOG.md +56 -0
  202. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/Makefile +27 -0
  203. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/README.md +173 -0
  204. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/lib/cli.js +41 -0
  205. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/lib/json5.js +462 -0
  206. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/lib/require.js +18 -0
  207. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/package.json +66 -0
  208. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/package.json5 +24 -0
  209. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/empty-array.json +1 -0
  210. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/leading-comma-array.js +3 -0
  211. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/lone-trailing-comma-array.js +3 -0
  212. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/no-comma-array.txt +4 -0
  213. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/regular-array.json +5 -0
  214. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/trailing-comma-array.json5 +3 -0
  215. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-following-array-element.json5 +6 -0
  216. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-following-top-level-value.json5 +5 -0
  217. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-in-string.json +1 -0
  218. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-preceding-top-level-value.json5 +5 -0
  219. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-with-asterisks.json5 +7 -0
  220. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-following-array-element.json5 +3 -0
  221. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-following-top-level-value.json5 +1 -0
  222. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-in-string.json +1 -0
  223. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-preceding-top-level-value.json5 +2 -0
  224. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/top-level-block-comment.txt +4 -0
  225. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/top-level-inline-comment.txt +1 -0
  226. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/unterminated-block-comment.txt +5 -0
  227. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/empty.txt +0 -0
  228. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/npm-package.json +106 -0
  229. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/npm-package.json5 +106 -0
  230. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/readme-example.json5 +23 -0
  231. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/decimal-literal-with-exponent.json +1 -0
  232. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/decimal-literal-with-negative-exponent.json +1 -0
  233. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/decimal-literal.json +1 -0
  234. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal-with-lowercase-letter.json5 +1 -0
  235. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal-with-no-digits.txt +1 -0
  236. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal-with-uppercase-x.json5 +1 -0
  237. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal.json5 +1 -0
  238. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/leading-decimal-point.json5 +1 -0
  239. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/negative-decimal-literal.json +1 -0
  240. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/negative-hexadecimal-literal.json5 +1 -0
  241. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/negative-leading-decimal-point.json5 +1 -0
  242. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/noctal-literal-with-octal-digit-after-leading-zero.js +1 -0
  243. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/noctal-literal.js +1 -0
  244. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/octal-literal.txt +1 -0
  245. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/trailing-decimal-point-with-exponent.js +1 -0
  246. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/trailing-decimal-point.js +1 -0
  247. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/zero-literal.json +1 -0
  248. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/empty-object.json +1 -0
  249. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/illegal-unquoted-key-number.txt +3 -0
  250. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/illegal-unquoted-key-symbol.txt +3 -0
  251. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/leading-comma-object.txt +3 -0
  252. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/lone-trailing-comma-object.txt +3 -0
  253. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/no-comma-object.txt +4 -0
  254. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/reserved-unquoted-key.json5 +3 -0
  255. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/single-quoted-key.json5 +3 -0
  256. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/trailing-comma-object.json5 +3 -0
  257. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/unquoted-keys.json5 +8 -0
  258. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/strings/escaped-single-quoted-string.json5 +1 -0
  259. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/strings/multi-line-string.json5 +2 -0
  260. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/strings/single-quoted-string.json5 +1 -0
  261. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/todo/unicode-escaped-unquoted-key.json5 +3 -0
  262. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/todo/unicode-unquoted-key.json5 +3 -0
  263. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse.js +74 -0
  264. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/readme.md +23 -0
  265. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/require.js +18 -0
  266. data/node_modules/imports-loader/node_modules/loader-utils/package.json +53 -0
  267. data/node_modules/imports-loader/node_modules/loader-utils/test/index.js +62 -0
  268. data/node_modules/imports-loader/node_modules/source-map/.npmignore +2 -0
  269. data/node_modules/imports-loader/node_modules/source-map/.travis.yml +4 -0
  270. data/node_modules/imports-loader/node_modules/source-map/CHANGELOG.md +194 -0
  271. data/node_modules/imports-loader/node_modules/source-map/LICENSE +28 -0
  272. data/node_modules/imports-loader/node_modules/source-map/Makefile.dryice.js +166 -0
  273. data/node_modules/imports-loader/node_modules/source-map/README.md +475 -0
  274. data/node_modules/imports-loader/node_modules/source-map/build/assert-shim.js +56 -0
  275. data/node_modules/imports-loader/node_modules/source-map/build/mini-require.js +152 -0
  276. data/node_modules/imports-loader/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  277. data/node_modules/imports-loader/node_modules/source-map/build/prefix-utils.jsm +18 -0
  278. data/node_modules/imports-loader/node_modules/source-map/build/suffix-browser.js +8 -0
  279. data/node_modules/imports-loader/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  280. data/node_modules/imports-loader/node_modules/source-map/build/suffix-utils.jsm +21 -0
  281. data/node_modules/imports-loader/node_modules/source-map/build/test-prefix.js +8 -0
  282. data/node_modules/imports-loader/node_modules/source-map/build/test-suffix.js +3 -0
  283. data/node_modules/imports-loader/node_modules/source-map/lib/source-map.js +8 -0
  284. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/array-set.js +97 -0
  285. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/base64-vlq.js +142 -0
  286. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/base64.js +42 -0
  287. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/binary-search.js +80 -0
  288. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/mapping-list.js +86 -0
  289. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/source-map-consumer.js +575 -0
  290. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/source-map-generator.js +400 -0
  291. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/source-node.js +414 -0
  292. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/util.js +319 -0
  293. data/node_modules/imports-loader/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  294. data/node_modules/imports-loader/node_modules/source-map/node_modules/amdefine/README.md +171 -0
  295. data/node_modules/imports-loader/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  296. data/node_modules/imports-loader/node_modules/source-map/node_modules/amdefine/intercept.js +36 -0
  297. data/node_modules/imports-loader/node_modules/source-map/node_modules/amdefine/package.json +37 -0
  298. data/node_modules/imports-loader/node_modules/source-map/package.json +186 -0
  299. data/node_modules/imports-loader/node_modules/source-map/test/run-tests.js +62 -0
  300. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-api.js +26 -0
  301. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-array-set.js +104 -0
  302. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-base64-vlq.js +23 -0
  303. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-base64.js +35 -0
  304. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  305. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-dog-fooding.js +84 -0
  306. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-source-map-consumer.js +702 -0
  307. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-source-map-generator.js +679 -0
  308. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-source-node.js +612 -0
  309. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-util.js +216 -0
  310. data/node_modules/imports-loader/node_modules/source-map/test/source-map/util.js +192 -0
  311. data/node_modules/imports-loader/package.json +46 -0
  312. data/package.json +4 -2
  313. data/webpack.config.js +3 -6
  314. metadata +312 -5
  315. data/app/assets/javascripts/vendor/jquery.js +0 -10346
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "big.js",
3
+ "description": "A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic",
4
+ "version": "2.5.1",
5
+ "keywords": [
6
+ "arbitrary",
7
+ "precision",
8
+ "arithmetic",
9
+ "big",
10
+ "number",
11
+ "decimal",
12
+ "float",
13
+ "biginteger",
14
+ "bigdecimal",
15
+ "bignumber",
16
+ "bigint",
17
+ "bignum"
18
+ ],
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "https://github.com/MikeMcl/big.js.git"
22
+ },
23
+ "main": "./big",
24
+ "author": {
25
+ "name": "Michael Mclaughlin",
26
+ "email": "M8ch88l@gmail.com"
27
+ },
28
+ "bugs": {
29
+ "url": "https://github.com/MikeMcl/big.js/issues"
30
+ },
31
+ "engines": {
32
+ "node": "*"
33
+ },
34
+ "license": "MIT",
35
+ "scripts": {
36
+ "test": "node ./test/every-test.js",
37
+ "build": "uglifyjs -o ./big.min.js ./big.js"
38
+ },
39
+ "homepage": "https://github.com/MikeMcl/big.js",
40
+ "_id": "big.js@2.5.1",
41
+ "dist": {
42
+ "shasum": "f3dbff02b6f561edb130925bf6d5f47163b061da",
43
+ "tarball": "http://registry.npmjs.org/big.js/-/big.js-2.5.1.tgz"
44
+ },
45
+ "_from": "big.js@~2.5.1",
46
+ "_npmVersion": "1.4.6",
47
+ "_npmUser": {
48
+ "name": "mikemcl",
49
+ "email": "M8ch88l@gmail.com"
50
+ },
51
+ "maintainers": [
52
+ {
53
+ "name": "mikemcl",
54
+ "email": "M8ch88l@gmail.com"
55
+ }
56
+ ],
57
+ "directories": {},
58
+ "_shasum": "f3dbff02b6f561edb130925bf6d5f47163b061da",
59
+ "_resolved": "https://registry.npmjs.org/big.js/-/big.js-2.5.1.tgz",
60
+ "readme": "ERROR: No README data found!"
61
+ }
@@ -0,0 +1,678 @@
1
+ <!DOCTYPE html>
2
+ <html lang='en'>
3
+ <head>
4
+ <meta charset='utf-8' />
5
+ <meta name="Author" content="M Mclaughlin">
6
+ <title>Testing Big against BigDecimal</title>
7
+ <style>
8
+ body {margin: 0; padding: 0; font-family: Calibri, Arial, Sans-Serif;}
9
+ div {margin: 1em 0;}
10
+ h1, #counter {text-align: center; background-color: rgb(225, 225, 225);
11
+ margin-top: 1em; padding: 0.2em; font-size: 1.2em;}
12
+ a {color: rgb(0, 153, 255); margin: 0 0.6em;}
13
+ .links {position: fixed; bottom: 1em; right: 2em; font-size: 0.8em;}
14
+ .form, #time {width: 36em; margin: 0 auto;}
15
+ .form {text-align: left; margin-top: 1.4em;}
16
+ .random input {margin-left: 1em;}
17
+ .small {font-size: 0.9em;}
18
+ .iterations input, .left {margin-left: 1.6em;}
19
+ .info span {margin-left: 1.6em; font-size: 0.9em;}
20
+ .info {margin-top: 1.6em;}
21
+ .random input, .iterations input {margin-right: 0.3em;}
22
+ .random label, .iterations label, .bigd label {font-size: 0.9em;
23
+ margin-left: 0.1em;}
24
+ .methods label {width: 3.25em; margin-left: 0.2em; display: inline-block;}
25
+ .red {color: red; font-size: 1.1em; font-weight: bold;}
26
+ button {width: 10em; height: 2em;}
27
+ #dp, #r, #digits, #reps {margin-left: 0.8em;}
28
+ #bigint {font-style: italic; display: none;}
29
+ #gwt, #icu4j, #bd, #bigint {margin-left: 1.5em;}
30
+ #division {display: none;}
31
+ #counter {font-size: 2em; background-color: rgb(235, 235, 235);}
32
+ #time {text-align: center;}
33
+ #results {margin: 0 1.4em;}
34
+ </style>
35
+ <script src='../big.js'></script>
36
+ <script src='./lib/bigdecimal_GWT/bigdecimal.js'></script>
37
+ </head>
38
+ <body>
39
+ <h1>Testing Big against BigDecimal</h1>
40
+
41
+ <div class='form'>
42
+
43
+ <div class='methods'>
44
+ <input type='radio' id=0 name=1/><label for=0>plus</label>
45
+ <input type='radio' id=1 name=1/><label for=1>minus</label>
46
+ <input type='radio' id=2 name=1/><label for=2>times</label>
47
+ <input type='radio' id=3 name=1/><label for=3>div</label>
48
+ <input type='radio' id=4 name=1/><label for=4>mod</label>
49
+ <input type='radio' id=5 name=1/><label for=5>pow</label>
50
+ <input type='radio' id=6 name=1/><label for=6>cmp</label>
51
+ </div>
52
+
53
+ <div class='bigd'>
54
+ <span>BigDecimal:</span>
55
+ <input type='radio' name=2 id='gwt' /><label for='gwt'>GWT</label>
56
+ <input type='radio' name=2 id='icu4j' /><label for='icu4j'>ICU4J</label>
57
+ <span id='bigint'>BigInteger</span>
58
+ <span id='bd'>add</span>
59
+ </div>
60
+
61
+ <div class='random'>
62
+ Random number digits:<input type='text' id='digits' size=12 />
63
+ <input type='radio' name=3 id='fix' /><label for='fix'>Fixed</label>
64
+ <input type='radio' name=3 id='max' /><label for='max'>Max</label>
65
+ <input type='checkbox' id='int' /><label for='int'>Integers only</label>
66
+ </div>
67
+
68
+ <div id='division'>
69
+ <span>Decimal places:<input type='text' id='dp' size=9 /></span>
70
+ <span class='left'>Rounding:<select id='r'>
71
+ <option>DOWN</option>
72
+ <option>HALF_UP</option>
73
+ <option>HALF_EVEN</option>
74
+ <option>UP</option>
75
+ </select></span>
76
+ </div>
77
+
78
+ <div class='iterations'>
79
+ Iterations:<input type='text' id='reps' size=11 />
80
+ <input type='checkbox' id='show'/><label for='show'>Show all (no timing)</label>
81
+ </div>
82
+
83
+ <div class='info'>
84
+ <button id='start'>Start</button>
85
+ <span>Click a method to stop</span>
86
+ <span>Press space bar to pause/unpause</span>
87
+ </div>
88
+
89
+ </div>
90
+
91
+ <div id='counter'>0</div>
92
+ <div id='time'></div>
93
+ <div id='results'></div>
94
+
95
+ <div class='links'>
96
+ <a href='https://github.com/MikeMcl/big.js' target='_blank'>Big</a>
97
+ <a href='https://github.com/iriscouch/bigdecimal.js' target='_blank'>GWT</a>
98
+ <a href='https://github.com/dtrebbien/BigDecimal.js/tree/' target='_blank'>ICU4J</a>
99
+ </div>
100
+
101
+ <script>
102
+
103
+ var i, complete, target, reps, time, prev, limit,
104
+ maxDigits, isFixed, isIntOnly, decimalPlaces, rounding, calcTimeout,
105
+ counterTimeout, script, isGWT, BigDecimal_GWT, BigDecimal_ICU4J,
106
+ bdM, bdTotal, bnM, bnTotal,
107
+ bdMs = ['add', 'subtract', 'multiply', 'divide', 'remainder', 'pow', 'compareTo'],
108
+ bnMs = ['plus', 'minus', 'times', 'div', 'mod', 'pow', 'cmp'],
109
+ numberOfMethods = bdMs.length,
110
+ rnd = [1, 4, 6, 0],
111
+ lastRounding = 1,
112
+ pause = false,
113
+ up = true,
114
+ timingVisible = false,
115
+ showAll = false,
116
+
117
+ // EDIT DEFAULTS HERE
118
+
119
+ DEFAULT_REPS = 10000,
120
+ DEFAULT_DIGITS = 20,
121
+ DEFAULT_DECIMAL_PLACES = 20,
122
+ DEFAULT_ROUNDING = 1,
123
+ MAX_POWER = 20,
124
+ CHANCE_NEGATIVE = 0.5, // 0 (never) to 1 (always)
125
+ CHANCE_INTEGER = 0.2, // 0 (never) to 1 (always)
126
+ MAX_RANDOM_EXPONENT = 100,
127
+ PAUSE_KEY = 32, // Space-bar
128
+ ICU4J_URL = './lib/bigdecimal_ICU4J/BigDecimal-all-last.js',
129
+
130
+ //////////////////////
131
+
132
+ $ = function (id) {return document.getElementById(id)},
133
+ $INPUTS = document.getElementsByTagName('input'),
134
+ $BD = $('bd'),
135
+ $BIGINT = $('bigint'),
136
+ $DIGITS = $('digits'),
137
+ $GWT = $('gwt'),
138
+ $ICU4J = $('icu4j'),
139
+ $FIX = $('fix'),
140
+ $MAX = $('max'),
141
+ $INT = $('int'),
142
+ $DIV = $('division'),
143
+ $DP = $('dp'),
144
+ $R = $('r'),
145
+ $REPS = $('reps'),
146
+ $SHOW = $('show'),
147
+ $START = $('start'),
148
+ $COUNTER = $('counter'),
149
+ $TIME = $('time'),
150
+ $RESULTS = $('results'),
151
+
152
+ // Get random number in normal notation.
153
+ getRandom = function () {
154
+ var z,
155
+ i = 0,
156
+ // n is the number of digits - 1
157
+ n = isFixed ? maxDigits - 1 : Math.random() * (maxDigits || 1) | 0,
158
+ r = ( Math.random() * 10 | 0 ) + '';
159
+
160
+ if (n) {
161
+
162
+ if (r == '0')
163
+ r = isIntOnly ? ( ( Math.random() * 9 | 0 ) + 1 ) + '' : (z = r + '.');
164
+
165
+ for ( ; i++ < n; r += Math.random() * 10 | 0 ){}
166
+
167
+ if (!z && !isIntOnly && Math.random() > CHANCE_INTEGER) {
168
+ r = r.slice( 0, i = (Math.random() * n | 0) + 1 ) +
169
+ '.' + r.slice(i);
170
+ }
171
+ }
172
+
173
+ // Avoid division by zero error with division and modulo
174
+ if ((bdM == 'divide' || bdM == 'remainder') && parseFloat(r) === 0)
175
+ r = ( ( Math.random() * 9 | 0 ) + 1 ) + '';
176
+
177
+ return Math.random() > CHANCE_NEGATIVE ? r : '-' + r;
178
+ },
179
+
180
+ // Get random number in exponential notation (if isIntOnly is false).
181
+ // GWT BigDecimal BigInteger does not accept exponential notation.
182
+ //getRandom = function () {
183
+ // var i = 0,
184
+ // // n is the number of significant digits - 1
185
+ // n = isFixed ? maxDigits - 1 : Math.random() * (maxDigits || 1) | 0,
186
+ // r = ( ( Math.random() * 9 | 0 ) + 1 ) + '';
187
+ //
188
+ // for (; i++ < n; r += Math.random() * 10 | 0 ){}
189
+ //
190
+ // if ( !isIntOnly ) {
191
+ //
192
+ // // Add exponent.
193
+ // r += 'e' + ( Math.random() > 0.5 ? '+' : '-' ) +
194
+ // ( Math.random() * MAX_RANDOM_EXPONENT | 0 );
195
+ // }
196
+ //
197
+ // return Math.random() > CHANCE_NEGATIVE ? r : '-' + r
198
+ //},
199
+
200
+ showTimings = function () {
201
+ var i, bdS, bnS,
202
+ sp = '',
203
+ r = bnTotal < bdTotal
204
+ ? (bnTotal ? bdTotal / bnTotal : bdTotal)
205
+ : (bdTotal ? bnTotal / bdTotal : bnTotal);
206
+
207
+ bdS = 'BigDecimal: ' + (bdTotal || '<1');
208
+ bnS = 'Big: ' + (bnTotal || '<1');
209
+
210
+ $TIME.innerHTML =
211
+ 'No mismatches<div>' + bdS + ' ms<br>' + bnS + ' ms</div>' +
212
+ ((r = parseFloat(r.toFixed(1))) > 1
213
+ ? 'Big' + (bnTotal < bdTotal ? '' : 'Decimal') + ' was ' +
214
+ r + ' times faster'
215
+ : 'Times approximately equal');
216
+ },
217
+
218
+ clear = function () {
219
+ clearTimeout(calcTimeout);
220
+ clearTimeout(counterTimeout);
221
+
222
+ $COUNTER.style.textDecoration = 'none';
223
+ $COUNTER.innerHTML = '0';
224
+ $TIME.innerHTML = $RESULTS.innerHTML = '';
225
+ $START.innerHTML = 'Start';
226
+ },
227
+
228
+ begin = function () {
229
+ var i;
230
+ clear();
231
+
232
+ target = +$REPS.value;
233
+ if (!(target > 0)) return;
234
+
235
+ $START.innerHTML = 'Restart';
236
+
237
+ i = +$DIGITS.value;
238
+ $DIGITS.value = maxDigits = i && isFinite(i) ? i : DEFAULT_DIGITS;
239
+
240
+ for (i = 0; i < numberOfMethods; i++) {
241
+ if ($INPUTS[i].checked) {
242
+ bnM = bnMs[$INPUTS[i].id];
243
+ bdM = bdMs[$INPUTS[i].id];
244
+ break;
245
+ }
246
+ }
247
+
248
+ if (bdM == 'divide') {
249
+ i = +$DP.value;
250
+ $DP.value = decimalPlaces = isFinite(i) ? i : DEFAULT_DECIMAL_PLACES;
251
+ rounding = rnd[ Big.RM = $R.selectedIndex ];
252
+ Big.DP = decimalPlaces;
253
+ }
254
+
255
+ isFixed = $FIX.checked;
256
+ isIntOnly = $INT.checked;
257
+ showAll = $SHOW.checked;
258
+
259
+ BigDecimal = (isGWT = $GWT.checked)
260
+ ? (isIntOnly ? BigInteger : BigDecimal_GWT)
261
+ : BigDecimal_ICU4J;
262
+
263
+ prev = limit = complete = bdTotal = bnTotal = 0;
264
+ pause = false;
265
+
266
+ reps = showAll ? 1 : 0.5;
267
+ time = +new Date();
268
+
269
+ setTimeout(updateCounter, 0);
270
+ },
271
+
272
+ updateCounter = function () {
273
+
274
+ if (pause) {
275
+ if (!timingVisible && !showAll) {
276
+ showTimings();
277
+ timingVisible = true;
278
+ }
279
+ counterTimeout = setTimeout(updateCounter, 50);
280
+ return
281
+ }
282
+
283
+ $COUNTER.innerHTML = complete;
284
+
285
+ if (complete < target) {
286
+ if (timingVisible) {
287
+ $TIME.innerHTML = '';
288
+ timingVisible = false;
289
+ }
290
+
291
+ if (!showAll) {
292
+
293
+ // Adjust reps so counter is updated every second-ish
294
+ if (prev != reps) {
295
+
296
+ // reps too low
297
+ if (+new Date() - time < 1e3) {
298
+ prev = reps;
299
+
300
+ if (limit) {
301
+ reps += ((limit - reps) / 2);
302
+ } else {
303
+ reps *= 2;
304
+ }
305
+
306
+ // reps too high
307
+ } else {
308
+ limit = reps;
309
+ reps -= ((reps - prev) / 2);
310
+ }
311
+
312
+ reps = Math.floor(reps) || 1;
313
+ time = +new Date();
314
+ }
315
+
316
+ if (complete + reps > target) {
317
+ reps = target - complete;
318
+ }
319
+ }
320
+
321
+ complete += reps;
322
+ calcTimeout = setTimeout(calc, 0);
323
+
324
+ // Finished - show timings summary
325
+ } else {
326
+ $START.innerHTML = 'Start';
327
+ $COUNTER.style.textDecoration = 'underline';
328
+ if (!showAll) {
329
+ showTimings();
330
+ }
331
+ }
332
+ },
333
+
334
+ calc = function () {
335
+
336
+ var start, bdT, bnT, bdR, bnR, pow_ys,
337
+ xs = [reps],
338
+ ys = [reps],
339
+ bdRs = [reps],
340
+ bnRs = [reps];
341
+
342
+
343
+ // GENERATE RANDOM OPERANDS
344
+
345
+ for (i = 0; i < reps; i++) {
346
+ xs[i] = getRandom();
347
+ }
348
+
349
+ if (bdM == 'pow') {
350
+
351
+ // GWT BigDecimal and Big pow argument must be Number type and integer
352
+ for (i = 0; i < reps; i++) {
353
+ ys[i] = Math.floor(Math.random() * (MAX_POWER + 1));
354
+ }
355
+
356
+ // ICU4J pow argument must be a BigDecimal, and that must be passed a string
357
+ if (!isGWT) {
358
+ pow_ys = [reps];
359
+
360
+ for (i = 0; i < reps; i++) {
361
+ pow_ys[i] = new BigDecimal(ys[i] + '');
362
+ }
363
+ }
364
+ } else {
365
+ for (i = 0; i < reps; i++) {
366
+ ys[i] = getRandom();
367
+ }
368
+ }
369
+
370
+
371
+ //********************************************************************//
372
+ //************************** START TIMING ****************************//
373
+ //********************************************************************//
374
+
375
+
376
+ // BIGDECIMAL
377
+
378
+ if (bdM == 'divide') {
379
+
380
+ start = +new Date();
381
+ for (i = 0; i < reps; i++) {
382
+ bdRs[i] = new BigDecimal(xs[i])[bdM](new BigDecimal(ys[i]),
383
+ decimalPlaces, rounding);
384
+ }
385
+ bdT = +new Date() - start;
386
+
387
+ } else if (bdM == 'pow') {
388
+
389
+ if (isGWT) {
390
+
391
+ start = +new Date();
392
+ for (i = 0; i < reps; i++) {
393
+ bdRs[i] = new BigDecimal(xs[i])[bdM](ys[i]);
394
+ }
395
+ bdT = +new Date() - start;
396
+
397
+ } else {
398
+
399
+ start = +new Date();
400
+ for (i = 0; i < reps; i++) {
401
+ bdRs[i] = new BigDecimal(xs[i])[bdM](pow_ys[i]);
402
+ }
403
+ bdT = +new Date() - start;
404
+
405
+ }
406
+ } else {
407
+
408
+ start = +new Date();
409
+ for (i = 0; i < reps; i++) {
410
+ bdRs[i] = new BigDecimal(xs[i])[bdM](new BigDecimal(ys[i]));
411
+ }
412
+ bdT = +new Date() - start;
413
+
414
+ }
415
+
416
+
417
+ // BIG
418
+
419
+ if (bdM == 'pow') {
420
+
421
+ start = +new Date();
422
+ for (i = 0; i < reps; i++) {
423
+ bnRs[i] = new Big(xs[i])[bnM](ys[i]);
424
+ }
425
+ bnT = +new Date() - start;
426
+
427
+ } else {
428
+
429
+ start = +new Date();
430
+ for (i = 0; i < reps; i++) {
431
+ bnRs[i] = new Big(xs[i])[bnM](new Big(ys[i]));
432
+ }
433
+ bnT = +new Date() - start;
434
+
435
+ }
436
+
437
+
438
+ //********************************************************************//
439
+ //**************************** END TIMING ****************************//
440
+ //********************************************************************//
441
+
442
+
443
+ // CHECK FOR MISMATCHES
444
+
445
+ for (i = 0; i < reps; i++) {
446
+ // Ensure non-exponential notation
447
+ bnR = bnRs[i].toFixed();
448
+
449
+ // Remove any trailing zeros from BigDecimal result
450
+ if (isGWT) {
451
+ bdR = bdM == 'compareTo' || isIntOnly
452
+ ? bdRs[i].toString()
453
+ : bdRs[i].stripTrailingZeros().toPlainString();
454
+ } else {
455
+
456
+ // No toPlainString() or stripTrailingZeros() in ICU4J
457
+ bdR = bdRs[i].toString();
458
+
459
+ if (bdR.indexOf('.') != -1) {
460
+ bdR = bdR.replace(/\.?0+$/, '');
461
+ }
462
+ }
463
+
464
+ if (bdR !== bnR) {
465
+
466
+ $RESULTS.innerHTML =
467
+ '<span class="red">Breaking on first mismatch:</span>' +
468
+ '<br><br>' +xs[i] + '<br>' + bnM + '<br>' + ys[i] +
469
+ '<br><br>BigDecimal<br>' + bdR + '<br>' + bnR + '<br>Big';
470
+
471
+ if (bdM == 'divide') {
472
+ $RESULTS.innerHTML += '<br><br>Decimal places: ' +
473
+ decimalPlaces + '<br>Rounding mode: ' + rounding;
474
+ }
475
+ return;
476
+ } else if (showAll) {
477
+ $RESULTS.innerHTML = xs[i] + '<br>' + bnM + '<br>' + ys[i] +
478
+ '<br><br>BigDecimal<br>' + bdR + '<br>' + bnR + '<br>Big';
479
+ }
480
+ }
481
+
482
+ bdTotal += bdT;
483
+ bnTotal += bnT;
484
+
485
+ updateCounter();
486
+ };
487
+
488
+
489
+ // EVENT HANDLERS
490
+
491
+ document.onkeyup = function (evt) {
492
+ evt = evt || window.event;
493
+ if ((evt.keyCode || evt.which) == PAUSE_KEY) {
494
+ up = true;
495
+ }
496
+ };
497
+ document.onkeydown = function (evt) {
498
+ evt = evt || window.event;
499
+ if (up && (evt.keyCode || evt.which) == PAUSE_KEY) {
500
+ pause = !pause;
501
+ up = false;
502
+ }
503
+ };
504
+
505
+ // Big methods' radio buttons' event handlers
506
+ for (i = 0; i < numberOfMethods; i++) {
507
+ $INPUTS[i].checked = false;
508
+ $INPUTS[i].disabled = false;
509
+ $INPUTS[i].onclick = function () {
510
+ clear();
511
+ lastRounding = $R.options.selectedIndex;
512
+ $DIV.style.display = 'none';
513
+ bnM = bnMs[this.id];
514
+ $BD.innerHTML = bdM = bdMs[this.id];
515
+ };
516
+ }
517
+ $INPUTS[3].onclick = function () {
518
+ clear();
519
+ $R.options.selectedIndex = lastRounding;
520
+ $DIV.style.display = 'block';
521
+ bnM = bnMs[this.id];
522
+ $BD.innerHTML = bdM = bdMs[this.id];
523
+ };
524
+
525
+ // Show/hide BigInteger and disable/un-disable division accordingly as BigInteger
526
+ // throws an exception if division gives "no exact representable decimal result"
527
+ $INT.onclick = function () {
528
+ if (this.checked && $GWT.checked) {
529
+ if ($INPUTS[3].checked) {
530
+ $INPUTS[3].checked = false;
531
+ $INPUTS[0].checked = true;
532
+ $BD.innerHTML = bdMs[$INPUTS[0].id];
533
+ $DIV.style.display = 'none';
534
+ }
535
+ $INPUTS[3].disabled = true;
536
+ $BIGINT.style.display = 'inline';
537
+ } else {
538
+ $INPUTS[3].disabled = false;
539
+ $BIGINT.style.display = 'none';
540
+ }
541
+ };
542
+ $ICU4J.onclick = function () {
543
+ $INPUTS[3].disabled = false;
544
+ $BIGINT.style.display = 'none';
545
+ };
546
+ $GWT.onclick = function () {
547
+ if ($INT.checked) {
548
+ if ($INPUTS[3].checked) {
549
+ $INPUTS[3].checked = false;
550
+ $INPUTS[0].checked = true;
551
+ $BD.innerHTML = bdMs[$INPUTS[0].id];
552
+ $DIV.style.display = 'none';
553
+ }
554
+ $INPUTS[3].disabled = true;
555
+ $BIGINT.style.display = 'inline';
556
+ }
557
+ };
558
+
559
+ Big.DP = 20;
560
+ Big.RM = 1;
561
+
562
+ // Set defaults
563
+ $MAX.checked = $INPUTS[0].checked = $GWT.checked = true;
564
+ $SHOW.checked = $INT.checked = false;
565
+ $REPS.value = DEFAULT_REPS;
566
+ $DIGITS.value = DEFAULT_DIGITS;
567
+ $DP.value = DEFAULT_DECIMAL_PLACES;
568
+ $R.option = DEFAULT_ROUNDING;
569
+
570
+ BigDecimal_GWT = BigDecimal;
571
+ BigDecimal = undefined;
572
+
573
+ // Load ICU4J BigDecimal
574
+ script = document.createElement("script");
575
+ script.src = ICU4J_URL;
576
+ script.onload = script.onreadystatechange = function () {
577
+ if (!script.readyState || /loaded|complete/.test(script.readyState)) {
578
+ script = null;
579
+ BigDecimal_ICU4J = BigDecimal;
580
+ $START.onmousedown = begin;
581
+ }
582
+ };
583
+ document.getElementsByTagName("head")[0].appendChild(script);
584
+
585
+
586
+
587
+ /*
588
+
589
+ NOTES:
590
+
591
+
592
+ ICU4J
593
+ =====
594
+ IBM java package: com.ibm.icu.math
595
+ pow's argument must be a BigDecimal.
596
+ Among other differences, doesn't have .toPlainString() or .stripTrailingZeros().
597
+ Exports BigDecimal only.
598
+ Much faster than gwt on Firefox, on Chrome it varies with the method.
599
+
600
+
601
+ GWT
602
+ ===
603
+ Java standard class library: java.math.BigDecimal
604
+
605
+ Exports:
606
+ RoundingMode
607
+ MathContext
608
+ BigDecimal
609
+ BigInteger
610
+
611
+ BigDecimal properties:
612
+ ROUND_CEILING
613
+ ROUND_DOWN
614
+ ROUND_FLOOR
615
+ ROUND_HALF_DOWN
616
+ ROUND_HALF_EVEN
617
+ ROUND_HALF_UP
618
+ ROUND_UNNECESSARY
619
+ ROUND_UP
620
+ __init__
621
+ valueOf
622
+ log
623
+ logObj
624
+ ONE
625
+ TEN
626
+ ZERO
627
+
628
+ BigDecimal instance properties/methods:
629
+ ( for (var i in new BigDecimal('1').__gwt_instance.__gwtex_wrap) {...} )
630
+
631
+ byteValueExact
632
+ compareTo
633
+ doubleValue
634
+ equals
635
+ floatValue
636
+ hashCode
637
+ intValue
638
+ intValueExact
639
+ max
640
+ min
641
+ movePointLeft
642
+ movePointRight
643
+ precision
644
+ round
645
+ scale
646
+ scaleByPowerOfTen
647
+ shortValueExact
648
+ signum
649
+ stripTrailingZeros
650
+ toBigInteger
651
+ toBigIntegerExact
652
+ toEngineeringString
653
+ toPlainString
654
+ toString
655
+ ulp
656
+ unscaledValue
657
+ longValue
658
+ longValueExact
659
+ abs
660
+ add
661
+ divide
662
+ divideToIntegralValue
663
+ multiply
664
+ negate
665
+ plus
666
+ pow
667
+ remainder
668
+ setScale
669
+ subtract
670
+ divideAndRemainder
671
+
672
+ */
673
+
674
+ </script>
675
+ </body>
676
+ </html>
677
+
678
+