backports 3.16.0 → 3.16.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (404) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +658 -0
  3. data/README.md +524 -0
  4. data/backports.gemspec +5 -1
  5. data/lib/backports/1.8.7.rb +7 -0
  6. data/lib/backports/1.9.2/stdlib/matrix.rb +5 -0
  7. data/lib/backports/rails/array.rb +4 -0
  8. data/lib/backports/rails/enumerable.rb +4 -0
  9. data/lib/backports/rails/hash.rb +4 -0
  10. data/lib/backports/rails/kernel.rb +4 -0
  11. data/lib/backports/rails/module.rb +4 -0
  12. data/lib/backports/rails/string.rb +4 -0
  13. data/lib/backports/std_lib.rb +3 -0
  14. data/lib/backports/tools/deprecation.rb +12 -0
  15. data/lib/backports/version.rb +1 -1
  16. metadata +7 -511
  17. data/.document +0 -6
  18. data/.gitignore +0 -9
  19. data/.gitmodules +0 -6
  20. data/.irbrc +0 -3
  21. data/.travis.yml +0 -19
  22. data/CHANGELOG.rdoc +0 -504
  23. data/README.rdoc +0 -445
  24. data/Rakefile +0 -192
  25. data/default.mspec +0 -14
  26. data/frozen_old_spec/tags/1.8.6/core/argf/each_line_spec.rb +0 -6
  27. data/frozen_old_spec/tags/1.8.6/core/argf/each_spec.rb +0 -6
  28. data/frozen_old_spec/tags/1.8.6/core/argf/lines_spec.rb +0 -6
  29. data/frozen_old_spec/tags/1.8.6/core/array/append_spec.rb +0 -1
  30. data/frozen_old_spec/tags/1.8.6/core/array/collect_spec.rb +0 -7
  31. data/frozen_old_spec/tags/1.8.6/core/array/rotate_spec.rb +0 -2
  32. data/frozen_old_spec/tags/1.8.6/core/array/uniq_spec.rb +0 -3
  33. data/frozen_old_spec/tags/1.8.6/core/complex/to_r_spec.rb +0 -3
  34. data/frozen_old_spec/tags/1.8.6/core/enumerable/all_spec.rb +0 -1
  35. data/frozen_old_spec/tags/1.8.6/core/enumerable/any_spec.rb +0 -2
  36. data/frozen_old_spec/tags/1.8.6/core/enumerable/each_entry_spec.rb +0 -1
  37. data/frozen_old_spec/tags/1.8.6/core/enumerable/none_spec.rb +0 -1
  38. data/frozen_old_spec/tags/1.8.6/core/enumerable/one_spec.rb +0 -1
  39. data/frozen_old_spec/tags/1.8.6/core/enumerator/next_spec.rb +0 -1
  40. data/frozen_old_spec/tags/1.8.6/core/env/to_h_spec.rb +0 -2
  41. data/frozen_old_spec/tags/1.8.6/core/file/join_spec.rb +0 -3
  42. data/frozen_old_spec/tags/1.8.6/core/file/lchmod_spec.rb +0 -2
  43. data/frozen_old_spec/tags/1.8.6/core/file/new_spec.rb +0 -2
  44. data/frozen_old_spec/tags/1.8.6/core/file/open_spec.rb +0 -13
  45. data/frozen_old_spec/tags/1.8.6/core/file/to_path_spec.rb +0 -1
  46. data/frozen_old_spec/tags/1.8.6/core/fixnum/fdiv_spec.rb +0 -1
  47. data/frozen_old_spec/tags/1.8.6/core/gc/stress_spec.rb +0 -2
  48. data/frozen_old_spec/tags/1.8.6/core/hash/assoc_spec.rb +0 -1
  49. data/frozen_old_spec/tags/1.8.6/core/hash/constructor_spec.rb +0 -3
  50. data/frozen_old_spec/tags/1.8.6/core/hash/default_proc_spec.rb +0 -3
  51. data/frozen_old_spec/tags/1.8.6/core/hash/delete_if_spec.rb +0 -1
  52. data/frozen_old_spec/tags/1.8.6/core/hash/each_pair_spec.rb +0 -1
  53. data/frozen_old_spec/tags/1.8.6/core/hash/eql_spec.rb +0 -3
  54. data/frozen_old_spec/tags/1.8.6/core/hash/hash_spec.rb +0 -3
  55. data/frozen_old_spec/tags/1.8.6/core/hash/keep_if_spec.rb +0 -2
  56. data/frozen_old_spec/tags/1.8.6/core/hash/rassoc_spec.rb +0 -1
  57. data/frozen_old_spec/tags/1.8.6/core/hash/reject_spec.rb +0 -2
  58. data/frozen_old_spec/tags/1.8.6/core/hash/select_spec.rb +0 -8
  59. data/frozen_old_spec/tags/1.8.6/core/integer/round_spec.rb +0 -2
  60. data/frozen_old_spec/tags/1.8.6/core/io/binread_spec.rb +0 -7
  61. data/frozen_old_spec/tags/1.8.6/core/io/chars_spec.rb +0 -1
  62. data/frozen_old_spec/tags/1.8.6/core/io/each_char_spec.rb +0 -1
  63. data/frozen_old_spec/tags/1.8.6/core/io/lines_spec.rb +0 -1
  64. data/frozen_old_spec/tags/1.8.6/core/io/open_spec.rb +0 -24
  65. data/frozen_old_spec/tags/1.8.6/core/io/ungetbyte_spec.rb +0 -4
  66. data/frozen_old_spec/tags/1.8.6/core/io/write_spec.rb +0 -5
  67. data/frozen_old_spec/tags/1.8.6/core/kernel/__callee___spec.rb +0 -6
  68. data/frozen_old_spec/tags/1.8.6/core/kernel/__method___spec.rb +0 -1
  69. data/frozen_old_spec/tags/1.8.6/core/kernel/define_singleton_method_spec.rb +0 -2
  70. data/frozen_old_spec/tags/1.8.6/core/kernel/public_method_spec.rb +0 -2
  71. data/frozen_old_spec/tags/1.8.6/core/kernel/require_relative_spec.rb +0 -3
  72. data/frozen_old_spec/tags/1.8.6/core/math/log2_spec.rb +0 -6
  73. data/frozen_old_spec/tags/1.8.6/core/math/log_spec.rb +0 -3
  74. data/frozen_old_spec/tags/1.8.6/core/module/alias_method_spec.rb +0 -1
  75. data/frozen_old_spec/tags/1.8.6/core/module/attr_accessor_spec.rb +0 -2
  76. data/frozen_old_spec/tags/1.8.6/core/module/attr_reader_spec.rb +0 -2
  77. data/frozen_old_spec/tags/1.8.6/core/module/attr_spec.rb +0 -1
  78. data/frozen_old_spec/tags/1.8.6/core/module/attr_writer_spec.rb +0 -2
  79. data/frozen_old_spec/tags/1.8.6/core/module/class_exec_spec.rb +0 -2
  80. data/frozen_old_spec/tags/1.8.6/core/module/define_method_spec.rb +0 -1
  81. data/frozen_old_spec/tags/1.8.6/core/module/module_exec_spec.rb +0 -2
  82. data/frozen_old_spec/tags/1.8.6/core/module/remove_method_spec.rb +0 -1
  83. data/frozen_old_spec/tags/1.8.6/core/module/undef_method_spec.rb +0 -1
  84. data/frozen_old_spec/tags/1.8.6/core/nil/dup_spec.rb +0 -1
  85. data/frozen_old_spec/tags/1.8.6/core/numeric/step_spec.rb +0 -12
  86. data/frozen_old_spec/tags/1.8.6/core/proc/curry_spec.rb +0 -4
  87. data/frozen_old_spec/tags/1.8.6/core/range/step_spec.rb +0 -12
  88. data/frozen_old_spec/tags/1.8.6/core/string/getbyte_spec.rb +0 -6
  89. data/frozen_old_spec/tags/1.8.6/core/string/partition_spec.rb +0 -1
  90. data/frozen_old_spec/tags/1.8.6/core/string/prepend_spec.rb +0 -1
  91. data/frozen_old_spec/tags/1.8.6/core/string/rpartition_spec.rb +0 -1
  92. data/frozen_old_spec/tags/1.8.6/core/string/setbyte_spec.rb +0 -5
  93. data/frozen_old_spec/tags/1.8.6/core/string/upto_spec.rb +0 -1
  94. data/frozen_old_spec/tags/1.8.6/core/symbol/capitalize_spec.rb +0 -3
  95. data/frozen_old_spec/tags/1.8.6/core/symbol/comparison_spec.rb +0 -1
  96. data/frozen_old_spec/tags/1.8.6/core/symbol/downcase_spec.rb +0 -2
  97. data/frozen_old_spec/tags/1.8.6/core/symbol/element_reference_spec.rb +0 -4
  98. data/frozen_old_spec/tags/1.8.6/core/symbol/empty_spec.rb +0 -1
  99. data/frozen_old_spec/tags/1.8.6/core/symbol/match_spec.rb +0 -2
  100. data/frozen_old_spec/tags/1.8.6/core/symbol/swapcase_spec.rb +0 -2
  101. data/frozen_old_spec/tags/1.8.6/core/symbol/to_proc_spec.rb +0 -1
  102. data/frozen_old_spec/tags/1.8.6/core/symbol/upcase_spec.rb +0 -1
  103. data/frozen_old_spec/tags/1.8.7/core/array/append_spec.rb +0 -1
  104. data/frozen_old_spec/tags/1.8.7/core/array/keep_if_spec.rb +0 -2
  105. data/frozen_old_spec/tags/1.8.7/core/array/rotate_spec.rb +0 -2
  106. data/frozen_old_spec/tags/1.8.7/core/array/select_spec.rb +0 -2
  107. data/frozen_old_spec/tags/1.8.7/core/array/uniq_spec.rb +0 -3
  108. data/frozen_old_spec/tags/1.8.7/core/complex/to_r_spec.rb +0 -3
  109. data/frozen_old_spec/tags/1.8.7/core/enumerable/all_spec.rb +0 -1
  110. data/frozen_old_spec/tags/1.8.7/core/enumerable/any_spec.rb +0 -2
  111. data/frozen_old_spec/tags/1.8.7/core/enumerable/collect_concat_spec.rb +0 -1
  112. data/frozen_old_spec/tags/1.8.7/core/enumerable/flat_map_spec.rb +0 -1
  113. data/frozen_old_spec/tags/1.8.7/core/enumerable/none_spec.rb +0 -1
  114. data/frozen_old_spec/tags/1.8.7/core/enumerable/one_spec.rb +0 -1
  115. data/frozen_old_spec/tags/1.8.7/core/env/to_h_spec.rb +0 -2
  116. data/frozen_old_spec/tags/1.8.7/core/file/lchmod_spec.rb +0 -2
  117. data/frozen_old_spec/tags/1.8.7/core/file/new_spec.rb +0 -1
  118. data/frozen_old_spec/tags/1.8.7/core/file/open_spec.rb +0 -5
  119. data/frozen_old_spec/tags/1.8.7/core/file/readlink_spec.rb +0 -6
  120. data/frozen_old_spec/tags/1.8.7/core/file/to_path_spec.rb +0 -1
  121. data/frozen_old_spec/tags/1.8.7/core/hash/assoc_spec.rb +0 -1
  122. data/frozen_old_spec/tags/1.8.7/core/hash/default_proc_spec.rb +0 -3
  123. data/frozen_old_spec/tags/1.8.7/core/hash/keep_if_spec.rb +0 -2
  124. data/frozen_old_spec/tags/1.8.7/core/hash/merge_spec.rb +0 -3
  125. data/frozen_old_spec/tags/1.8.7/core/hash/rassoc_spec.rb +0 -1
  126. data/frozen_old_spec/tags/1.8.7/core/hash/select_spec.rb +0 -1
  127. data/frozen_old_spec/tags/1.8.7/core/hash/to_h_spec.rb +0 -1
  128. data/frozen_old_spec/tags/1.8.7/core/hash/update_spec.rb +0 -3
  129. data/frozen_old_spec/tags/1.8.7/core/integer/round_spec.rb +0 -2
  130. data/frozen_old_spec/tags/1.8.7/core/io/binread_spec.rb +0 -7
  131. data/frozen_old_spec/tags/1.8.7/core/io/open_spec.rb +0 -32
  132. data/frozen_old_spec/tags/1.8.7/core/io/ungetbyte_spec.rb +0 -4
  133. data/frozen_old_spec/tags/1.8.7/core/io/write_spec.rb +0 -5
  134. data/frozen_old_spec/tags/1.8.7/core/kernel/__callee___spec.rb +0 -6
  135. data/frozen_old_spec/tags/1.8.7/core/kernel/define_singleton_method_spec.rb +0 -2
  136. data/frozen_old_spec/tags/1.8.7/core/kernel/public_method_spec.rb +0 -1
  137. data/frozen_old_spec/tags/1.8.7/core/kernel/require_relative_spec.rb +0 -3
  138. data/frozen_old_spec/tags/1.8.7/core/math/log2_spec.rb +0 -6
  139. data/frozen_old_spec/tags/1.8.7/core/math/log_spec.rb +0 -3
  140. data/frozen_old_spec/tags/1.8.7/core/module/alias_method_spec.rb +0 -7
  141. data/frozen_old_spec/tags/1.8.7/core/module/attr_accessor_spec.rb +0 -2
  142. data/frozen_old_spec/tags/1.8.7/core/module/attr_reader_spec.rb +0 -2
  143. data/frozen_old_spec/tags/1.8.7/core/module/attr_spec.rb +0 -2
  144. data/frozen_old_spec/tags/1.8.7/core/module/attr_writer_spec.rb +0 -2
  145. data/frozen_old_spec/tags/1.8.7/core/module/define_method_spec.rb +0 -1
  146. data/frozen_old_spec/tags/1.8.7/core/module/include_spec.rb +0 -3
  147. data/frozen_old_spec/tags/1.8.7/core/module/remove_method_spec.rb +0 -3
  148. data/frozen_old_spec/tags/1.8.7/core/module/undef_method_spec.rb +0 -3
  149. data/frozen_old_spec/tags/1.8.7/core/nil/dup_spec.rb +0 -1
  150. data/frozen_old_spec/tags/1.8.7/core/proc/curry_spec.rb +0 -3
  151. data/frozen_old_spec/tags/1.8.7/core/proc/yield_spec.rb +0 -4
  152. data/frozen_old_spec/tags/1.8.7/core/range/size_spec.rb +0 -1
  153. data/frozen_old_spec/tags/1.8.7/core/string/getbyte_spec.rb +0 -5
  154. data/frozen_old_spec/tags/1.8.7/core/string/prepend_spec.rb +0 -1
  155. data/frozen_old_spec/tags/1.8.7/core/string/setbyte_spec.rb +0 -5
  156. data/frozen_old_spec/tags/1.8.7/core/struct/new_spec.rb +0 -3
  157. data/frozen_old_spec/tags/1.8.7/core/symbol/capitalize_spec.rb +0 -3
  158. data/frozen_old_spec/tags/1.8.7/core/symbol/comparison_spec.rb +0 -1
  159. data/frozen_old_spec/tags/1.8.7/core/symbol/downcase_spec.rb +0 -2
  160. data/frozen_old_spec/tags/1.8.7/core/symbol/element_reference_spec.rb +0 -4
  161. data/frozen_old_spec/tags/1.8.7/core/symbol/empty_spec.rb +0 -1
  162. data/frozen_old_spec/tags/1.8.7/core/symbol/match_spec.rb +0 -2
  163. data/frozen_old_spec/tags/1.8.7/core/symbol/swapcase_spec.rb +0 -2
  164. data/frozen_old_spec/tags/1.8.7/core/symbol/upcase_spec.rb +0 -1
  165. data/frozen_old_spec/tags/1.9.1/core/array/append_spec.rb +0 -1
  166. data/frozen_old_spec/tags/1.9.1/core/array/rotate_spec.rb +0 -1
  167. data/frozen_old_spec/tags/1.9.1/core/enumerable/all_spec.rb +0 -1
  168. data/frozen_old_spec/tags/1.9.1/core/enumerable/any_spec.rb +0 -2
  169. data/frozen_old_spec/tags/1.9.1/core/enumerable/none_spec.rb +0 -1
  170. data/frozen_old_spec/tags/1.9.1/core/enumerable/one_spec.rb +0 -1
  171. data/frozen_old_spec/tags/1.9.1/core/env/to_h_spec.rb +0 -2
  172. data/frozen_old_spec/tags/1.9.1/core/hash/default_proc_spec.rb +0 -1
  173. data/frozen_old_spec/tags/1.9.1/core/io/write_spec.rb +0 -2
  174. data/frozen_old_spec/tags/1.9.1/core/module/alias_method_spec.rb +0 -4
  175. data/frozen_old_spec/tags/1.9.1/core/module/attr_accessor_spec.rb +0 -2
  176. data/frozen_old_spec/tags/1.9.1/core/module/attr_reader_spec.rb +0 -2
  177. data/frozen_old_spec/tags/1.9.1/core/module/attr_spec.rb +0 -1
  178. data/frozen_old_spec/tags/1.9.1/core/module/attr_writer_spec.rb +0 -2
  179. data/frozen_old_spec/tags/1.9.1/core/module/define_method_spec.rb +0 -3
  180. data/frozen_old_spec/tags/1.9.1/core/module/remove_method_spec.rb +0 -1
  181. data/frozen_old_spec/tags/1.9.1/core/module/undef_method_spec.rb +0 -1
  182. data/frozen_old_spec/tags/1.9.1/core/nil/dup_spec.rb +0 -1
  183. data/frozen_old_spec/tags/1.9.2/core/array/append_spec.rb +0 -1
  184. data/frozen_old_spec/tags/1.9.2/core/enumerable/all_spec.rb +0 -1
  185. data/frozen_old_spec/tags/1.9.2/core/enumerable/any_spec.rb +0 -2
  186. data/frozen_old_spec/tags/1.9.2/core/enumerable/none_spec.rb +0 -1
  187. data/frozen_old_spec/tags/1.9.2/core/enumerable/one_spec.rb +0 -1
  188. data/frozen_old_spec/tags/1.9.2/core/io/write_spec.rb +0 -3
  189. data/frozen_old_spec/tags/1.9.2/core/module/alias_method_spec.rb +0 -4
  190. data/frozen_old_spec/tags/1.9.2/core/module/attr_accessor_spec.rb +0 -2
  191. data/frozen_old_spec/tags/1.9.2/core/module/attr_reader_spec.rb +0 -2
  192. data/frozen_old_spec/tags/1.9.2/core/module/attr_spec.rb +0 -1
  193. data/frozen_old_spec/tags/1.9.2/core/module/attr_writer_spec.rb +0 -2
  194. data/frozen_old_spec/tags/1.9.2/core/module/define_method_spec.rb +0 -3
  195. data/frozen_old_spec/tags/1.9.2/core/module/remove_method_spec.rb +0 -1
  196. data/frozen_old_spec/tags/1.9.2/core/module/undef_method_spec.rb +0 -1
  197. data/frozen_old_spec/tags/1.9.2/core/nil/dup_spec.rb +0 -1
  198. data/frozen_old_spec/tags/1.9.3/core/enumerable/any_spec.rb +0 -1
  199. data/frozen_old_spec/tags/1.9.3/core/module/alias_method_spec.rb +0 -4
  200. data/frozen_old_spec/tags/1.9.3/core/module/attr_accessor_spec.rb +0 -1
  201. data/frozen_old_spec/tags/1.9.3/core/module/attr_reader_spec.rb +0 -1
  202. data/frozen_old_spec/tags/1.9.3/core/module/attr_spec.rb +0 -1
  203. data/frozen_old_spec/tags/1.9.3/core/module/attr_writer_spec.rb +0 -1
  204. data/frozen_old_spec/tags/1.9.3/core/module/define_method_spec.rb +0 -3
  205. data/frozen_old_spec/tags/1.9.3/core/module/remove_method_spec.rb +0 -1
  206. data/frozen_old_spec/tags/1.9.3/core/module/undef_method_spec.rb +0 -1
  207. data/frozen_old_spec/tags/2.0.0/core/enumerable/any_spec.rb +0 -1
  208. data/frozen_old_spec/tags/2.0.0/core/module/alias_method_spec.rb +0 -1
  209. data/frozen_old_spec/tags/2.0.0/core/module/attr_accessor_spec.rb +0 -2
  210. data/frozen_old_spec/tags/2.0.0/core/module/attr_reader_spec.rb +0 -2
  211. data/frozen_old_spec/tags/2.0.0/core/module/attr_spec.rb +0 -1
  212. data/frozen_old_spec/tags/2.0.0/core/module/attr_writer_spec.rb +0 -2
  213. data/frozen_old_spec/tags/2.0.0/core/module/define_method_spec.rb +0 -2
  214. data/frozen_old_spec/tags/2.0.0/core/module/remove_method_spec.rb +0 -1
  215. data/frozen_old_spec/tags/2.0.0/core/module/undef_method_spec.rb +0 -1
  216. data/frozen_old_spec/tags/2.0.0/core/nil/dup_spec.rb +0 -1
  217. data/frozen_old_spec/tags/2.0.0/core/struct/new_spec.rb +0 -1
  218. data/frozen_old_spec/tags/2.1.0/core/enumerable/any_spec.rb +0 -1
  219. data/frozen_old_spec/tags/2.1.0/core/module/alias_method_spec.rb +0 -1
  220. data/frozen_old_spec/tags/2.1.0/core/module/attr_accessor_spec.rb +0 -2
  221. data/frozen_old_spec/tags/2.1.0/core/module/attr_reader_spec.rb +0 -2
  222. data/frozen_old_spec/tags/2.1.0/core/module/attr_spec.rb +0 -1
  223. data/frozen_old_spec/tags/2.1.0/core/module/attr_writer_spec.rb +0 -2
  224. data/frozen_old_spec/tags/2.1.0/core/module/define_method_spec.rb +0 -2
  225. data/frozen_old_spec/tags/2.1.0/core/module/remove_method_spec.rb +0 -1
  226. data/frozen_old_spec/tags/2.1.0/core/module/undef_method_spec.rb +0 -1
  227. data/frozen_old_spec/tags/2.1.0/core/nil/dup_spec.rb +0 -1
  228. data/frozen_old_spec/tags/2.1.0/core/struct/new_spec.rb +0 -1
  229. data/frozen_old_spec/tags/2.2.0/core/enumerable/any_spec.rb +0 -1
  230. data/frozen_old_spec/tags/2.2.0/core/module/alias_method_spec.rb +0 -1
  231. data/frozen_old_spec/tags/2.2.0/core/module/attr_accessor_spec.rb +0 -2
  232. data/frozen_old_spec/tags/2.2.0/core/module/attr_reader_spec.rb +0 -2
  233. data/frozen_old_spec/tags/2.2.0/core/module/attr_spec.rb +0 -1
  234. data/frozen_old_spec/tags/2.2.0/core/module/attr_writer_spec.rb +0 -2
  235. data/frozen_old_spec/tags/2.2.0/core/module/define_method_spec.rb +0 -1
  236. data/frozen_old_spec/tags/2.2.0/core/module/remove_method_spec.rb +0 -1
  237. data/frozen_old_spec/tags/2.2.0/core/module/undef_method_spec.rb +0 -1
  238. data/frozen_old_spec/tags/2.2.0/core/nil/dup_spec.rb +0 -1
  239. data/frozen_old_spec/tags/2.2.0/core/struct/new_spec.rb +0 -1
  240. data/frozen_old_spec/tags/2.3.0/core/enumerable/any_spec.rb +0 -1
  241. data/frozen_old_spec/tags/2.3.0/core/module/alias_method_spec.rb +0 -1
  242. data/frozen_old_spec/tags/2.3.0/core/module/attr_accessor_spec.rb +0 -2
  243. data/frozen_old_spec/tags/2.3.0/core/module/attr_reader_spec.rb +0 -2
  244. data/frozen_old_spec/tags/2.3.0/core/module/attr_spec.rb +0 -1
  245. data/frozen_old_spec/tags/2.3.0/core/module/attr_writer_spec.rb +0 -2
  246. data/frozen_old_spec/tags/2.3.0/core/module/define_method_spec.rb +0 -1
  247. data/frozen_old_spec/tags/2.3.0/core/module/remove_method_spec.rb +0 -1
  248. data/frozen_old_spec/tags/2.3.0/core/module/undef_method_spec.rb +0 -1
  249. data/frozen_old_spec/tags/2.3.0/core/nil/dup_spec.rb +0 -1
  250. data/frozen_old_spec/tags/2.3.0/core/struct/new_spec.rb +0 -1
  251. data/frozen_old_spec/tags/2.3.5/core/struct/new_spec.rb +0 -1
  252. data/frozen_old_spec/tags/2.4.0/core/enumerable/any_spec.rb +0 -1
  253. data/frozen_old_spec/tags/2.4.0/core/module/alias_method_spec.rb +0 -1
  254. data/frozen_old_spec/tags/2.4.0/core/module/attr_accessor_spec.rb +0 -2
  255. data/frozen_old_spec/tags/2.4.0/core/module/attr_reader_spec.rb +0 -2
  256. data/frozen_old_spec/tags/2.4.0/core/module/attr_spec.rb +0 -1
  257. data/frozen_old_spec/tags/2.4.0/core/module/attr_writer_spec.rb +0 -2
  258. data/frozen_old_spec/tags/2.4.0/core/module/define_method_spec.rb +0 -1
  259. data/frozen_old_spec/tags/2.4.0/core/module/remove_method_spec.rb +0 -1
  260. data/frozen_old_spec/tags/2.4.0/core/module/undef_method_spec.rb +0 -1
  261. data/frozen_old_spec/tags/2.4.0/core/nil/dup_spec.rb +0 -1
  262. data/frozen_old_spec/tags/2.4.0/core/struct/new_spec.rb +0 -1
  263. data/frozen_old_spec/tags/2.5.0/core/enumerable/any_spec.rb +0 -1
  264. data/frozen_old_spec/tags/2.5.0/core/module/alias_method_spec.rb +0 -1
  265. data/frozen_old_spec/tags/2.5.0/core/module/attr_accessor_spec.rb +0 -2
  266. data/frozen_old_spec/tags/2.5.0/core/module/attr_reader_spec.rb +0 -2
  267. data/frozen_old_spec/tags/2.5.0/core/module/attr_spec.rb +0 -1
  268. data/frozen_old_spec/tags/2.5.0/core/module/attr_writer_spec.rb +0 -2
  269. data/frozen_old_spec/tags/2.5.0/core/module/define_method_spec.rb +0 -1
  270. data/frozen_old_spec/tags/2.5.0/core/module/remove_method_spec.rb +0 -1
  271. data/frozen_old_spec/tags/2.5.0/core/module/undef_method_spec.rb +0 -1
  272. data/frozen_old_spec/tags/2.5.0/core/nil/dup_spec.rb +0 -1
  273. data/frozen_old_spec/tags/2.5.0/core/struct/new_spec.rb +0 -1
  274. data/set_version/1.8.7.rb +0 -1
  275. data/set_version/1.9.1.rb +0 -1
  276. data/set_version/1.9.2.rb +0 -1
  277. data/set_version/1.9.3.rb +0 -1
  278. data/set_version/2.0.0.rb +0 -1
  279. data/set_version/2.1.0.rb +0 -1
  280. data/set_version/2.2.0.rb +0 -1
  281. data/set_version/2.3.0.rb +0 -1
  282. data/set_version/2.4.0.rb +0 -1
  283. data/set_version/2.5.0.rb +0 -1
  284. data/set_version/2.6.0.rb +0 -1
  285. data/set_version/2.7.0.rb +0 -1
  286. data/set_version/setter.rb +0 -22
  287. data/spec/tags/1.8.7/core/array/to_h_spec.rb +0 -3
  288. data/spec/tags/1.8.7/core/enumerable/to_h_spec.rb +0 -2
  289. data/spec/tags/1.8.7/core/module/attr_spec.rb +0 -1
  290. data/spec/tags/1.8.7/core/module/include_spec.rb +0 -1
  291. data/spec/tags/1.9.1/core/array/bsearch_index_spec.rb +0 -1
  292. data/spec/tags/1.9.1/core/array/rotate_spec.rb +0 -1
  293. data/spec/tags/1.9.1/core/dir/each_child_spec.rb +0 -1
  294. data/spec/tags/1.9.1/core/env/to_h_spec.rb +0 -2
  295. data/spec/tags/1.9.1/core/hash/default_proc_spec.rb +0 -1
  296. data/spec/tags/1.9.1/core/hash/slice_spec.rb +0 -1
  297. data/spec/tags/1.9.1/core/hash/transform_keys_spec.rb +0 -2
  298. data/spec/tags/1.9.1/core/hash/transform_values_spec.rb +0 -2
  299. data/spec/tags/1.9.1/core/io/write_spec.rb +0 -3
  300. data/spec/tags/1.9.1/core/kernel/yield_self_spec.rb +0 -1
  301. data/spec/tags/1.9.1/core/method/curry_spec.rb +0 -1
  302. data/spec/tags/1.9.1/core/module/alias_method_spec.rb +0 -3
  303. data/spec/tags/1.9.1/core/module/attr_accessor_spec.rb +0 -1
  304. data/spec/tags/1.9.1/core/module/attr_reader_spec.rb +0 -1
  305. data/spec/tags/1.9.1/core/module/attr_spec.rb +0 -1
  306. data/spec/tags/1.9.1/core/module/attr_writer_spec.rb +0 -1
  307. data/spec/tags/1.9.1/core/module/define_method_spec.rb +0 -7
  308. data/spec/tags/1.9.1/core/string/uplus_spec.rb +0 -1
  309. data/spec/tags/1.9.1/core/struct/new_spec.rb +0 -2
  310. data/spec/tags/1.9.2/core/array/bsearch_index_spec.rb +0 -1
  311. data/spec/tags/1.9.2/core/array/to_h_spec.rb +0 -3
  312. data/spec/tags/1.9.2/core/dir/each_child_spec.rb +0 -1
  313. data/spec/tags/1.9.2/core/enumerable/to_h_spec.rb +0 -2
  314. data/spec/tags/1.9.2/core/hash/slice_spec.rb +0 -1
  315. data/spec/tags/1.9.2/core/hash/to_h_spec.rb +0 -3
  316. data/spec/tags/1.9.2/core/hash/transform_keys_spec.rb +0 -2
  317. data/spec/tags/1.9.2/core/hash/transform_values_spec.rb +0 -2
  318. data/spec/tags/1.9.2/core/io/write_spec.rb +0 -3
  319. data/spec/tags/1.9.2/core/kernel/then_spec.rb +0 -1
  320. data/spec/tags/1.9.2/core/kernel/yield_self_spec.rb +0 -1
  321. data/spec/tags/1.9.2/core/method/curry_spec.rb +0 -1
  322. data/spec/tags/1.9.2/core/module/alias_method_spec.rb +0 -3
  323. data/spec/tags/1.9.2/core/module/attr_accessor_spec.rb +0 -1
  324. data/spec/tags/1.9.2/core/module/attr_reader_spec.rb +0 -1
  325. data/spec/tags/1.9.2/core/module/attr_writer_spec.rb +0 -1
  326. data/spec/tags/1.9.2/core/module/define_method_spec.rb +0 -7
  327. data/spec/tags/1.9.2/core/module/include_spec.rb +0 -1
  328. data/spec/tags/1.9.2/core/string/uplus_spec.rb +0 -1
  329. data/spec/tags/1.9.2/core/struct/new_spec.rb +0 -2
  330. data/spec/tags/1.9.3/core/array/bsearch_index_spec.rb +0 -1
  331. data/spec/tags/1.9.3/core/array/to_h_spec.rb +0 -3
  332. data/spec/tags/1.9.3/core/dir/each_child_spec.rb +0 -1
  333. data/spec/tags/1.9.3/core/enumerable/grep_v_spec.rb +0 -2
  334. data/spec/tags/1.9.3/core/enumerable/to_h_spec.rb +0 -2
  335. data/spec/tags/1.9.3/core/enumerator/produce_spec.rb +0 -1
  336. data/spec/tags/1.9.3/core/hash/slice_spec.rb +0 -1
  337. data/spec/tags/1.9.3/core/hash/to_h_spec.rb +0 -3
  338. data/spec/tags/1.9.3/core/hash/transform_keys_spec.rb +0 -2
  339. data/spec/tags/1.9.3/core/hash/transform_values_spec.rb +0 -2
  340. data/spec/tags/1.9.3/core/io/write_spec.rb +0 -3
  341. data/spec/tags/1.9.3/core/kernel/then_spec.rb +0 -1
  342. data/spec/tags/1.9.3/core/kernel/yield_self_spec.rb +0 -1
  343. data/spec/tags/1.9.3/core/method/curry_spec.rb +0 -1
  344. data/spec/tags/1.9.3/core/module/alias_method_spec.rb +0 -3
  345. data/spec/tags/1.9.3/core/module/attr_accessor_spec.rb +0 -1
  346. data/spec/tags/1.9.3/core/module/attr_reader_spec.rb +0 -1
  347. data/spec/tags/1.9.3/core/module/attr_writer_spec.rb +0 -1
  348. data/spec/tags/1.9.3/core/module/define_method_spec.rb +0 -7
  349. data/spec/tags/1.9.3/core/module/include_spec.rb +0 -1
  350. data/spec/tags/1.9.3/core/string/uplus_spec.rb +0 -1
  351. data/spec/tags/1.9.3/core/struct/new_spec.rb +0 -2
  352. data/spec/tags/2.0.0/core/array/to_h_spec.rb +0 -3
  353. data/spec/tags/2.0.0/core/enumerable/grep_v_spec.rb +0 -2
  354. data/spec/tags/2.0.0/core/enumerable/to_h_spec.rb +0 -2
  355. data/spec/tags/2.0.0/core/hash/slice_spec.rb +0 -1
  356. data/spec/tags/2.0.0/core/hash/to_h_spec.rb +0 -3
  357. data/spec/tags/2.0.0/core/module/attr_accessor_spec.rb +0 -1
  358. data/spec/tags/2.0.0/core/module/attr_reader_spec.rb +0 -1
  359. data/spec/tags/2.0.0/core/module/attr_spec.rb +0 -1
  360. data/spec/tags/2.0.0/core/module/attr_writer_spec.rb +0 -1
  361. data/spec/tags/2.0.0/core/module/define_method_spec.rb +0 -5
  362. data/spec/tags/2.0.0/core/module/include_spec.rb +0 -1
  363. data/spec/tags/2.0.0/core/module/undef_method_spec.rb +0 -2
  364. data/spec/tags/2.0.0/core/string/uplus_spec.rb +0 -1
  365. data/spec/tags/2.0.0/core/struct/new_spec.rb +0 -3
  366. data/spec/tags/2.1.0/core/array/union_spec.rb +0 -1
  367. data/spec/tags/2.1.0/core/enumerable/grep_v_spec.rb +0 -2
  368. data/spec/tags/2.1.0/core/hash/slice_spec.rb +0 -1
  369. data/spec/tags/2.1.0/core/hash/to_h_spec.rb +0 -1
  370. data/spec/tags/2.1.0/core/module/attr_accessor_spec.rb +0 -1
  371. data/spec/tags/2.1.0/core/module/attr_reader_spec.rb +0 -1
  372. data/spec/tags/2.1.0/core/module/attr_spec.rb +0 -1
  373. data/spec/tags/2.1.0/core/module/attr_writer_spec.rb +0 -1
  374. data/spec/tags/2.1.0/core/module/define_method_spec.rb +0 -5
  375. data/spec/tags/2.1.0/core/module/undef_method_spec.rb +0 -2
  376. data/spec/tags/2.1.0/core/string/uplus_spec.rb +0 -1
  377. data/spec/tags/2.1.0/core/struct/new_spec.rb +0 -3
  378. data/spec/tags/2.2.0/core/enumerable/grep_v_spec.rb +0 -2
  379. data/spec/tags/2.2.0/core/hash/slice_spec.rb +0 -1
  380. data/spec/tags/2.2.0/core/hash/to_h_spec.rb +0 -1
  381. data/spec/tags/2.2.0/core/module/attr_accessor_spec.rb +0 -1
  382. data/spec/tags/2.2.0/core/module/attr_reader_spec.rb +0 -1
  383. data/spec/tags/2.2.0/core/module/attr_spec.rb +0 -1
  384. data/spec/tags/2.2.0/core/module/attr_writer_spec.rb +0 -1
  385. data/spec/tags/2.2.0/core/module/define_method_spec.rb +0 -5
  386. data/spec/tags/2.2.0/core/module/undef_method_spec.rb +0 -2
  387. data/spec/tags/2.2.0/core/string/uplus_spec.rb +0 -1
  388. data/spec/tags/2.2.0/core/struct/new_spec.rb +0 -3
  389. data/spec/tags/2.3.0/core/hash/slice_spec.rb +0 -1
  390. data/spec/tags/2.3.0/core/hash/to_h_spec.rb +0 -1
  391. data/spec/tags/2.3.0/core/module/attr_spec.rb +0 -1
  392. data/spec/tags/2.3.0/core/string/uplus_spec.rb +0 -1
  393. data/spec/tags/2.3.0/core/struct/new_spec.rb +0 -3
  394. data/spec/tags/2.4.0/core/hash/slice_spec.rb +0 -1
  395. data/spec/tags/2.4.0/core/hash/to_h_spec.rb +0 -1
  396. data/spec/tags/2.4.0/core/module/attr_spec.rb +0 -1
  397. data/spec/tags/2.4.0/core/struct/new_spec.rb +0 -1
  398. data/spec/tags/2.5.0/core/hash/to_h_spec.rb +0 -1
  399. data/test/README +0 -2
  400. data/test/_backport_guards_test.rb +0 -152
  401. data/test/bit_length_test.rb +0 -11
  402. data/test/lazy_test.rb +0 -487
  403. data/test/socket_interaction_test.rb +0 -9
  404. data/test/test_helper.rb +0 -1
@@ -1,11 +0,0 @@
1
- require './test/test_helper'
2
-
3
- class BitLengthTest < Test::Unit::TestCase
4
- def test_big_num # Issue #95
5
- require 'backports/2.1.0/bignum/bit_length'
6
- r = 91178362617816881166579720176198217549251305244541026425489888079462471837807
7
- assert_equal 256, r.bit_length
8
- r = 57896044618658097711785492504343953926634992332820282019728792003956564819968
9
- assert_equal 256, r.bit_length
10
- end
11
- end
data/test/lazy_test.rb DELETED
@@ -1,487 +0,0 @@
1
- # This is copied & modified from MRI
2
- require './test/test_helper'
3
-
4
- class TestLazyEnumerator < Test::Unit::TestCase
5
- def setup
6
- require "backports/2.0.0/enumerable/lazy"
7
- require "backports/1.8.7/enumerable"
8
- require "backports/1.8.7/io/each"
9
- end
10
-
11
- class Step
12
- include Enumerable
13
- attr_reader :current, :args
14
-
15
- def initialize(enum)
16
- @enum = enum
17
- @current = nil
18
- @args = nil
19
- end
20
-
21
- def each(*args)
22
- @args = args
23
- @enum.each {|i| @current = i; yield i}
24
- end
25
- end
26
-
27
- def test_initialize
28
- assert_equal([1, 2, 3], [1, 2, 3].lazy.to_a)
29
- assert_equal([1, 2, 3], Enumerator::Lazy.new([1, 2, 3]){|y, v| y << v}.to_a)
30
- assert_raise(ArgumentError) { Enumerator::Lazy.new([1, 2, 3]) }
31
- end
32
-
33
- ### Backports: Disabled because of Enumerator#each not passing args in MRI < 2.0
34
- # def test_each_args
35
- # a = Step.new(1..3)
36
- # assert_equal(1, a.lazy.each(4).first)
37
- # assert_equal([4], a.args)
38
- # end
39
-
40
- def test_each_line
41
- name = lineno = nil
42
- File.open(__FILE__) do |f|
43
- f.each("").map do |paragraph|
44
- paragraph[/\A\s*(.*)/, 1]
45
- end.find do |line|
46
- if name = line[/^class\s+(\S+)/, 1]
47
- lineno = f.lineno
48
- true
49
- end
50
- end
51
- end
52
- assert_equal(self.class.name, name)
53
- assert_operator(lineno, :>, 2)
54
-
55
- name = lineno = nil
56
- File.open(__FILE__) do |f|
57
- ### Backports: Modified to avoid bug of Enumerator#each not passing args in MRI < 2.0
58
- f.each("").lazy.map do |paragraph| #
59
- paragraph[/\A\s*(.*)/, 1]
60
- end.find do |line|
61
- if name = line[/^class\s+(\S+)/, 1]
62
- lineno = f.lineno
63
- true
64
- end
65
- end
66
- end
67
- assert_equal(self.class.name, name)
68
- assert_equal(2, lineno)
69
- end
70
-
71
- def test_select
72
- a = Step.new(1..6)
73
- assert_equal(4, a.select {|x| x > 3}.first)
74
- assert_equal(6, a.current)
75
- assert_equal(4, a.lazy.select {|x| x > 3}.first)
76
- assert_equal(4, a.current)
77
-
78
- a = Step.new(['word', nil, 1])
79
- assert_raise(TypeError) {a.select {|x| "x"+x}.first}
80
- assert_equal(nil, a.current)
81
- assert_equal("word", a.lazy.select {|x| "x"+x}.first)
82
- assert_equal("word", a.current)
83
- end
84
-
85
- def test_select_multiple_values
86
- e = Enumerator.new { |yielder|
87
- for i in 1..5
88
- yielder.yield(i, i.to_s)
89
- end
90
- }
91
- ### Backport: non lazy version differs on JRuby and MRI
92
- assert_equal([[2, "2"], [4, "4"]],
93
- e.lazy.select {|x| x[0] % 2 == 0}.force)
94
- end
95
-
96
- def test_map
97
- a = Step.new(1..3)
98
- assert_equal(2, a.map {|x| x * 2}.first)
99
- assert_equal(3, a.current)
100
- assert_equal(2, a.lazy.map {|x| x * 2}.first)
101
- assert_equal(1, a.current)
102
- end
103
-
104
- def test_flat_map
105
- a = Step.new(1..3)
106
- assert_equal(2, a.flat_map {|x| [x * 2]}.first)
107
- assert_equal(3, a.current)
108
- assert_equal(2, a.lazy.flat_map {|x| [x * 2]}.first)
109
- assert_equal(1, a.current)
110
- end if [].respond_to?(:flat_map)
111
-
112
- def test_flat_map_nested
113
- a = Step.new(1..3)
114
- assert_equal([1, "a"],
115
- a.flat_map {|x| ("a".."c").map {|y| [x, y]}}.first)
116
- assert_equal(3, a.current)
117
- assert_equal([1, "a"],
118
- a.lazy.flat_map {|x| ("a".."c").lazy.map {|y| [x, y]}}.first)
119
- assert_equal(1, a.current)
120
- end if [].respond_to?(:flat_map)
121
-
122
- def test_flat_map_to_ary
123
- to_ary = Class.new {
124
- def initialize(value)
125
- @value = value
126
- end
127
-
128
- def to_ary
129
- [:to_ary, @value]
130
- end
131
- }
132
- assert_equal([:to_ary, 1, :to_ary, 2, :to_ary, 3],
133
- [1, 2, 3].flat_map {|x| to_ary.new(x)})
134
- assert_equal([:to_ary, 1, :to_ary, 2, :to_ary, 3],
135
- [1, 2, 3].lazy.flat_map {|x| to_ary.new(x)}.force)
136
- end if [].respond_to?(:flat_map)
137
-
138
- def test_flat_map_non_array
139
- assert_equal(["1", "2", "3"], [1, 2, 3].flat_map {|x| x.to_s})
140
- assert_equal(["1", "2", "3"], [1, 2, 3].lazy.flat_map {|x| x.to_s}.force)
141
- end if [].respond_to?(:flat_map)
142
-
143
- def test_flat_map_hash
144
- assert_equal([{?a=>97}, {?b=>98}, {?c=>99}], [?a, ?b, ?c].flat_map {|x| {x=>x.ord}})
145
- assert_equal([{?a=>97}, {?b=>98}, {?c=>99}], [?a, ?b, ?c].lazy.flat_map {|x| {x=>x.ord}}.force)
146
- end if [].respond_to?(:flat_map)
147
-
148
- def test_reject
149
- a = Step.new(1..6)
150
- assert_equal(4, a.reject {|x| x < 4}.first)
151
- assert_equal(6, a.current)
152
- assert_equal(4, a.lazy.reject {|x| x < 4}.first)
153
- assert_equal(4, a.current)
154
-
155
- a = Step.new(['word', nil, 1])
156
- assert_equal(nil, a.reject {|x| x}.first)
157
- assert_equal(1, a.current)
158
- assert_equal(nil, a.lazy.reject {|x| x}.first)
159
- assert_equal(nil, a.current)
160
- end
161
-
162
- def test_reject_multiple_values
163
- e = Enumerator.new { |yielder|
164
- for i in 1..5
165
- yielder.yield(i, i.to_s)
166
- end
167
- }
168
- ### Backport: non lazy version differs on JRuby and MRI
169
- assert_equal([[2, "2"], [4, "4"]],
170
- e.lazy.reject {|x| x[0] % 2 != 0}.force)
171
- end
172
-
173
- def test_grep
174
- a = Step.new('a'..'f')
175
- assert_equal('c', a.grep(/c/).first)
176
- assert_equal('f', a.current)
177
- assert_equal('c', a.lazy.grep(/c/).first)
178
- assert_equal('c', a.current)
179
- assert_equal(%w[a e], a.grep(proc {|x| /[aeiou]/ =~ x}))
180
- assert_equal(%w[a e], a.lazy.grep(proc {|x| /[aeiou]/ =~ x}).to_a)
181
- end
182
-
183
- def test_grep_with_block
184
- a = Step.new('a'..'f')
185
- assert_equal('C', a.grep(/c/) {|i| i.upcase}.first)
186
- assert_equal('C', a.lazy.grep(/c/) {|i| i.upcase}.first)
187
- end
188
-
189
- def test_grep_multiple_values
190
- e = Enumerator.new { |yielder|
191
- 3.times { |i|
192
- yielder.yield(i, i.to_s)
193
- }
194
- }
195
- ### Backport: non lazy version differs on JRuby and MRI
196
- assert_equal([[2, "2"]], e.lazy.grep(proc {|x| x == [2, "2"]}).force)
197
- assert_equal(["22"],
198
- e.lazy.grep(proc {|x| x == [2, "2"]}, &:join).force)
199
- end
200
-
201
- def test_zip
202
- a = Step.new(1..3)
203
- assert_equal([1, "a"], a.zip("a".."c").first)
204
- assert_equal(3, a.current)
205
- assert_equal([1, "a"], a.lazy.zip("a".."c").first)
206
- assert_equal(1, a.current)
207
- end
208
-
209
- def test_zip_short_arg
210
- a = Step.new(1..5)
211
- assert_equal([5, nil], a.zip("a".."c").last)
212
- enum = [42].to_enum.next
213
- assert_equal([5, nil], a.lazy.zip("a".."d").force.last) ### Backport: modified to avoid fact that 1.8.x's Enumerator auto-rewind
214
- end
215
-
216
- def test_zip_without_arg
217
- a = Step.new(1..3)
218
- assert_equal([1], a.zip.first)
219
- assert_equal(3, a.current)
220
- avoid_bug_on_jruby = Enumerator.new{|y| y << [1]}.first ### Backport: see https://jira.codehaus.org/browse/JRUBY-7108
221
- assert_equal(avoid_bug_on_jruby, a.lazy.zip.first)
222
- assert_equal(1, a.current)
223
- end
224
-
225
- def test_zip_bad_arg
226
- a = Step.new(1..3)
227
- assert_raise(TypeError){ a.lazy.zip(42) }
228
- end
229
-
230
- def test_zip_with_block
231
- # zip should be eager when a block is given
232
- a = Step.new(1..3)
233
- ary = []
234
- assert_equal(nil, a.lazy.zip("a".."c") {|x, y| ary << [x, y]})
235
- assert_equal(a.zip("a".."c"), ary)
236
- assert_equal(3, a.current)
237
- end
238
-
239
- def test_take
240
- a = Step.new(1..10)
241
- assert_equal(1, a.take(5).first)
242
- assert_equal(5, a.current)
243
- assert_equal(1, a.lazy.take(5).first)
244
- assert_equal(1, a.current)
245
- assert_equal((1..5).to_a, a.lazy.take(5).force)
246
- assert_equal(5, a.current)
247
- a = Step.new(1..10)
248
- assert_equal([], a.lazy.take(0).force)
249
- assert_equal(nil, a.current)
250
- end
251
-
252
- def test_take_recycle
253
- bug6428 = '[ruby-dev:45634]'
254
- a = Step.new(1..10)
255
- take5 = a.lazy.take(5)
256
- assert_equal((1..5).to_a, take5.force, bug6428)
257
- assert_equal((1..5).to_a, take5.force, bug6428)
258
- end
259
-
260
- def test_take_nested
261
- bug7696 = '[ruby-core:51470]'
262
- a = Step.new(1..10)
263
- take5 = a.lazy.take(5)
264
- assert_equal([*(1..5)]*5, take5.flat_map{take5}.force, bug7696)
265
- end
266
-
267
- def test_drop_while_nested
268
- bug7696 = '[ruby-core:51470]'
269
- a = Step.new(1..10)
270
- drop5 = a.lazy.drop_while{|x| x < 6}
271
- assert_equal([*(6..10)]*5, drop5.flat_map{drop5}.force, bug7696)
272
- end
273
-
274
- def test_drop_nested
275
- bug7696 = '[ruby-core:51470]'
276
- a = Step.new(1..10)
277
- drop5 = a.lazy.drop(5)
278
- assert_equal([*(6..10)]*5, drop5.flat_map{drop5}.force, bug7696)
279
- end
280
-
281
- def test_zip_nested
282
- bug7696 = '[ruby-core:51470]'
283
- enum = ('a'..'z').each
284
- enum.next
285
- zip = (1..3).lazy.zip(enum, enum)
286
- assert_equal([[1, 'a', 'a'], [2, 'b', 'b'], [3, 'c', 'c']]*3, zip.flat_map{zip}.force, bug7696)
287
- end
288
-
289
- def test_zip_lazy_on_args
290
- zip = Step.new(1..2).lazy.zip(42..Float::INFINITY)
291
- assert_equal [[1, 42], [2, 43]], zip.force
292
- end
293
-
294
- def test_zip_efficient_on_array_args
295
- ary = [42, :foo]
296
- [:to_enum, :enum_for, :lazy, :each].each do |forbid|
297
- ary.define_singleton_method(forbid){ fail "#{forbid} was called"}
298
- end
299
- zip = Step.new(1..2).lazy.zip(ary)
300
- assert_equal [[1, 42], [2, :foo]], zip.force
301
- end
302
-
303
- def test_take_rewound
304
- bug7696 = '[ruby-core:51470]'
305
- e=(1..42).lazy.take(2)
306
- assert_equal 1, e.next
307
- assert_equal 2, e.next
308
- e.rewind
309
- assert_equal 1, e.next
310
- assert_equal 2, e.next
311
- end
312
-
313
- def test_take_while
314
- a = Step.new(1..10)
315
- assert_equal(1, a.take_while {|i| i < 5}.first)
316
- assert_equal(5, a.current)
317
- assert_equal(1, a.lazy.take_while {|i| i < 5}.first)
318
- assert_equal(1, a.current)
319
- assert_equal((1..4).to_a, a.lazy.take_while {|i| i < 5}.to_a)
320
- end
321
-
322
- def test_drop
323
- a = Step.new(1..10)
324
- assert_equal(6, a.drop(5).first)
325
- assert_equal(10, a.current)
326
- assert_equal(6, a.lazy.drop(5).first)
327
- assert_equal(6, a.current)
328
- assert_equal((6..10).to_a, a.lazy.drop(5).to_a)
329
- end
330
-
331
- def test_drop_while
332
- a = Step.new(1..10)
333
- assert_equal(5, a.drop_while {|i| i < 5}.first)
334
- assert_equal(10, a.current)
335
- assert_equal(5, a.lazy.drop_while {|i| i < 5}.first)
336
- assert_equal(5, a.current)
337
- assert_equal((5..10).to_a, a.lazy.drop_while {|i| i < 5}.to_a)
338
- end
339
-
340
- def test_drop_and_take
341
- assert_equal([4, 5], (1..(1.0/0)).lazy.drop(3).take(2).to_a) # Backports: don't rely on INFINITY
342
- end
343
-
344
- def test_cycle
345
- a = Step.new(1..3)
346
- assert_equal("1", a.cycle(2).map{|x| x.to_s}.first)
347
- assert_equal(3, a.current)
348
- assert_equal("1", a.lazy.cycle(2).map{|x| x.to_s}.first)
349
- assert_equal(1, a.current)
350
- end
351
-
352
- def test_cycle_with_block
353
- # cycle should be eager when a block is given
354
- a = Step.new(1..3)
355
- ary = []
356
- assert_equal(nil, a.lazy.cycle(2) {|i| ary << i})
357
- assert_equal(a.cycle(2).to_a, ary)
358
- assert_equal(3, a.current)
359
- end
360
-
361
- def test_cycle_chain
362
- a = 1..3
363
- assert_equal([1,2,3,1,2,3,1,2,3,1], a.lazy.cycle.take(10).force)
364
- assert_equal([2,2,2,2,2,2,2,2,2,2], a.lazy.cycle.select {|x| x == 2}.take(10).force)
365
- assert_equal([2,2,2,2,2,2,2,2,2,2], a.lazy.select {|x| x == 2}.cycle.take(10).force)
366
- end
367
-
368
- def test_force
369
- assert_equal([1, 2, 3], (1..Float::INFINITY).lazy.take(3).force)
370
- end
371
-
372
- def test_inspect
373
- return unless Enumerator.to_s == "Enumerator"
374
- assert_equal("#<Enumerator::Lazy: 1..10>", (1..10).lazy.inspect)
375
- assert_equal('#<Enumerator::Lazy: #<Enumerator: "foo":each_char>>',
376
- "foo".each_char.lazy.inspect)
377
- assert_equal("#<Enumerator::Lazy: #<Enumerator::Lazy: 1..10>:map>",
378
- (1..10).lazy.map {}.inspect)
379
- assert_equal("#<Enumerator::Lazy: #<Enumerator::Lazy: 1..10>:take(0)>",
380
- (1..10).lazy.take(0).inspect)
381
- assert_equal("#<Enumerator::Lazy: #<Enumerator::Lazy: 1..10>:take(3)>",
382
- (1..10).lazy.take(3).inspect)
383
- assert_equal('#<Enumerator::Lazy: #<Enumerator::Lazy: "a".."c">:grep(/b/)>',
384
- ("a".."c").lazy.grep(/b/).inspect)
385
- assert_equal("#<Enumerator::Lazy: #<Enumerator::Lazy: 1..10>:cycle(3)>",
386
- (1..10).lazy.cycle(3).inspect)
387
- assert_equal("#<Enumerator::Lazy: #<Enumerator::Lazy: 1..10>:cycle>",
388
- (1..10).lazy.cycle.inspect)
389
- assert_equal("#<Enumerator::Lazy: #<Enumerator::Lazy: 1..10>:cycle(3)>",
390
- (1..10).lazy.cycle(3).inspect)
391
- l = (1..10).lazy.map {}.flat_map {}.select {}.reject {}.grep(1).zip(?a..?c).take(10).take_while {}.drop(3).drop_while {}.cycle(3)
392
- ### Backport: Modified because I don't think the actual name we were called under in case of aliases is important enough to care
393
- assert_equal(<<EOS.chomp, l.inspect)
394
- #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: #<Enumerator::Lazy: 1..10>:map>:flat_map>:select>:reject>:grep(1)>:zip(\"a\"..\"c\")>:take(10)>:take_while>:drop(3)>:drop_while>:cycle(3)>
395
- EOS
396
- end if [].respond_to?(:flat_map)
397
-
398
- def test_lazy_to_enum
399
- lazy = [1, 2, 3].lazy
400
- def lazy.foo(*args)
401
- yield args
402
- yield args
403
- end
404
- enum = lazy.to_enum(:foo, :hello, :world)
405
- assert_equal Enumerator::Lazy, enum.class
406
- # assert_equal nil, enum.size ### Backport: see below
407
- assert_equal [[:hello, :world], [:hello, :world]], enum.to_a
408
-
409
- assert_equal [1, 2, 3], lazy.to_enum.to_a
410
- end
411
-
412
- ### Backport: way too much work to shim #size
413
- # def test_size
414
- # lazy = [1, 2, 3].lazy
415
- # assert_equal 3, lazy.size
416
- # assert_equal 42, Enumerator::Lazy.new([],->{42}){}.size
417
- # assert_equal 42, Enumerator::Lazy.new([],42){}.size
418
- # assert_equal 42, Enumerator::Lazy.new([],42){}.lazy.size
419
- # assert_equal 42, lazy.to_enum{ 42 }.size
420
-
421
- # [:map, :collect].each do |m|
422
- # assert_equal 3, lazy.send(m){}.size
423
- # end
424
- # assert_equal 3, lazy.zip([4]).size
425
- # [:flat_map, :collect_concat, :select, :find_all, :reject, :take_while, :drop_while].each do |m|
426
- # assert_equal nil, lazy.send(m){}.size
427
- # end
428
- # assert_equal nil, lazy.grep(//).size
429
-
430
- # assert_equal 2, lazy.take(2).size
431
- # assert_equal 3, lazy.take(4).size
432
- # assert_equal 4, loop.lazy.take(4).size
433
- # assert_equal nil, lazy.select{}.take(4).size
434
-
435
- # assert_equal 1, lazy.drop(2).size
436
- # assert_equal 0, lazy.drop(4).size
437
- # assert_equal Float::INFINITY, loop.lazy.drop(4).size
438
- # assert_equal nil, lazy.select{}.drop(4).size
439
-
440
- # assert_equal 0, lazy.cycle(0).size
441
- # assert_equal 6, lazy.cycle(2).size
442
- # assert_equal 3 << 80, 4.times.inject(lazy){|enum| enum.cycle(1 << 20)}.size
443
- # assert_equal Float::INFINITY, lazy.cycle.size
444
- # assert_equal Float::INFINITY, loop.lazy.cycle(4).size
445
- # assert_equal Float::INFINITY, loop.lazy.cycle.size
446
- # assert_equal nil, lazy.select{}.cycle(4).size
447
- # assert_equal nil, lazy.select{}.cycle.size
448
- # end
449
-
450
- # def test_map_zip
451
- # bug7507 = '[ruby-core:50545]'
452
- # assert_ruby_status(["-e", "GC.stress = true", "-e", "(1..10).lazy.map{}.zip(){}"], bug7507)
453
- # assert_ruby_status(["-e", "GC.stress = true", "-e", "(1..10).lazy.map{}.zip().to_a"], bug7507)
454
- # end
455
-
456
- def test_require_block
457
- [:select, :reject, :drop_while, :take_while, :map, :flat_map].each do |method|
458
- assert_raise(ArgumentError){ [].lazy.send(method) }
459
- end
460
- end
461
-
462
- def test_laziness_conservation
463
- bug7507 = '[ruby-core:51510]'
464
- {
465
- :slice_before => //,
466
- :with_index => [],
467
- :cycle => [],
468
- :each_with_object => 42,
469
- :each_slice => 42,
470
- :each_entry => [],
471
- :each_cons => 42,
472
- }.each do |method, arg|
473
- assert_equal Enumerator::Lazy, [].lazy.send(method, *arg).class, method if [].respond_to?(method)
474
- end
475
- assert_equal Enumerator::Lazy, [].lazy.chunk{}.class, bug7507
476
- end
477
-
478
- ### Backport: assert_warning not defined, we're ok anyways
479
- # def test_no_warnings
480
- # le = (1..3).lazy
481
- # assert_warning("") {le.zip([4,5,6]).force}
482
- # assert_warning("") {le.zip(4..6).force}
483
- # assert_warning("") {le.take(1).force}
484
- # assert_warning("") {le.drop(1).force}
485
- # assert_warning("") {le.drop_while{false}.force}
486
- # end
487
- end