win32-api 1.4.8 → 1.9.1

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 (564) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +212 -144
  3. data/Dockerfile +99 -0
  4. data/Dockerfile.trunk +17 -0
  5. data/Gemfile +4 -0
  6. data/Gemfile.lock +24 -0
  7. data/MANIFEST +9 -9
  8. data/{README → README.md} +136 -106
  9. data/RELEASE.md +32 -0
  10. data/Rakefile +261 -128
  11. data/appveyor.yml +46 -0
  12. data/build-gem.bat +3 -0
  13. data/ext/Makefile +267 -0
  14. data/ext/api-x64-mingw32.def +2 -0
  15. data/ext/api.o +0 -0
  16. data/ext/api.so +0 -0
  17. data/ext/extconf.rb +15 -11
  18. data/ext/mkmf.log +38 -0
  19. data/ext/win32/api.c +1102 -949
  20. data/ext/win32/api.so +0 -0
  21. data/test.rb +10 -0
  22. data/test/test_win32_api.rb +145 -148
  23. data/test/test_win32_api_callback.rb +74 -74
  24. data/test/test_win32_api_function.rb +66 -66
  25. data/vendor/bundle/ruby/2.5.0/bin/rake +27 -0
  26. data/vendor/bundle/ruby/2.5.0/bin/rake-compiler-dock +27 -0
  27. data/vendor/bundle/ruby/2.5.0/bin/rake-compiler-dock.bat +6 -0
  28. data/vendor/bundle/ruby/2.5.0/bin/rake.bat +6 -0
  29. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.5/BSDL +22 -0
  30. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.5/COPYING +57 -0
  31. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.5/Gemfile +9 -0
  32. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.5/LEGAL +4 -0
  33. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.5/README.rdoc +81 -0
  34. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.5/Rakefile +59 -0
  35. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.5/bin/console +12 -0
  36. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.5/bin/setup +6 -0
  37. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.5/lib/power_assert.rb +98 -0
  38. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.5/lib/power_assert/colorize.rb +9 -0
  39. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.5/lib/power_assert/configuration.rb +46 -0
  40. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.5/lib/power_assert/context.rb +235 -0
  41. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.5/lib/power_assert/enable_tracepoint_events.rb +91 -0
  42. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.5/lib/power_assert/inspector.rb +61 -0
  43. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.5/lib/power_assert/parser.rb +251 -0
  44. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.5/lib/power_assert/version.rb +3 -0
  45. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.5/power_assert.gemspec +31 -0
  46. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.7/BSDL +22 -0
  47. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.7/COPYING +57 -0
  48. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.7/Gemfile +9 -0
  49. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.7/LEGAL +4 -0
  50. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.7/README.rdoc +81 -0
  51. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.7/Rakefile +59 -0
  52. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.7/bin/console +12 -0
  53. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.7/bin/setup +6 -0
  54. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.7/lib/power_assert.rb +98 -0
  55. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.7/lib/power_assert/colorize.rb +9 -0
  56. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.7/lib/power_assert/configuration.rb +46 -0
  57. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.7/lib/power_assert/context.rb +238 -0
  58. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.7/lib/power_assert/enable_tracepoint_events.rb +91 -0
  59. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.7/lib/power_assert/inspector.rb +61 -0
  60. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.7/lib/power_assert/parser.rb +251 -0
  61. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.7/lib/power_assert/version.rb +3 -0
  62. data/vendor/bundle/ruby/2.5.0/gems/power_assert-1.1.7/power_assert.gemspec +31 -0
  63. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/CONTRIBUTING.rdoc +43 -0
  64. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/Gemfile +10 -0
  65. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/History.rdoc +2368 -0
  66. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/MIT-LICENSE +21 -0
  67. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/README.rdoc +155 -0
  68. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/Rakefile +41 -0
  69. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/bin/bundle +105 -0
  70. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/bin/console +7 -0
  71. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/bin/rake +29 -0
  72. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/bin/rdoc +29 -0
  73. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/bin/rubocop +29 -0
  74. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/bin/setup +6 -0
  75. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/doc/command_line_usage.rdoc +158 -0
  76. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/doc/example/Rakefile1 +38 -0
  77. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/doc/example/Rakefile2 +35 -0
  78. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/doc/example/a.c +6 -0
  79. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/doc/example/b.c +6 -0
  80. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/doc/example/main.c +11 -0
  81. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/doc/glossary.rdoc +42 -0
  82. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/doc/jamis.rb +592 -0
  83. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/doc/proto_rake.rdoc +127 -0
  84. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/doc/rake.1 +156 -0
  85. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/doc/rakefile.rdoc +622 -0
  86. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/doc/rational.rdoc +151 -0
  87. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/exe/rake +27 -0
  88. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake.rb +71 -0
  89. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/application.rb +824 -0
  90. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/backtrace.rb +24 -0
  91. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/clean.rb +78 -0
  92. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/cloneable.rb +17 -0
  93. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/cpu_counter.rb +107 -0
  94. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/default_loader.rb +15 -0
  95. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/dsl_definition.rb +195 -0
  96. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/early_time.rb +22 -0
  97. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/ext/core.rb +26 -0
  98. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/ext/string.rb +176 -0
  99. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/file_creation_task.rb +25 -0
  100. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/file_list.rb +435 -0
  101. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/file_task.rb +54 -0
  102. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/file_utils.rb +134 -0
  103. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/file_utils_ext.rb +134 -0
  104. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/invocation_chain.rb +57 -0
  105. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/invocation_exception_mixin.rb +17 -0
  106. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/late_time.rb +18 -0
  107. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/linked_list.rb +112 -0
  108. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/loaders/makefile.rb +54 -0
  109. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/multi_task.rb +14 -0
  110. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/name_space.rb +38 -0
  111. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/packagetask.rb +222 -0
  112. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/phony.rb +16 -0
  113. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/private_reader.rb +21 -0
  114. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/promise.rb +100 -0
  115. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/pseudo_status.rb +30 -0
  116. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/rake_module.rb +67 -0
  117. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/rake_test_loader.rb +27 -0
  118. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/rule_recursion_overflow_error.rb +20 -0
  119. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/scope.rb +43 -0
  120. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/task.rb +434 -0
  121. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/task_argument_error.rb +8 -0
  122. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/task_arguments.rb +109 -0
  123. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/task_manager.rb +331 -0
  124. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/tasklib.rb +12 -0
  125. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/testtask.rb +224 -0
  126. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/thread_history_display.rb +49 -0
  127. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/thread_pool.rb +163 -0
  128. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/trace_output.rb +23 -0
  129. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/version.rb +10 -0
  130. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/lib/rake/win32.rb +51 -0
  131. data/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/rake.gemspec +43 -0
  132. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/Dockerfile.jruby +61 -0
  133. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/Dockerfile.mri +122 -0
  134. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/Gemfile +8 -0
  135. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/History.md +130 -0
  136. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/LICENSE.txt +22 -0
  137. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/README.md +162 -0
  138. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/Rakefile +36 -0
  139. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/bin/rake-compiler-dock +18 -0
  140. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/build/mk_i686.rb +16 -0
  141. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/build/patches/rake-compiler-1.0.7/enable-static.diff +13 -0
  142. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/build/patches/ruby-2.5.3/no_sendfile.patch +24 -0
  143. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/build/runas +12 -0
  144. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/build/sigfw.c +45 -0
  145. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/build/strip_wrapper +30 -0
  146. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/build/sudoers +1 -0
  147. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/lib/rake_compiler_dock.rb +66 -0
  148. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/lib/rake_compiler_dock/colors.rb +43 -0
  149. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/lib/rake_compiler_dock/docker_check.rb +350 -0
  150. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/lib/rake_compiler_dock/gem_helper.rb +73 -0
  151. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/lib/rake_compiler_dock/predefined_user_group.rb +5 -0
  152. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/lib/rake_compiler_dock/starter.rb +155 -0
  153. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/lib/rake_compiler_dock/version.rb +4 -0
  154. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/rake-compiler-dock.gemspec +28 -0
  155. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/test/test_environment_variables.rb +54 -0
  156. data/vendor/bundle/ruby/2.5.0/gems/rake-compiler-dock-0.7.2/test/test_starter.rb +33 -0
  157. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/COPYING +67 -0
  158. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/GPL +339 -0
  159. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/LGPL +502 -0
  160. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/PSFL +271 -0
  161. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/README.md +101 -0
  162. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/Rakefile +80 -0
  163. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/doc/text/getting-started.md +246 -0
  164. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/doc/text/how-to.md +90 -0
  165. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/doc/text/news.md +1453 -0
  166. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test-unit.rb +34 -0
  167. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit.rb +514 -0
  168. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/assertion-failed-error.rb +25 -0
  169. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/assertions.rb +2256 -0
  170. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/attribute-matcher.rb +26 -0
  171. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/attribute.rb +227 -0
  172. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/auto-runner-loader.rb +17 -0
  173. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/autorunner.rb +537 -0
  174. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/code-snippet-fetcher.rb +56 -0
  175. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/collector.rb +73 -0
  176. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/collector/descendant.rb +19 -0
  177. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/collector/dir.rb +108 -0
  178. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/collector/load.rb +197 -0
  179. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/collector/objectspace.rb +34 -0
  180. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/collector/xml.rb +249 -0
  181. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/color-scheme.rb +198 -0
  182. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/color.rb +134 -0
  183. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/data-sets.rb +116 -0
  184. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/data.rb +371 -0
  185. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/diff.rb +746 -0
  186. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/error.rb +158 -0
  187. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/exception-handler.rb +82 -0
  188. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/failure.rb +169 -0
  189. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/fault-location-detector.rb +100 -0
  190. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/fixture.rb +298 -0
  191. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/notification.rb +138 -0
  192. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/omission.rb +198 -0
  193. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/pending.rb +155 -0
  194. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/priority.rb +196 -0
  195. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/runner/console.rb +84 -0
  196. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/runner/emacs.rb +8 -0
  197. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/runner/xml.rb +15 -0
  198. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/test-suite-creator.rb +103 -0
  199. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/testcase.rb +899 -0
  200. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/testresult.rb +132 -0
  201. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/testsuite.rb +175 -0
  202. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/ui/console/outputlevel.rb +15 -0
  203. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/ui/console/testrunner.rb +750 -0
  204. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/ui/emacs/testrunner.rb +49 -0
  205. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/ui/testrunner.rb +53 -0
  206. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/ui/testrunnermediator.rb +114 -0
  207. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/ui/testrunnerutilities.rb +41 -0
  208. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/ui/xml/testrunner.rb +224 -0
  209. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/util/backtracefilter.rb +59 -0
  210. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/util/method-owner-finder.rb +28 -0
  211. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/util/observable.rb +90 -0
  212. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/util/output.rb +32 -0
  213. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/util/procwrapper.rb +48 -0
  214. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/lib/test/unit/version.rb +5 -0
  215. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/sample/adder.rb +13 -0
  216. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/sample/subtracter.rb +12 -0
  217. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/sample/test_adder.rb +20 -0
  218. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/sample/test_subtracter.rb +20 -0
  219. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/sample/test_user.rb +23 -0
  220. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/collector/test-descendant.rb +182 -0
  221. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/collector/test-load.rb +475 -0
  222. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/collector/test_dir.rb +407 -0
  223. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/collector/test_objectspace.rb +102 -0
  224. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/fixtures/header-label.csv +3 -0
  225. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/fixtures/header-label.tsv +3 -0
  226. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/fixtures/header.csv +3 -0
  227. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/fixtures/header.tsv +3 -0
  228. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/fixtures/no-header.csv +2 -0
  229. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/fixtures/no-header.tsv +2 -0
  230. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/fixtures/plus.csv +3 -0
  231. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/run-test.rb +22 -0
  232. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/test-assertions.rb +2187 -0
  233. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/test-attribute-matcher.rb +38 -0
  234. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/test-attribute.rb +123 -0
  235. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/test-code-snippet.rb +79 -0
  236. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/test-color-scheme.rb +82 -0
  237. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/test-color.rb +47 -0
  238. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/test-data.rb +419 -0
  239. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/test-diff.rb +518 -0
  240. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/test-emacs-runner.rb +60 -0
  241. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/test-error.rb +26 -0
  242. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/test-failure.rb +33 -0
  243. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/test-fault-location-detector.rb +163 -0
  244. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/test-fixture.rb +713 -0
  245. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/test-notification.rb +33 -0
  246. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/test-omission.rb +81 -0
  247. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/test-pending.rb +70 -0
  248. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/test-priority.rb +184 -0
  249. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/test-test-case.rb +1279 -0
  250. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/test-test-result.rb +113 -0
  251. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/test-test-suite-creator.rb +97 -0
  252. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/test-test-suite.rb +151 -0
  253. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/testunit-test-util.rb +33 -0
  254. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/ui/test_testrunmediator.rb +20 -0
  255. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/util/test-method-owner-finder.rb +38 -0
  256. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/util/test-output.rb +11 -0
  257. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/util/test_backtracefilter.rb +52 -0
  258. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/util/test_observable.rb +102 -0
  259. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.4/test/util/test_procwrapper.rb +36 -0
  260. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/COPYING +67 -0
  261. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/GPL +339 -0
  262. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/LGPL +502 -0
  263. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/PSFL +271 -0
  264. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/README.md +101 -0
  265. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/Rakefile +80 -0
  266. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/doc/text/getting-started.md +246 -0
  267. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/doc/text/how-to.md +90 -0
  268. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/doc/text/news.md +1464 -0
  269. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test-unit.rb +34 -0
  270. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit.rb +514 -0
  271. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/assertion-failed-error.rb +25 -0
  272. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/assertions.rb +2256 -0
  273. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/attribute-matcher.rb +26 -0
  274. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/attribute.rb +227 -0
  275. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/auto-runner-loader.rb +17 -0
  276. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/autorunner.rb +537 -0
  277. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/code-snippet-fetcher.rb +58 -0
  278. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/collector.rb +73 -0
  279. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/collector/descendant.rb +19 -0
  280. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/collector/dir.rb +108 -0
  281. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/collector/load.rb +197 -0
  282. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/collector/objectspace.rb +34 -0
  283. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/collector/xml.rb +249 -0
  284. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/color-scheme.rb +198 -0
  285. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/color.rb +134 -0
  286. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/data-sets.rb +116 -0
  287. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/data.rb +371 -0
  288. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/diff.rb +746 -0
  289. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/error.rb +158 -0
  290. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/exception-handler.rb +82 -0
  291. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/failure.rb +169 -0
  292. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/fault-location-detector.rb +100 -0
  293. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/fixture.rb +298 -0
  294. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/notification.rb +138 -0
  295. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/omission.rb +198 -0
  296. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/pending.rb +155 -0
  297. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/priority.rb +196 -0
  298. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/runner/console.rb +84 -0
  299. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/runner/emacs.rb +8 -0
  300. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/runner/xml.rb +15 -0
  301. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/test-suite-creator.rb +103 -0
  302. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/testcase.rb +899 -0
  303. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/testresult.rb +132 -0
  304. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/testsuite.rb +175 -0
  305. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/ui/console/outputlevel.rb +15 -0
  306. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/ui/console/testrunner.rb +750 -0
  307. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/ui/emacs/testrunner.rb +49 -0
  308. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunner.rb +53 -0
  309. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunnermediator.rb +114 -0
  310. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunnerutilities.rb +41 -0
  311. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/ui/xml/testrunner.rb +224 -0
  312. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/util/backtracefilter.rb +59 -0
  313. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/util/method-owner-finder.rb +28 -0
  314. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/util/observable.rb +90 -0
  315. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/util/output.rb +32 -0
  316. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/util/procwrapper.rb +48 -0
  317. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/lib/test/unit/version.rb +5 -0
  318. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/sample/adder.rb +13 -0
  319. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/sample/subtracter.rb +12 -0
  320. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/sample/test_adder.rb +20 -0
  321. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/sample/test_subtracter.rb +20 -0
  322. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/sample/test_user.rb +23 -0
  323. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/collector/test-descendant.rb +182 -0
  324. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/collector/test-load.rb +475 -0
  325. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/collector/test_dir.rb +407 -0
  326. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/collector/test_objectspace.rb +102 -0
  327. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/fixtures/header-label.csv +3 -0
  328. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/fixtures/header-label.tsv +3 -0
  329. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/fixtures/header.csv +3 -0
  330. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/fixtures/header.tsv +3 -0
  331. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/fixtures/no-header.csv +2 -0
  332. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/fixtures/no-header.tsv +2 -0
  333. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/fixtures/plus.csv +3 -0
  334. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/run-test.rb +22 -0
  335. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/test-assertions.rb +2187 -0
  336. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/test-attribute-matcher.rb +38 -0
  337. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/test-attribute.rb +123 -0
  338. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/test-code-snippet.rb +79 -0
  339. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/test-color-scheme.rb +82 -0
  340. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/test-color.rb +47 -0
  341. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/test-data.rb +419 -0
  342. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/test-diff.rb +518 -0
  343. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/test-emacs-runner.rb +60 -0
  344. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/test-error.rb +26 -0
  345. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/test-failure.rb +33 -0
  346. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/test-fault-location-detector.rb +163 -0
  347. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/test-fixture.rb +713 -0
  348. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/test-notification.rb +33 -0
  349. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/test-omission.rb +81 -0
  350. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/test-pending.rb +70 -0
  351. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/test-priority.rb +184 -0
  352. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/test-test-case.rb +1279 -0
  353. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/test-test-result.rb +113 -0
  354. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/test-test-suite-creator.rb +97 -0
  355. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/test-test-suite.rb +151 -0
  356. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/testunit-test-util.rb +33 -0
  357. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/ui/test_testrunmediator.rb +20 -0
  358. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/util/test-method-owner-finder.rb +38 -0
  359. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/util/test-output.rb +11 -0
  360. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/util/test_backtracefilter.rb +52 -0
  361. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/util/test_observable.rb +102 -0
  362. data/vendor/bundle/ruby/2.5.0/gems/test-unit-3.3.5/test/util/test_procwrapper.rb +36 -0
  363. data/vendor/bundle/ruby/2.5.0/specifications/power_assert-1.1.5.gemspec +54 -0
  364. data/vendor/bundle/ruby/2.5.0/specifications/power_assert-1.1.7.gemspec +54 -0
  365. data/vendor/bundle/ruby/2.5.0/specifications/rake-13.0.1.gemspec +26 -0
  366. data/vendor/bundle/ruby/2.5.0/specifications/rake-compiler-dock-0.7.2.gemspec +40 -0
  367. data/vendor/bundle/ruby/2.5.0/specifications/test-unit-3.3.4.gemspec +48 -0
  368. data/vendor/bundle/ruby/2.5.0/specifications/test-unit-3.3.5.gemspec +48 -0
  369. data/vendor/bundle/ruby/2.7.0/bin/rake +27 -0
  370. data/vendor/bundle/ruby/2.7.0/bin/rake.bat +2 -0
  371. data/vendor/bundle/ruby/2.7.0/gems/power_assert-1.1.7/BSDL +22 -0
  372. data/vendor/bundle/ruby/2.7.0/gems/power_assert-1.1.7/COPYING +57 -0
  373. data/vendor/bundle/ruby/2.7.0/gems/power_assert-1.1.7/Gemfile +9 -0
  374. data/vendor/bundle/ruby/2.7.0/gems/power_assert-1.1.7/LEGAL +4 -0
  375. data/vendor/bundle/ruby/2.7.0/gems/power_assert-1.1.7/README.rdoc +81 -0
  376. data/vendor/bundle/ruby/2.7.0/gems/power_assert-1.1.7/Rakefile +59 -0
  377. data/vendor/bundle/ruby/2.7.0/gems/power_assert-1.1.7/bin/console +12 -0
  378. data/vendor/bundle/ruby/2.7.0/gems/power_assert-1.1.7/bin/setup +6 -0
  379. data/vendor/bundle/ruby/2.7.0/gems/power_assert-1.1.7/lib/power_assert.rb +98 -0
  380. data/vendor/bundle/ruby/2.7.0/gems/power_assert-1.1.7/lib/power_assert/colorize.rb +9 -0
  381. data/vendor/bundle/ruby/2.7.0/gems/power_assert-1.1.7/lib/power_assert/configuration.rb +46 -0
  382. data/vendor/bundle/ruby/2.7.0/gems/power_assert-1.1.7/lib/power_assert/context.rb +238 -0
  383. data/vendor/bundle/ruby/2.7.0/gems/power_assert-1.1.7/lib/power_assert/enable_tracepoint_events.rb +91 -0
  384. data/vendor/bundle/ruby/2.7.0/gems/power_assert-1.1.7/lib/power_assert/inspector.rb +61 -0
  385. data/vendor/bundle/ruby/2.7.0/gems/power_assert-1.1.7/lib/power_assert/parser.rb +251 -0
  386. data/vendor/bundle/ruby/2.7.0/gems/power_assert-1.1.7/lib/power_assert/version.rb +3 -0
  387. data/vendor/bundle/ruby/2.7.0/gems/power_assert-1.1.7/power_assert.gemspec +31 -0
  388. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/CONTRIBUTING.rdoc +43 -0
  389. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/Gemfile +10 -0
  390. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/History.rdoc +2368 -0
  391. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/MIT-LICENSE +21 -0
  392. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/README.rdoc +155 -0
  393. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/Rakefile +41 -0
  394. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/bin/bundle +105 -0
  395. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/bin/console +7 -0
  396. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/bin/rake +29 -0
  397. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/bin/rdoc +29 -0
  398. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/bin/rubocop +29 -0
  399. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/bin/setup +6 -0
  400. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/doc/command_line_usage.rdoc +158 -0
  401. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/doc/example/Rakefile1 +38 -0
  402. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/doc/example/Rakefile2 +35 -0
  403. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/doc/example/a.c +6 -0
  404. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/doc/example/b.c +6 -0
  405. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/doc/example/main.c +11 -0
  406. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/doc/glossary.rdoc +42 -0
  407. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/doc/jamis.rb +592 -0
  408. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/doc/proto_rake.rdoc +127 -0
  409. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/doc/rake.1 +156 -0
  410. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/doc/rakefile.rdoc +622 -0
  411. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/doc/rational.rdoc +151 -0
  412. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/exe/rake +27 -0
  413. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake.rb +71 -0
  414. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/application.rb +824 -0
  415. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/backtrace.rb +24 -0
  416. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/clean.rb +78 -0
  417. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/cloneable.rb +17 -0
  418. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/cpu_counter.rb +107 -0
  419. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/default_loader.rb +15 -0
  420. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/dsl_definition.rb +195 -0
  421. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/early_time.rb +22 -0
  422. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/ext/core.rb +26 -0
  423. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/ext/string.rb +176 -0
  424. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/file_creation_task.rb +25 -0
  425. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/file_list.rb +435 -0
  426. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/file_task.rb +54 -0
  427. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/file_utils.rb +134 -0
  428. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/file_utils_ext.rb +134 -0
  429. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/invocation_chain.rb +57 -0
  430. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/invocation_exception_mixin.rb +17 -0
  431. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/late_time.rb +18 -0
  432. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/linked_list.rb +112 -0
  433. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/loaders/makefile.rb +54 -0
  434. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/multi_task.rb +14 -0
  435. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/name_space.rb +38 -0
  436. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/packagetask.rb +222 -0
  437. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/phony.rb +16 -0
  438. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/private_reader.rb +21 -0
  439. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/promise.rb +100 -0
  440. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/pseudo_status.rb +30 -0
  441. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/rake_module.rb +67 -0
  442. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/rake_test_loader.rb +27 -0
  443. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/rule_recursion_overflow_error.rb +20 -0
  444. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/scope.rb +43 -0
  445. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/task.rb +434 -0
  446. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/task_argument_error.rb +8 -0
  447. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/task_arguments.rb +109 -0
  448. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/task_manager.rb +331 -0
  449. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/tasklib.rb +12 -0
  450. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/testtask.rb +224 -0
  451. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/thread_history_display.rb +49 -0
  452. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/thread_pool.rb +163 -0
  453. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/trace_output.rb +23 -0
  454. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/version.rb +10 -0
  455. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/lib/rake/win32.rb +51 -0
  456. data/vendor/bundle/ruby/2.7.0/gems/rake-13.0.1/rake.gemspec +43 -0
  457. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/COPYING +67 -0
  458. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/GPL +339 -0
  459. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/LGPL +502 -0
  460. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/PSFL +271 -0
  461. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/README.md +101 -0
  462. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/Rakefile +80 -0
  463. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/doc/text/getting-started.md +246 -0
  464. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/doc/text/how-to.md +90 -0
  465. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/doc/text/news.md +1464 -0
  466. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test-unit.rb +34 -0
  467. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit.rb +514 -0
  468. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/assertion-failed-error.rb +25 -0
  469. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/assertions.rb +2256 -0
  470. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/attribute-matcher.rb +26 -0
  471. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/attribute.rb +227 -0
  472. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/auto-runner-loader.rb +17 -0
  473. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/autorunner.rb +537 -0
  474. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/code-snippet-fetcher.rb +58 -0
  475. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/collector.rb +73 -0
  476. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/collector/descendant.rb +19 -0
  477. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/collector/dir.rb +108 -0
  478. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/collector/load.rb +197 -0
  479. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/collector/objectspace.rb +34 -0
  480. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/collector/xml.rb +249 -0
  481. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/color-scheme.rb +198 -0
  482. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/color.rb +134 -0
  483. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/data-sets.rb +116 -0
  484. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/data.rb +371 -0
  485. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/diff.rb +746 -0
  486. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/error.rb +158 -0
  487. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/exception-handler.rb +82 -0
  488. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/failure.rb +169 -0
  489. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/fault-location-detector.rb +100 -0
  490. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/fixture.rb +298 -0
  491. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/notification.rb +138 -0
  492. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/omission.rb +198 -0
  493. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/pending.rb +155 -0
  494. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/priority.rb +196 -0
  495. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/runner/console.rb +84 -0
  496. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/runner/emacs.rb +8 -0
  497. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/runner/xml.rb +15 -0
  498. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/test-suite-creator.rb +103 -0
  499. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testcase.rb +899 -0
  500. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testresult.rb +132 -0
  501. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/testsuite.rb +175 -0
  502. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/console/outputlevel.rb +15 -0
  503. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/console/testrunner.rb +750 -0
  504. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/emacs/testrunner.rb +49 -0
  505. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunner.rb +53 -0
  506. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunnermediator.rb +114 -0
  507. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/testrunnerutilities.rb +41 -0
  508. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/ui/xml/testrunner.rb +224 -0
  509. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/util/backtracefilter.rb +59 -0
  510. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/util/method-owner-finder.rb +28 -0
  511. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/util/observable.rb +90 -0
  512. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/util/output.rb +32 -0
  513. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/util/procwrapper.rb +48 -0
  514. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/lib/test/unit/version.rb +5 -0
  515. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/sample/adder.rb +13 -0
  516. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/sample/subtracter.rb +12 -0
  517. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/sample/test_adder.rb +20 -0
  518. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/sample/test_subtracter.rb +20 -0
  519. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/sample/test_user.rb +23 -0
  520. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/collector/test-descendant.rb +182 -0
  521. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/collector/test-load.rb +475 -0
  522. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/collector/test_dir.rb +407 -0
  523. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/collector/test_objectspace.rb +102 -0
  524. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/fixtures/header-label.csv +3 -0
  525. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/fixtures/header-label.tsv +3 -0
  526. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/fixtures/header.csv +3 -0
  527. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/fixtures/header.tsv +3 -0
  528. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/fixtures/no-header.csv +2 -0
  529. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/fixtures/no-header.tsv +2 -0
  530. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/fixtures/plus.csv +3 -0
  531. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/run-test.rb +22 -0
  532. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/test-assertions.rb +2187 -0
  533. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/test-attribute-matcher.rb +38 -0
  534. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/test-attribute.rb +123 -0
  535. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/test-code-snippet.rb +79 -0
  536. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/test-color-scheme.rb +82 -0
  537. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/test-color.rb +47 -0
  538. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/test-data.rb +419 -0
  539. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/test-diff.rb +518 -0
  540. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/test-emacs-runner.rb +60 -0
  541. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/test-error.rb +26 -0
  542. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/test-failure.rb +33 -0
  543. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/test-fault-location-detector.rb +163 -0
  544. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/test-fixture.rb +713 -0
  545. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/test-notification.rb +33 -0
  546. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/test-omission.rb +81 -0
  547. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/test-pending.rb +70 -0
  548. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/test-priority.rb +184 -0
  549. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/test-test-case.rb +1279 -0
  550. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/test-test-result.rb +113 -0
  551. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/test-test-suite-creator.rb +97 -0
  552. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/test-test-suite.rb +151 -0
  553. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/testunit-test-util.rb +33 -0
  554. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/ui/test_testrunmediator.rb +20 -0
  555. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/util/test-method-owner-finder.rb +38 -0
  556. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/util/test-output.rb +11 -0
  557. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/util/test_backtracefilter.rb +52 -0
  558. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/util/test_observable.rb +102 -0
  559. data/vendor/bundle/ruby/2.7.0/gems/test-unit-3.3.5/test/util/test_procwrapper.rb +36 -0
  560. data/vendor/bundle/ruby/2.7.0/specifications/power_assert-1.1.7.gemspec +46 -0
  561. data/vendor/bundle/ruby/2.7.0/specifications/rake-13.0.1.gemspec +26 -0
  562. data/vendor/bundle/ruby/2.7.0/specifications/test-unit-3.3.5.gemspec +41 -0
  563. data/win32-api.gemspec +27 -29
  564. metadata +610 -63
@@ -0,0 +1,3 @@
1
+ label,expected,label
2
+ upper case,HELLO,HELLO
3
+ lower case,Hello,hello
@@ -0,0 +1,3 @@
1
+ label expected label
2
+ upper case HELLO HELLO
3
+ lower case Hello hello
@@ -0,0 +1,3 @@
1
+ label,expected,target
2
+ empty string,true,""
3
+ plain string,false,hello
@@ -0,0 +1,3 @@
1
+ label expected target
2
+ empty string true ""
3
+ plain string false hello
@@ -0,0 +1,2 @@
1
+ empty string,true,""
2
+ plain string,false,hello
@@ -0,0 +1,2 @@
1
+ empty string true ""
2
+ plain string false hello
@@ -0,0 +1,3 @@
1
+ label,expected,augend,addend
2
+ positive positive,4,3,1
3
+ positive negative,-1,1,-2
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $VERBOSE = true
4
+
5
+ $KCODE = "utf8" unless "".respond_to?(:encoding)
6
+
7
+ base_dir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
8
+ lib_dir = File.join(base_dir, "lib")
9
+ test_dir = File.join(base_dir, "test")
10
+
11
+ $LOAD_PATH.unshift(lib_dir)
12
+
13
+ require 'test/unit'
14
+
15
+ test_unit_notify_base_dir = File.join(base_dir, "..", "test-unit-notify")
16
+ test_unit_notify_base_dir = File.expand_path(test_unit_notify_base_dir)
17
+ if File.exist?(test_unit_notify_base_dir)
18
+ $LOAD_PATH.unshift(File.join(test_unit_notify_base_dir, "lib"))
19
+ require 'test/unit/notify'
20
+ end
21
+
22
+ exit Test::Unit::AutoRunner.run(true, test_dir)
@@ -0,0 +1,2187 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Author:: Nathaniel Talbott.
4
+ # Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
5
+ # Copyright (c) 2009-2014 Kouhei Sutou. All rights reserved.
6
+ # License:: Ruby license.
7
+
8
+ require 'test/unit'
9
+ require "testunit-test-util"
10
+
11
+ module Test
12
+ module Unit
13
+ module AssertionCheckable
14
+ include TestUnitTestUtil
15
+
16
+ private
17
+ def check(value, message="")
18
+ add_assertion
19
+ raise AssertionFailedError.new(message) unless value
20
+ end
21
+
22
+ def check_assertions(expect_fail, options={})
23
+ expected_message = options[:expected_message]
24
+ actual_message_normalizer = options[:actual_message_normalizer]
25
+ return_value_expected = options[:return_value_expected]
26
+ @actual_assertion_count = 0
27
+ failed = true
28
+ actual_message = nil
29
+ @catch_assertions = true
30
+ return_value = nil
31
+ begin
32
+ return_value = yield
33
+ failed = false
34
+ rescue AssertionFailedError => error
35
+ return_value = error
36
+ actual_message = error.message
37
+ end
38
+ @catch_assertions = false
39
+
40
+ if expect_fail
41
+ message = "Should have failed, but didn't"
42
+ else
43
+ message = "Should not have failed, but did with message\n" +
44
+ "<#{actual_message}>"
45
+ end
46
+ check(expect_fail == failed, message)
47
+
48
+ message = "Should have made one assertion but made\n" +
49
+ "<#{@actual_assertion_count}>"
50
+ check(1 == @actual_assertion_count, message)
51
+
52
+ if expect_fail
53
+ if actual_message_normalizer
54
+ actual_message = actual_message_normalizer.call(actual_message)
55
+ end
56
+ case expected_message
57
+ when String
58
+ check(expected_message == actual_message,
59
+ "Should have the correct message.\n" +
60
+ "<#{expected_message.inspect}> expected but was\n" +
61
+ "<#{actual_message.inspect}>")
62
+ when Regexp
63
+ check(expected_message =~ actual_message,
64
+ "The message should match correctly.\n" +
65
+ "</#{expected_message.source}/> expected to match\n" +
66
+ "<#{actual_message.inspect}>")
67
+ else
68
+ check(false,
69
+ "Incorrect expected message type in assert_nothing_failed")
70
+ end
71
+ else
72
+ case return_value_expected
73
+ when :dont_care
74
+ # do nothing
75
+ when true
76
+ check(!return_value.nil?, "Should return a value")
77
+ else
78
+ check(return_value.nil?,
79
+ "Should not return a value but returned <#{return_value}>")
80
+ end
81
+ end
82
+
83
+ return_value
84
+ end
85
+
86
+ def check_nothing_fails(return_value_expected=false, &proc)
87
+ check_assertions(false,
88
+ {:expected_message => nil,
89
+ :return_value_expected => return_value_expected},
90
+ &proc)
91
+ end
92
+
93
+ def check_fail(expected_message, options={}, &proc)
94
+ check_assertions(true,
95
+ options.merge(:expected_message => expected_message),
96
+ &proc)
97
+ end
98
+
99
+ def check_fail_exception(expected_message, options={}, &proc)
100
+ normalizer = lambda do |actual_message|
101
+ actual_message.gsub(/(^[^:\n]+:\d+:.+\n?)+\z/, "")
102
+ end
103
+ check_assertions(true,
104
+ options.merge(:expected_message => expected_message,
105
+ :actual_message_normalizer => normalizer),
106
+ &proc)
107
+ end
108
+
109
+ def inspect_tag(tag)
110
+ tag.inspect
111
+ end
112
+
113
+ def add_failure(message, location=caller, options=nil)
114
+ unless @catch_assertions
115
+ super
116
+ end
117
+ end
118
+
119
+ def add_assertion
120
+ if @catch_assertions
121
+ @actual_assertion_count += 1
122
+ else
123
+ super
124
+ end
125
+ end
126
+ end
127
+
128
+ class TestAssertions < TestCase
129
+ include AssertionCheckable
130
+
131
+ class TestAssertBlock < self
132
+ def test_pass_without_message
133
+ check_nothing_fails {
134
+ assert_block {true}
135
+ }
136
+ end
137
+
138
+ def test_pass_with_message
139
+ check_nothing_fails {
140
+ assert_block("successful assert_block") {true}
141
+ }
142
+ end
143
+
144
+ def test_failure_without_message
145
+ check_fail("assert_block failed.") {
146
+ assert_block {false}
147
+ }
148
+ end
149
+
150
+ def test_failure_with_message
151
+ check_fail("failed assert_block") {
152
+ assert_block("failed assert_block") {false}
153
+ }
154
+ end
155
+ end
156
+
157
+ class TestAssertEqual < self
158
+ class TestSuccess < self
159
+ def test_without_message
160
+ check_nothing_fails {
161
+ assert_equal("string1", "string1")
162
+ }
163
+ end
164
+
165
+ def test_with_message
166
+ check_nothing_fails {
167
+ assert_equal("string1", "string1", "successful assert_equal")
168
+ }
169
+ end
170
+ end
171
+
172
+ class TestFailure < self
173
+ def test_without_message
174
+ message = <<-EOM.chomp
175
+ <"string1"> expected but was
176
+ <"string2">.
177
+
178
+ diff:
179
+ - string1
180
+ ? ^
181
+ + string2
182
+ ? ^
183
+ EOM
184
+ check_fail(message) {
185
+ assert_equal("string1", "string2")
186
+ }
187
+ end
188
+
189
+ def test_with_message
190
+ message = <<-EOM.chomp
191
+ failed assert_equal.
192
+ <"string1"> expected but was
193
+ <"string2">.
194
+
195
+ diff:
196
+ - string1
197
+ ? ^
198
+ + string2
199
+ ? ^
200
+ EOM
201
+ check_fail(message) {
202
+ assert_equal("string1", "string2", "failed assert_equal")
203
+ }
204
+ end
205
+
206
+ def test_with_message_proc
207
+ message = <<-EOM.chomp
208
+ failed assert_equal.
209
+ <"string1"> expected but was
210
+ <"string2">.
211
+
212
+ diff:
213
+ - string1
214
+ ? ^
215
+ + string2
216
+ ? ^
217
+ EOM
218
+ check_fail(message) do
219
+ assert_equal("string1", "string2", lambda {"failed assert_equal"})
220
+ end
221
+ end
222
+ end
223
+
224
+ class TestSystemMessage < self
225
+ def test_different_type
226
+ message = <<-EOM.chomp
227
+ <"111111"> expected but was
228
+ <111111>.
229
+
230
+ diff:
231
+ - "111111"
232
+ ? - -
233
+ + 111111
234
+ EOM
235
+ check_fail(message) do
236
+ assert_equal("111111", 111111)
237
+ end
238
+ end
239
+
240
+ def test_long_line
241
+ expected = ["0123456789",
242
+ "1123456789",
243
+ "2123456789",
244
+ "3123456789",
245
+ "4123456789",
246
+ "5123456789",
247
+ "6123456789",
248
+ "7123456789",
249
+ "8123456789"].join
250
+ actual = ["0000000000",
251
+ "1123456789",
252
+ "2123456789",
253
+ "3123456789",
254
+ "4123456789",
255
+ "5123456789",
256
+ "6123456789",
257
+ "7123456789",
258
+ "8123456789"].join
259
+ message = <<-EOM.chomp
260
+ <"#{expected}"> expected but was
261
+ <"#{actual}">.
262
+
263
+ diff:
264
+ - #{expected}
265
+ ? ^^^^^^^^^
266
+ + #{actual}
267
+ ? ^^^^^^^^^
268
+
269
+ folded diff:
270
+ - 012345678911234567892123456789312345678941234567895123456789612345678971234567
271
+ ? ^^^^^^^^^
272
+ + 000000000011234567892123456789312345678941234567895123456789612345678971234567
273
+ ? ^^^^^^^^^
274
+ 898123456789
275
+ EOM
276
+ check_fail(message) do
277
+ assert_equal(expected, actual)
278
+ end
279
+ end
280
+
281
+ def test_too_small_difference
282
+ message = <<-EOM.chomp
283
+ <1> expected but was
284
+ <2>.
285
+ EOM
286
+ check_fail(message) do
287
+ assert_equal(1, 2)
288
+ end
289
+ end
290
+
291
+ def test_same_inspected_objects
292
+ same_inspected_class = Class.new do
293
+ def inspect
294
+ "inspected"
295
+ end
296
+ end
297
+ object1 = same_inspected_class.new
298
+ object2 = same_inspected_class.new
299
+ message = <<-EOM.chomp
300
+ <inspected> expected but was
301
+ <inspected>.
302
+ EOM
303
+ check_fail(message) do
304
+ assert_equal(object1, object2)
305
+ end
306
+ end
307
+
308
+ def test_multi_lines_result
309
+ message = <<-EOM.chomp
310
+ <#{AssertionMessage.convert("a\nb")}> expected but was
311
+ <#{AssertionMessage.convert("x")}>.
312
+
313
+ diff:
314
+ + x
315
+ - a
316
+ - b
317
+ EOM
318
+ check_fail(message) do
319
+ assert_equal("a\nb", "x")
320
+ end
321
+ end
322
+
323
+ def test_large_string
324
+ message = <<-EOM.chomp
325
+ <#{AssertionMessage.convert("a\n" + "x" * 997)}> expected but was
326
+ <#{AssertionMessage.convert("x")}>.
327
+
328
+ diff:
329
+ + x
330
+ - a
331
+ - #{"x" * 997}
332
+
333
+ folded diff:
334
+ + x
335
+ - a
336
+ #{(["- " + ("x" * 78)] * 12).join("\n")}
337
+ - #{"x" * 61}
338
+ EOM
339
+ check_fail(message) do
340
+ assert_equal("a\n" + "x" * 997, "x")
341
+ end
342
+
343
+ message = <<-EOM.chomp
344
+ <#{AssertionMessage.convert("a\n" + "x" * 998)}> expected but was
345
+ <#{AssertionMessage.convert("x")}>.
346
+ EOM
347
+ check_fail(message) do
348
+ assert_equal("a\n" + "x" * 998, "x")
349
+ end
350
+ end
351
+
352
+ def test_max_diff_target_string_size
353
+ key = "TEST_UNIT_MAX_DIFF_TARGET_STRING_SIZE"
354
+ before_value = ENV[key]
355
+ ENV[key] = "100"
356
+ begin
357
+ message = <<-EOM.chomp
358
+ <#{AssertionMessage.convert("a\n" + "x" * 97)}> expected but was
359
+ <#{AssertionMessage.convert("x")}>.
360
+
361
+ diff:
362
+ + x
363
+ - a
364
+ - #{"x" * 97}
365
+
366
+ folded diff:
367
+ + x
368
+ - a
369
+ #{(["- " + ("x" * 78)]).join("\n")}
370
+ - #{"x" * 19}
371
+ EOM
372
+ check_fail(message) do
373
+ assert_equal("a\n" + "x" * 97, "x")
374
+ end
375
+
376
+ message = <<-EOM.chomp
377
+ <#{AssertionMessage.convert("a\n" + "x" * 98)}> expected but was
378
+ <#{AssertionMessage.convert("x")}>.
379
+ EOM
380
+ check_fail(message) do
381
+ assert_equal("a\n" + "x" * 98, "x")
382
+ end
383
+ ensure
384
+ ENV[key] = before_value
385
+ end
386
+ end
387
+
388
+ def test_different_encoding
389
+ utf8_string = "こんにちは"
390
+ unless utf8_string.respond_to?(:force_encoding)
391
+ omit("encoding test is for Ruby >= 1.9")
392
+ end
393
+ ascii_8bit_string = utf8_string.dup.force_encoding("ascii-8bit")
394
+ message = <<-EOM.chomp
395
+ <#{utf8_string.inspect}>("UTF-8") expected but was
396
+ <#{ascii_8bit_string.inspect}>("ASCII-8BIT").
397
+ EOM
398
+ check_fail(message) do
399
+ assert_equal(utf8_string, ascii_8bit_string)
400
+ end
401
+ end
402
+
403
+ def test_different_hash
404
+ designers = {
405
+ "Ruby" => "Matz",
406
+ "Lisp" => "John McCarthy",
407
+ }
408
+ categories = {
409
+ "LL" => ["Ruby", "Python"],
410
+ "Heavy" => ["C", "C++"],
411
+ }
412
+ message = <<-EOM.chomp
413
+ <{"Lisp"=>"John McCarthy", "Ruby"=>"Matz"}> expected but was
414
+ <{"Heavy"=>["C", "C++"], "LL"=>["Ruby", "Python"]}>.
415
+ EOM
416
+ check_fail(message) do
417
+ assert_equal(designers, categories)
418
+ end
419
+ end
420
+
421
+ def test_recursive_hash
422
+ alice = {"name" => "Alice"}
423
+ bob = {"name" => "Bob"}
424
+ alice["followers"] = [bob]
425
+ bob["followers"] = [alice]
426
+ message = <<-EOM.chomp
427
+ <{"followers"=>[{"followers"=>[{...}], "name"=>"Bob"}], "name"=>"Alice"}> expected but was
428
+ <{"followers"=>[{"followers"=>[{...}], "name"=>"Alice"}], "name"=>"Bob"}>.
429
+
430
+ diff:
431
+ - {"followers"=>[{"followers"=>[{...}], "name"=>"Bob"}], "name"=>"Alice"}
432
+ ? -----------------
433
+ + {"followers"=>[{"followers"=>[{...}], "name"=>"Alice"}], "name"=>"Bob"}
434
+ ? +++++++++++++++++
435
+ EOM
436
+ check_fail(message) do
437
+ assert_equal(alice, bob)
438
+ end
439
+ end
440
+
441
+ def test_numeric
442
+ numeric_family_class = Class.new(Numeric) do
443
+ def inspect
444
+ "inspect is called"
445
+ end
446
+
447
+ def to_s
448
+ "to_s is called"
449
+ end
450
+ end
451
+ numeric = numeric_family_class.new
452
+
453
+ message = <<-MESSAGE.chomp
454
+ <to_s is called> expected but was
455
+ <"must be failed">.
456
+ MESSAGE
457
+ check_fail(message) do
458
+ assert_equal(numeric, "must be failed")
459
+ end
460
+ end
461
+ end
462
+ end
463
+
464
+ def test_assert_raise_success
465
+ return_value = nil
466
+ check_nothing_fails(true) do
467
+ return_value = assert_raise(RuntimeError) do
468
+ raise "Error"
469
+ end
470
+ end
471
+ check(return_value.kind_of?(Exception),
472
+ "Should have returned the exception " +
473
+ "from a successful assert_raise")
474
+ check(return_value.message == "Error",
475
+ "Should have returned the correct exception " +
476
+ "from a successful assert_raise")
477
+
478
+ check_nothing_fails(true) do
479
+ assert_raise(ArgumentError, "successful assert_raise") do
480
+ raise ArgumentError.new("Error")
481
+ end
482
+ end
483
+
484
+ check_nothing_fails(true) do
485
+ assert_raise(RuntimeError) do
486
+ raise "Error"
487
+ end
488
+ end
489
+
490
+ check_nothing_fails(true) do
491
+ assert_raise(RuntimeError, "successful assert_raise") do
492
+ raise "Error"
493
+ end
494
+ end
495
+
496
+ check_nothing_fails(true) do
497
+ assert_raise do
498
+ raise Exception, "Any exception"
499
+ end
500
+ end
501
+ end
502
+
503
+ def test_assert_raise_fail
504
+ check_fail("<RuntimeError> exception was expected but none was thrown.") do
505
+ assert_raise(RuntimeError) do
506
+ 1 + 1
507
+ end
508
+ end
509
+
510
+ message = <<-EOM.chomp
511
+ failed assert_raise.
512
+ <ArgumentError> exception expected but was
513
+ <RuntimeError(<Error>)>.
514
+ EOM
515
+ check_fail_exception(message) do
516
+ assert_raise(ArgumentError, "failed assert_raise") do
517
+ raise "Error"
518
+ end
519
+ end
520
+
521
+ message = <<-EOM
522
+ <Object> must be a subclass of Exception, an object of Exception subclasses or a Module.
523
+ EOM
524
+ check_fail(message.chomp) do
525
+ assert_nothing_raised(Object) do
526
+ 1 + 1
527
+ end
528
+ end
529
+ end
530
+
531
+ def test_assert_raise_module
532
+ exceptions = [ArgumentError, TypeError]
533
+ modules = [Math, Comparable]
534
+ rescues = exceptions + modules
535
+
536
+ exceptions.each do |exc|
537
+ return_value = nil
538
+ check_nothing_fails(true) do
539
+ return_value = assert_raise(*rescues) do
540
+ raise exc, "Error"
541
+ end
542
+ end
543
+ check(return_value.instance_of?(exc),
544
+ "Should have returned #{exc} but was #{return_value.class}")
545
+ check(return_value.message == "Error",
546
+ "Should have returned the correct exception " +
547
+ "from a successful assert_raise")
548
+ end
549
+
550
+ modules.each do |mod|
551
+ return_value = nil
552
+ check_nothing_fails(true) do
553
+ return_value = assert_raise(*rescues) do
554
+ raise Exception.new("Error").extend(mod)
555
+ end
556
+ end
557
+ check(mod === return_value,
558
+ "Should have returned #{mod}")
559
+ check(return_value.message == "Error",
560
+ "Should have returned the correct exception " +
561
+ "from a successful assert_raise")
562
+ end
563
+
564
+ check_fail("<[ArgumentError, TypeError, Math, Comparable]> exception " +
565
+ "was expected but none was thrown.") do
566
+ assert_raise(*rescues) do
567
+ 1 + 1
568
+ end
569
+ end
570
+
571
+ message = <<-EOM.chomp
572
+ failed assert_raise.
573
+ <[ArgumentError, TypeError]> exception expected but was
574
+ <RuntimeError(<Error>)>.
575
+ EOM
576
+ check_fail_exception(message) do
577
+ assert_raise(ArgumentError, TypeError, "failed assert_raise") do
578
+ raise "Error"
579
+ end
580
+ end
581
+ end
582
+
583
+ def test_assert_raise_instance
584
+ return_value = nil
585
+ check_nothing_fails(true) do
586
+ return_value = assert_raise(RuntimeError.new("Error")) do
587
+ raise "Error"
588
+ end
589
+ end
590
+ check(return_value.kind_of?(Exception),
591
+ "Should have returned the exception " +
592
+ "from a successful assert_raise")
593
+ check(return_value.message == "Error",
594
+ "Should have returned the correct exception " +
595
+ "from a successful assert_raise")
596
+
597
+ message = <<-EOM.chomp
598
+ <RuntimeError(<XXX>)> exception expected but was
599
+ <RuntimeError(<Error>)>.
600
+
601
+ diff:
602
+ - RuntimeError(<XXX>)
603
+ ? ^^^
604
+ + RuntimeError(<Error>)
605
+ ? ^^^^^
606
+ EOM
607
+ check_fail_exception(message) do
608
+ return_value = assert_raise(RuntimeError.new("XXX")) do
609
+ raise "Error"
610
+ end
611
+ end
612
+
613
+ different_error_class = Class.new(StandardError)
614
+ message = <<-EOM.chomp
615
+ <#{different_error_class.inspect}(<Error>)> exception expected but was
616
+ <RuntimeError(<Error>)>.
617
+ EOM
618
+ check_fail_exception(message) do
619
+ assert_raise(different_error_class.new("Error")) do
620
+ raise "Error"
621
+ end
622
+ end
623
+
624
+ different_error = different_error_class.new("Error")
625
+ def different_error.inspect
626
+ "DifferentError: \"Error\""
627
+ end
628
+ message = <<-EOM.chomp
629
+ <DifferentError: "Error"> exception expected but was
630
+ <RuntimeError(<Error>)>.
631
+ EOM
632
+ check_fail_exception(message) do
633
+ assert_raise(different_error) do
634
+ raise "Error"
635
+ end
636
+ end
637
+
638
+ check_nothing_fails(true) do
639
+ assert_raise(different_error_class.new("Error"),
640
+ RuntimeError.new("Error"),
641
+ RuntimeError.new("XXX")) do
642
+ raise "Error"
643
+ end
644
+ end
645
+ end
646
+
647
+ def test_assert_raise_jruby
648
+ omit("For JRuby") unless Object.const_defined?(:Java)
649
+
650
+ exception = Java::JavaLang::StringIndexOutOfBoundsException
651
+
652
+ return_value = nil
653
+ check_nothing_fails(true) do
654
+ return_value = assert_raise(exception) do
655
+ Java::JavaLang::String.new("abc").char_at(4)
656
+ end
657
+ end
658
+ check(return_value.instance_of?(exception),
659
+ "Should have returned #{exception} but was #{return_value.class}")
660
+ end
661
+
662
+ def test_assert_instance_of
663
+ check_nothing_fails {
664
+ assert_instance_of(String, "string")
665
+ }
666
+ check_nothing_fails {
667
+ assert_instance_of(String, "string", "successful assert_instance_of")
668
+ }
669
+ check_nothing_fails {
670
+ assert_instance_of(String, "string", "successful assert_instance_of")
671
+ }
672
+ check_fail(%Q{<"string"> was expected to be instance_of?\n<Hash> but was\n<String>.}) {
673
+ assert_instance_of(Hash, "string")
674
+ }
675
+ check_fail(%Q{failed assert_instance_of.\n<"string"> was expected to be instance_of?\n<Hash> but was\n<String>.}) {
676
+ assert_instance_of(Hash, "string", "failed assert_instance_of")
677
+ }
678
+
679
+ check_nothing_fails do
680
+ assert_instance_of([Class, NilClass], Array)
681
+ end
682
+ check_fail(%Q{<"string"> was expected to be instance_of?\n[<Class>, <NilClass>] but was\n<String>.}) do
683
+ assert_instance_of([Class, NilClass], "string")
684
+ end
685
+ check_fail(%Q{<Array> was expected to be instance_of?\n[<Module>, <NilClass>] but was\n<Class>.}) do
686
+ assert_instance_of([Module, NilClass], Array)
687
+ end
688
+ end
689
+
690
+ def test_assert_not_instance_of
691
+ check_nothing_fails {
692
+ assert_not_instance_of(NilClass, "string")
693
+ }
694
+ check_nothing_fails {
695
+ assert_not_instance_of(NilClass, "string", "successful assert_instance_of")
696
+ }
697
+ check_fail(%Q{<"string"> was expected to not be instance_of?\n<String> but was.}) {
698
+ assert_not_instance_of(String, "string")
699
+ }
700
+ check_fail(%Q{failed assert.\n<"string"> was expected to not be instance_of?\n<String> but was.}) {
701
+ assert_not_instance_of(String, "string", "failed assert")
702
+ }
703
+
704
+ check_nothing_fails do
705
+ assert_not_instance_of([Module, NilClass], Array)
706
+ end
707
+ check_fail(%Q{<Array> was expected to not be instance_of?\n[<Class>, <NilClass>] but was.}) do
708
+ assert_not_instance_of([Class, NilClass], Array)
709
+ end
710
+ check_fail(%Q{<"str"> was expected to not be instance_of?\n[<Numeric>, <String>] but was.}) do
711
+ assert_not_instance_of([Numeric, String], 'str')
712
+ end
713
+ end
714
+
715
+ def test_assert_nil
716
+ check_nothing_fails {
717
+ assert_nil(nil)
718
+ }
719
+ check_nothing_fails {
720
+ assert_nil(nil, "successful assert_nil")
721
+ }
722
+ check_nothing_fails {
723
+ assert_nil(nil, "successful assert_nil")
724
+ }
725
+ check_fail(%Q{<"string"> was expected to be nil.}) {
726
+ assert_nil("string")
727
+ }
728
+ check_fail(%Q{failed assert_nil.\n<"string"> was expected to be nil.}) {
729
+ assert_nil("string", "failed assert_nil")
730
+ }
731
+ end
732
+
733
+ def test_assert_not_nil
734
+ check_nothing_fails{assert_not_nil(false)}
735
+ check_nothing_fails{assert_not_nil(false, "message")}
736
+ check_fail("<nil> was expected to not be nil."){assert_not_nil(nil)}
737
+ check_fail("message.\n<nil> was expected to not be nil.") {assert_not_nil(nil, "message")}
738
+ end
739
+
740
+ def test_assert_kind_of
741
+ check_nothing_fails {
742
+ assert_kind_of(Module, Array)
743
+ }
744
+ check_nothing_fails {
745
+ assert_kind_of(Object, "string", "successful assert_kind_of")
746
+ }
747
+ check_nothing_fails {
748
+ assert_kind_of(String, "string", "successful assert_kind_of")
749
+ }
750
+ check_nothing_fails {
751
+ assert_kind_of(Comparable, 1)
752
+ }
753
+ check_fail(%Q{<"string"> was expected to be kind_of?\n<Class> but was\n<String>.}) {
754
+ assert_kind_of(Class, "string")
755
+ }
756
+ check_fail(%Q{failed assert_kind_of.\n<"string"> was expected to be kind_of?\n<Class> but was\n<String>.}) {
757
+ assert_kind_of(Class, "string", "failed assert_kind_of")
758
+ }
759
+
760
+ check_nothing_fails do
761
+ assert_kind_of([Class, NilClass], Array)
762
+ end
763
+ check_fail(%Q{<"string"> was expected to be kind_of?\n[<Class>, <NilClass>] but was\n<String>.}) do
764
+ assert_kind_of([Class, NilClass], "string")
765
+ end
766
+ end
767
+
768
+ def test_assert_not_kind_of
769
+ check_nothing_fails {
770
+ assert_not_kind_of(Class, 42)
771
+ }
772
+ check_nothing_fails {
773
+ assert_not_kind_of(Symbol, "string", "successful assert_not_kind_of")
774
+ }
775
+ check_nothing_fails {
776
+ assert_not_kind_of(Integer, 1.1)
777
+ }
778
+ check_fail(%Q{<1> was expected to not be kind_of?\n<Integer> but was.}) {
779
+ assert_not_kind_of(Integer, 1)
780
+ }
781
+ check_fail(%Q{failed assert_not_kind_of.\n<"string"> was expected to not be kind_of?\n<String> but was.}) {
782
+ assert_not_kind_of(String, "string", "failed assert_not_kind_of")
783
+ }
784
+
785
+ check_nothing_fails do
786
+ assert_not_kind_of([String, NilClass], 100)
787
+ end
788
+ check_fail(%Q{<Array> was expected to not be kind_of?\n[<Class>, <NilClass>] but was.}) do
789
+ assert_not_kind_of([Class, NilClass], Array)
790
+ end
791
+ end
792
+
793
+ def test_assert_match
794
+ check_nothing_fails {
795
+ assert_match(/strin./, "string")
796
+ }
797
+ check_nothing_fails {
798
+ assert_match("strin", "string")
799
+ }
800
+ check_nothing_fails {
801
+ assert_match(/strin./, "string", "successful assert_match")
802
+ }
803
+ check_nothing_fails {
804
+ assert_match(/strin./, "string", "successful assert_match")
805
+ }
806
+ check_fail(%Q{</slin./> was expected to be =~\n<"string">.}) {
807
+ assert_match(/slin./, "string")
808
+ }
809
+ check_fail(%Q{</strin\\./> was expected to be =~\n<"string">.}) {
810
+ assert_match("strin.", "string")
811
+ }
812
+ check_fail(%Q{failed assert_match.\n</slin./> was expected to be =~\n<"string">.}) {
813
+ assert_match(/slin./, "string", "failed assert_match")
814
+ }
815
+ end
816
+
817
+ def test_assert_same
818
+ thing = "thing"
819
+ check_nothing_fails {
820
+ assert_same(thing, thing)
821
+ }
822
+ check_nothing_fails {
823
+ assert_same(thing, thing, "successful assert_same")
824
+ }
825
+ check_nothing_fails {
826
+ assert_same(thing, thing, "successful assert_same")
827
+ }
828
+ thing2 = thing.dup
829
+ check_fail(%Q{<"thing">\nwith id <#{thing.__id__}> was expected to be equal? to\n<"thing">\nwith id <#{thing2.__id__}>.}) {
830
+ assert_same(thing, thing2)
831
+ }
832
+ check_fail(%Q{failed assert_same.\n<"thing">\nwith id <#{thing.__id__}> was expected to be equal? to\n<"thing">\nwith id <#{thing2.__id__}>.}) {
833
+ assert_same(thing, thing2, "failed assert_same")
834
+ }
835
+ end
836
+
837
+ def test_assert_nothing_raised
838
+ check_nothing_fails(:dont_care) {
839
+ assert_nothing_raised {
840
+ 1 + 1
841
+ }
842
+ }
843
+ check_nothing_fails(:dont_care) {
844
+ assert_nothing_raised("successful assert_nothing_raised") {
845
+ 1 + 1
846
+ }
847
+ }
848
+ check_nothing_fails(:dont_care) {
849
+ assert_nothing_raised("successful assert_nothing_raised") {
850
+ 1 + 1
851
+ }
852
+ }
853
+ check_nothing_fails(:dont_care) {
854
+ begin
855
+ assert_nothing_raised(RuntimeError, StandardError, Comparable, "successful assert_nothing_raised") {
856
+ raise ZeroDivisionError.new("ArgumentError")
857
+ }
858
+ rescue ZeroDivisionError
859
+ end
860
+ }
861
+ expected_message =
862
+ "<Object> must be a subclass of Exception, " +
863
+ "an object of Exception subclasses or a Module."
864
+ check_fail(expected_message) {
865
+ assert_nothing_raised(Object) {
866
+ 1 + 1
867
+ }
868
+ }
869
+ expected_message = <<-EOM.chomp
870
+ Exception raised:
871
+ RuntimeError(<Error>)
872
+ EOM
873
+ check_fail_exception(expected_message) {
874
+ assert_nothing_raised {
875
+ raise "Error"
876
+ }
877
+ }
878
+ expected_message = <<-EOM.chomp
879
+ failed assert_nothing_raised.
880
+ Exception raised:
881
+ RuntimeError(<Error>)
882
+ EOM
883
+ check_fail_exception(expected_message) {
884
+ assert_nothing_raised("failed assert_nothing_raised") {
885
+ raise "Error"
886
+ }
887
+ }
888
+ expected_message = <<-EOM.chomp
889
+ Exception raised:
890
+ RuntimeError(<Error>)
891
+ EOM
892
+ check_fail_exception(expected_message) {
893
+ assert_nothing_raised(StandardError, RuntimeError) {
894
+ raise "Error"
895
+ }
896
+ }
897
+ check_fail("Failure.") do
898
+ assert_nothing_raised do
899
+ flunk("Failure")
900
+ end
901
+ end
902
+ end
903
+
904
+ def test_flunk
905
+ check_fail("Flunked.") {
906
+ flunk
907
+ }
908
+ check_fail("flunk message.") {
909
+ flunk("flunk message")
910
+ }
911
+ end
912
+
913
+ def test_assert_not_same
914
+ thing = "thing"
915
+ thing2 = thing.dup
916
+ check_nothing_fails {
917
+ assert_not_same(thing, thing2)
918
+ }
919
+ check_nothing_fails {
920
+ assert_not_same(thing, thing2, "message")
921
+ }
922
+ check_fail(%Q{<"thing">\nwith id <#{thing.__id__}> was expected to not be equal? to\n<"thing">\nwith id <#{thing.__id__}>.}) {
923
+ assert_not_same(thing, thing)
924
+ }
925
+ check_fail(%Q{message.\n<"thing">\nwith id <#{thing.__id__}> was expected to not be equal? to\n<"thing">\nwith id <#{thing.__id__}>.}) {
926
+ assert_not_same(thing, thing, "message")
927
+ }
928
+ end
929
+
930
+ def test_assert_not_equal
931
+ check_nothing_fails {
932
+ assert_not_equal("string1", "string2")
933
+ }
934
+ check_nothing_fails {
935
+ assert_not_equal("string1", "string2", "message")
936
+ }
937
+ check_fail(%Q{<"string"> was expected to be != to\n<"string">.}) {
938
+ assert_not_equal("string", "string")
939
+ }
940
+ check_fail(%Q{message.\n<"string"> was expected to be != to\n<"string">.}) {
941
+ assert_not_equal("string", "string", "message")
942
+ }
943
+ end
944
+
945
+ def test_assert_not_match_pass
946
+ check_nothing_fails do
947
+ assert_not_match(/sling/, "string")
948
+ end
949
+ end
950
+
951
+ def test_assert_not_match_pass_with_message
952
+ check_nothing_fails do
953
+ assert_not_match(/sling/, "string", "message")
954
+ end
955
+ end
956
+
957
+ def test_assert_not_match_fail_not_regexp
958
+ check_fail("<REGEXP> in assert_not_match(<REGEXP>, ...) " +
959
+ "should be a Regexp.\n" +
960
+ "<\"asdf\"> was expected to be instance_of?\n" +
961
+ "<Regexp> but was\n" +
962
+ "<String>.") do
963
+ assert_not_match("asdf", "asdf")
964
+ end
965
+ end
966
+
967
+ def test_assert_not_match_fail_match
968
+ check_fail("</string/> was expected to not match\n" +
969
+ "<\"string\">.") do
970
+ assert_not_match(/string/, "string")
971
+ end
972
+ end
973
+
974
+ def test_assert_not_match_fail_match_with_message
975
+ check_fail("message.\n" +
976
+ "</string/> was expected to not match\n" +
977
+ "<\"string\">.") do
978
+ assert_not_match(/string/, "string", "message")
979
+ end
980
+ end
981
+
982
+ def test_assert_no_match
983
+ check_nothing_fails{assert_no_match(/sling/, "string")}
984
+ check_nothing_fails{assert_no_match(/sling/, "string", "message")}
985
+ check_fail(%Q{The first argument to assert_no_match should be a Regexp.\n<"asdf"> was expected to be instance_of?\n<Regexp> but was\n<String>.}) do
986
+ assert_no_match("asdf", "asdf")
987
+ end
988
+ check_fail(%Q{</string/> was expected to not match\n<"string">.}) do
989
+ assert_no_match(/string/, "string")
990
+ end
991
+ check_fail(%Q{message.\n</string/> was expected to not match\n<"string">.}) do
992
+ assert_no_match(/string/, "string", "message")
993
+ end
994
+ end
995
+
996
+ def test_assert_throw
997
+ check_nothing_fails do
998
+ assert_throw(:thing, "message") do
999
+ throw :thing
1000
+ end
1001
+ end
1002
+
1003
+ tag = :thing2
1004
+ check_fail("message.\n" +
1005
+ "<:thing> was expected to be thrown but\n" +
1006
+ "<#{inspect_tag(tag)}> was thrown.") do
1007
+ assert_throw(:thing, "message") do
1008
+ throw :thing2
1009
+ end
1010
+ end
1011
+ check_fail("message.\n" +
1012
+ "<:thing> should have been thrown.") do
1013
+ assert_throw(:thing, "message") do
1014
+ 1 + 1
1015
+ end
1016
+ end
1017
+ end
1018
+
1019
+ def test_assert_nothing_thrown
1020
+ check_nothing_fails do
1021
+ assert_nothing_thrown("message") do
1022
+ 1 + 1
1023
+ end
1024
+ end
1025
+
1026
+ tag = :thing
1027
+ inspected = inspect_tag(tag)
1028
+ check_fail("message.\n" +
1029
+ "<#{inspected}> was thrown when nothing was expected.") do
1030
+ assert_nothing_thrown("message") do
1031
+ throw tag
1032
+ end
1033
+ end
1034
+ end
1035
+
1036
+ def test_assert_operator
1037
+ check_nothing_fails {
1038
+ assert_operator("thing", :==, "thing", "message")
1039
+ }
1040
+ check_fail(%Q{<0.15>\ngiven as the operator for #assert_operator must be a Symbol or #respond_to?(:to_str).}) do
1041
+ assert_operator("thing", 0.15, "thing")
1042
+ end
1043
+ check_fail(%Q{message.\n<"thing1"> was expected to be\n==\n<"thing2">.}) {
1044
+ assert_operator("thing1", :==, "thing2", "message")
1045
+ }
1046
+ end
1047
+
1048
+ def test_assert_not_operator
1049
+ check_nothing_fails {
1050
+ assert_not_operator("thing", :==, "Thing", "message")
1051
+ }
1052
+ check_fail(%Q{<42>\ngiven as the operator for #assert_not_operator must be a Symbol or #respond_to?(:to_str).}) do
1053
+ assert_not_operator("thing", 42, "message")
1054
+ end
1055
+ check_fail(%Q{message.\n<0> was expected to not be\n==\n<0.0>.}) {
1056
+ assert_not_operator(0, :==, 0.0, "message")
1057
+ }
1058
+ end
1059
+
1060
+ def test_assert_respond_to
1061
+ check_nothing_fails {
1062
+ assert_respond_to("thing", :to_s, "message")
1063
+ }
1064
+ check_nothing_fails {
1065
+ assert_respond_to("thing", "to_s", "message")
1066
+ }
1067
+ check_fail("<0.15>.kind_of?(Symbol) or\n" +
1068
+ "<0.15>.respond_to?(:to_str) expected") {
1069
+ assert_respond_to("thing", 0.15)
1070
+ }
1071
+ check_fail("message.\n" +
1072
+ "<:symbol>.respond_to?(:nonexistence) expected\n" +
1073
+ "(Class: <Symbol>)") {
1074
+ assert_respond_to(:symbol, :nonexistence, "message")
1075
+ }
1076
+ end
1077
+
1078
+ def test_assert_not_respond_to_pass_symbol
1079
+ check_nothing_fails do
1080
+ assert_not_respond_to("thing", :nonexistent, "message")
1081
+ end
1082
+ end
1083
+
1084
+ def test_assert_not_respond_to_pass_string
1085
+ check_nothing_fails do
1086
+ assert_not_respond_to("thing", :nonexistent, "message")
1087
+ end
1088
+ end
1089
+
1090
+ def test_assert_not_respond_to_fail_number
1091
+ check_fail("<0.15>.kind_of?(Symbol) or\n" +
1092
+ "<0.15>.respond_to?(:to_str) expected") do
1093
+ assert_respond_to("thing", 0.15)
1094
+ end
1095
+ end
1096
+
1097
+ def tset_assert_not_respond_to_fail_existence
1098
+ check_fail("message.\n" +
1099
+ "!<:symbol>.respond_to?(:to_s) expected\n" +
1100
+ "(Class: <Symbol>)") do
1101
+ assert_respond_to(:symbol, :to_s, "message")
1102
+ end
1103
+ end
1104
+
1105
+ def test_assert_send
1106
+ object = Object.new
1107
+ class << object
1108
+ private
1109
+ def return_argument(argument, bogus)
1110
+ return argument
1111
+ end
1112
+ end
1113
+ check_nothing_fails do
1114
+ assert_send([object, :return_argument, true, "bogus"], "message")
1115
+ end
1116
+
1117
+ inspected_object = AssertionMessage.convert(object)
1118
+ expected_message = <<-EOM
1119
+ message.
1120
+ <#{inspected_object}> was expected to respond to
1121
+ <return_argument(*[false, "bogus"])> with a true value but was
1122
+ <false>.
1123
+ EOM
1124
+ check_fail(expected_message.chomp) do
1125
+ assert_send([object, :return_argument, false, "bogus"], "message")
1126
+ end
1127
+ end
1128
+
1129
+ def test_condition_invariant
1130
+ object = Object.new
1131
+ def object.inspect
1132
+ @changed = true
1133
+ end
1134
+ def object.==(other)
1135
+ @changed ||= false
1136
+ return (!@changed)
1137
+ end
1138
+ check_nothing_fails do
1139
+ assert_equal(object, object, "message")
1140
+ end
1141
+ end
1142
+
1143
+ def test_assert_boolean
1144
+ check_nothing_fails do
1145
+ assert_boolean(true)
1146
+ end
1147
+ check_nothing_fails do
1148
+ assert_boolean(false)
1149
+ end
1150
+
1151
+ check_fail("<true> or <false> expected but was\n<1>") do
1152
+ assert_boolean(1)
1153
+ end
1154
+
1155
+ check_fail("<true> or <false> expected but was\n<nil>") do
1156
+ assert_boolean(nil)
1157
+ end
1158
+
1159
+ check_fail("message.\n<true> or <false> expected but was\n<\"XXX\">") do
1160
+ assert_boolean("XXX", "message")
1161
+ end
1162
+ end
1163
+
1164
+ def test_assert_true
1165
+ check_nothing_fails do
1166
+ assert_true(true)
1167
+ end
1168
+
1169
+ check_fail("<true> expected but was\n<false>") do
1170
+ assert_true(false)
1171
+ end
1172
+
1173
+ check_fail("<true> expected but was\n<1>") do
1174
+ assert_true(1)
1175
+ end
1176
+
1177
+ exception = check_fail("message.\n<true> expected but was\n<nil>") do
1178
+ assert_true(nil, "message")
1179
+ end
1180
+ assert_equal("message", exception.user_message)
1181
+ end
1182
+
1183
+ def test_assert_false
1184
+ check_nothing_fails do
1185
+ assert_false(false)
1186
+ end
1187
+
1188
+ check_fail("<false> expected but was\n<true>") do
1189
+ assert_false(true)
1190
+ end
1191
+
1192
+ check_fail("<false> expected but was\n<nil>") do
1193
+ assert_false(nil)
1194
+ end
1195
+
1196
+ check_fail("message.\n<false> expected but was\n<:false>") do
1197
+ assert_false(:false, "message")
1198
+ end
1199
+ end
1200
+
1201
+ def test_assert_compare
1202
+ check_nothing_fails do
1203
+ assert_compare(1.4, "<", 10.0)
1204
+ end
1205
+
1206
+ check_nothing_fails do
1207
+ assert_compare(2, "<=", 2)
1208
+ end
1209
+
1210
+ check_nothing_fails do
1211
+ assert_compare(14, ">=", 10.0)
1212
+ end
1213
+
1214
+ check_nothing_fails do
1215
+ assert_compare(14, ">", 13.9)
1216
+ end
1217
+
1218
+ expected_message = <<-EOM
1219
+ <15> < <10> should be true
1220
+ <15> was expected to be less than
1221
+ <10>.
1222
+ EOM
1223
+ check_fail(expected_message.chomp) do
1224
+ assert_compare(15, "<", 10)
1225
+ end
1226
+
1227
+ expected_message = <<-EOM
1228
+ <15> <= <10> should be true
1229
+ <15> was expected to be less than or equal to
1230
+ <10>.
1231
+ EOM
1232
+ check_fail(expected_message.chomp) do
1233
+ assert_compare(15, "<=", 10)
1234
+ end
1235
+
1236
+ expected_message = <<-EOM
1237
+ <10> > <15> should be true
1238
+ <10> was expected to be greater than
1239
+ <15>.
1240
+ EOM
1241
+ check_fail(expected_message.chomp) do
1242
+ assert_compare(10, ">", 15)
1243
+ end
1244
+
1245
+ expected_message = <<-EOM
1246
+ <10> >= <15> should be true
1247
+ <10> was expected to be greater than or equal to
1248
+ <15>.
1249
+ EOM
1250
+ check_fail(expected_message.chomp) do
1251
+ assert_compare(10, ">=", 15)
1252
+ end
1253
+ end
1254
+
1255
+ def test_assert_fail_assertion
1256
+ check_nothing_fails do
1257
+ assert_fail_assertion do
1258
+ flunk
1259
+ end
1260
+ end
1261
+
1262
+ check_fail("Failed assertion was expected.") do
1263
+ assert_fail_assertion do
1264
+ end
1265
+ end
1266
+ end
1267
+
1268
+ def test_assert_raise_message
1269
+ check_nothing_fails do
1270
+ assert_raise_message("Raise!") do
1271
+ raise "Raise!"
1272
+ end
1273
+ end
1274
+
1275
+ check_nothing_fails do
1276
+ assert_raise_message("Raise!") do
1277
+ raise Exception, "Raise!"
1278
+ end
1279
+ end
1280
+
1281
+ check_nothing_fails do
1282
+ assert_raise_message(/raise/i) do
1283
+ raise "Raise!"
1284
+ end
1285
+ end
1286
+
1287
+ expected_message = <<-EOM
1288
+ <"Expected message"> exception message expected but was
1289
+ <"Actual message">.
1290
+ EOM
1291
+ check_fail(expected_message.chomp) do
1292
+ assert_raise_message("Expected message") do
1293
+ raise "Actual message"
1294
+ end
1295
+ end
1296
+
1297
+ expected_message = <<-EOM
1298
+ <"Expected message"> exception message was expected but none was thrown.
1299
+ EOM
1300
+ check_fail(expected_message.chomp) do
1301
+ assert_raise_message("Expected message") do
1302
+ end
1303
+ end
1304
+ end
1305
+
1306
+ def test_assert_raise_kind_of
1307
+ check_nothing_fails(true) do
1308
+ assert_raise_kind_of(SystemCallError) do
1309
+ raise Errno::EACCES
1310
+ end
1311
+ end
1312
+
1313
+ expected_message = <<-EOM.chomp
1314
+ <SystemCallError> family exception expected but was
1315
+ <RuntimeError(<XXX>)>.
1316
+ EOM
1317
+ check_fail_exception(expected_message) do
1318
+ assert_raise_kind_of(SystemCallError) do
1319
+ raise RuntimeError, "XXX"
1320
+ end
1321
+ end
1322
+ end
1323
+
1324
+ def test_assert_const_defined
1325
+ check_nothing_fails do
1326
+ assert_const_defined(Test, :Unit)
1327
+ end
1328
+
1329
+ check_nothing_fails do
1330
+ assert_const_defined(Test, "Unit")
1331
+ end
1332
+
1333
+ check_fail("<Test>.const_defined?(<:Nonexistence>) expected.") do
1334
+ assert_const_defined(Test, :Nonexistence)
1335
+ end
1336
+ end
1337
+
1338
+ def test_assert_not_const_defined
1339
+ check_nothing_fails do
1340
+ assert_not_const_defined(Test, :Nonexistence)
1341
+ end
1342
+
1343
+ check_fail("!<Test>.const_defined?(<:Unit>) expected.") do
1344
+ assert_not_const_defined(Test, :Unit)
1345
+ end
1346
+
1347
+ check_fail("!<Test>.const_defined?(<\"Unit\">) expected.") do
1348
+ assert_not_const_defined(Test, "Unit")
1349
+ end
1350
+ end
1351
+
1352
+ def test_assert_predicate
1353
+ check_nothing_fails do
1354
+ assert_predicate([], :empty?)
1355
+ end
1356
+
1357
+ check_fail("<[1]>.empty? is true value expected but was\n<false>") do
1358
+ assert_predicate([1], :empty?)
1359
+ end
1360
+
1361
+ check_fail("<[1]>.respond_to?(:nonexistent?) expected\n" +
1362
+ "(Class: <Array>)") do
1363
+ assert_predicate([1], :nonexistent?)
1364
+ end
1365
+ end
1366
+
1367
+ def test_assert_not_predicate
1368
+ check_nothing_fails do
1369
+ assert_not_predicate([1], :empty?)
1370
+ end
1371
+
1372
+ check_fail("<[]>.empty? is false value expected but was\n<true>") do
1373
+ assert_not_predicate([], :empty?)
1374
+ end
1375
+
1376
+ check_fail("<[]>.respond_to?(:nonexistent?) expected\n" +
1377
+ "(Class: <Array>)") do
1378
+ assert_not_predicate([], :nonexistent?)
1379
+ end
1380
+ end
1381
+
1382
+ def test_assert_alias_method
1383
+ object = Object.new
1384
+ class << object
1385
+ def original_method
1386
+ end
1387
+ alias_method :alias_method, :original_method
1388
+
1389
+ def other
1390
+ end
1391
+ end
1392
+
1393
+ check_nothing_fails do
1394
+ assert_alias_method(object, :alias_method, :original_method)
1395
+ end
1396
+
1397
+ check_nothing_fails do
1398
+ assert_alias_method(object, :original_method, :alias_method)
1399
+ end
1400
+
1401
+ check_fail("<#{object.method(:other).inspect}> is alias of\n" +
1402
+ "<#{object.method(:original_method).inspect}> expected") do
1403
+ assert_alias_method(object, :other, :original_method)
1404
+ end
1405
+
1406
+ inspected_object = AssertionMessage.convert(object)
1407
+ check_fail("<#{inspected_object}>.nonexistent doesn't exist\n" +
1408
+ "(Class: <Object>)") do
1409
+ assert_alias_method(object, :nonexistent, :original_method)
1410
+ end
1411
+
1412
+ check_fail("<#{inspected_object}>.nonexistent doesn't exist\n" +
1413
+ "(Class: <Object>)") do
1414
+ assert_alias_method(object, :alias_method, :nonexistent)
1415
+ end
1416
+ end
1417
+
1418
+ def test_assert_path_exist
1419
+ check_nothing_fails do
1420
+ assert_path_exist(__FILE__)
1421
+ end
1422
+
1423
+ nonexistent_file = __FILE__ + ".nonexistent"
1424
+ check_fail("<#{nonexistent_file.inspect}> was expected to exist") do
1425
+ assert_path_exist(nonexistent_file)
1426
+ end
1427
+ end
1428
+
1429
+ def test_assert_path_not_exist
1430
+ nonexistent_file = __FILE__ + ".nonexistent"
1431
+ check_nothing_fails do
1432
+ assert_path_not_exist(nonexistent_file)
1433
+ end
1434
+
1435
+ check_fail("<#{__FILE__.inspect}> was expected to not exist") do
1436
+ assert_path_not_exist(__FILE__)
1437
+ end
1438
+ end
1439
+ end
1440
+
1441
+ class TestAssert < TestCase
1442
+ include AssertionCheckable
1443
+
1444
+ def test_pass
1445
+ check_nothing_fails do
1446
+ assert(true)
1447
+ end
1448
+ end
1449
+
1450
+ def test_pass_neither_false_or_nil
1451
+ check_nothing_fails do
1452
+ assert("a")
1453
+ end
1454
+ end
1455
+
1456
+ def test_pass_with_message
1457
+ check_nothing_fails do
1458
+ assert(true, "successful assert")
1459
+ end
1460
+ end
1461
+
1462
+ def test_pass_block
1463
+ check_nothing_fails do
1464
+ assert do
1465
+ true
1466
+ end
1467
+ end
1468
+ end
1469
+
1470
+ def test_fail_nil
1471
+ check_fail("<nil> is not true.") do
1472
+ assert(nil)
1473
+ end
1474
+ end
1475
+
1476
+ def test_fail_false
1477
+ check_fail("<false> is not true.") do
1478
+ assert(false)
1479
+ end
1480
+ end
1481
+
1482
+ def test_fail_false_with_message
1483
+ check_fail("failed assert.\n" +
1484
+ "<false> is not true.") do
1485
+ assert(false, "failed assert")
1486
+ end
1487
+ end
1488
+
1489
+ def test_fail_with_assertion_message
1490
+ check_fail("user message.\n" +
1491
+ "placeholder <:in> message") do
1492
+ assert(false, build_message("user message",
1493
+ "placeholder <?> message",
1494
+ :in))
1495
+ end
1496
+ end
1497
+
1498
+ def test_fail_block
1499
+ check_fail(//) do
1500
+ assert do
1501
+ 0.odd?
1502
+ end
1503
+ end
1504
+ end
1505
+
1506
+ def test_error_invalid_message_true
1507
+ check_fail("assertion message must be String, Proc or " +
1508
+ "Test::Unit::Assertions::AssertionMessage: " +
1509
+ "<true>(<TrueClass>)") do
1510
+ begin
1511
+ assert(true, true)
1512
+ rescue ArgumentError
1513
+ raise AssertionFailedError, $!.message
1514
+ end
1515
+ end
1516
+ end
1517
+
1518
+ def test_error_wrong_number_of_arguments
1519
+ check_fail("wrong number of arguments (0 for 1..2)") do
1520
+ begin
1521
+ assert
1522
+ rescue ArgumentError
1523
+ raise AssertionFailedError, $!.message
1524
+ end
1525
+ end
1526
+ end
1527
+
1528
+ class TestBlock < self
1529
+ def test_with_message
1530
+ if defined?(PowerAssert)
1531
+ system_message = <<-MESSAGE.chomp
1532
+ 1.to_s == "2"
1533
+ | |
1534
+ | false
1535
+ "1"
1536
+ MESSAGE
1537
+ else
1538
+ system_message = "<false> is not true."
1539
+ end
1540
+ check_fail("user message.\n#{system_message}") do
1541
+ assert("user message") do
1542
+ 1.to_s == "2"
1543
+ end
1544
+ end
1545
+ end
1546
+ end
1547
+ end
1548
+
1549
+ class TestRefute < TestCase
1550
+ include AssertionCheckable
1551
+
1552
+ class TestPass < self
1553
+ def test_nil
1554
+ check_nothing_fails do
1555
+ refute(nil)
1556
+ end
1557
+ end
1558
+
1559
+ def test_false
1560
+ check_nothing_fails do
1561
+ refute(false)
1562
+ end
1563
+ end
1564
+
1565
+ def test_with_message
1566
+ check_nothing_fails do
1567
+ refute(nil, "successful refute")
1568
+ end
1569
+ end
1570
+ end
1571
+
1572
+ class TestFailure < self
1573
+ def test_true
1574
+ check_fail("<true> is neither nil or false.") do
1575
+ refute(true)
1576
+ end
1577
+ end
1578
+
1579
+ def test_with_message
1580
+ check_fail("failed refute.\n" +
1581
+ "<true> is neither nil or false.") do
1582
+ refute(true, "failed refute")
1583
+ end
1584
+ end
1585
+
1586
+ def test_fail_with_assertion_message
1587
+ check_fail("user message.\n" +
1588
+ "placeholder <:in> message") do
1589
+ refute(true, build_message("user message",
1590
+ "placeholder <?> message",
1591
+ :in))
1592
+ end
1593
+ end
1594
+
1595
+ def test_error_invalid_message_true
1596
+ check_fail("assertion message must be String, Proc or " +
1597
+ "Test::Unit::Assertions::AssertionMessage: " +
1598
+ "<false>(<FalseClass>)") do
1599
+ begin
1600
+ refute(true, false)
1601
+ rescue ArgumentError
1602
+ raise AssertionFailedError, $!.message
1603
+ end
1604
+ end
1605
+ end
1606
+ end
1607
+ end
1608
+
1609
+ class TestAssertInDelta < TestCase
1610
+ include AssertionCheckable
1611
+
1612
+ def test_pass
1613
+ check_nothing_fails do
1614
+ assert_in_delta(1.4, 1.4, 0)
1615
+ end
1616
+ end
1617
+
1618
+ def test_pass_without_delta
1619
+ check_nothing_fails do
1620
+ assert_in_delta(1.401, 1.402)
1621
+ end
1622
+ end
1623
+
1624
+ def test_pass_with_message
1625
+ check_nothing_fails do
1626
+ assert_in_delta(0.5, 0.4, 0.1, "message")
1627
+ end
1628
+ end
1629
+
1630
+ def test_pass_float_like_object
1631
+ check_nothing_fails do
1632
+ float_thing = Object.new
1633
+ def float_thing.to_f
1634
+ 0.2
1635
+ end
1636
+ assert_in_delta(0.1, float_thing, 0.1)
1637
+ end
1638
+ end
1639
+
1640
+ def test_pass_string_expected
1641
+ check_nothing_fails do
1642
+ assert_in_delta("0.5", 0.4, 0.1)
1643
+ end
1644
+ end
1645
+
1646
+ def test_fail_with_message
1647
+ check_fail("message.\n" +
1648
+ "<0.5> -/+ <0.05> was expected to include\n" +
1649
+ "<0.4>.\n" +
1650
+ "\n" +
1651
+ "Relation:\n" +
1652
+ "<<0.4> < <0.5>-<0.05>[0.45] <= <0.5>+<0.05>[0.55]>") do
1653
+ assert_in_delta(0.5, 0.4, 0.05, "message")
1654
+ end
1655
+ end
1656
+
1657
+ def test_fail_because_not_float_like_object
1658
+ object = Object.new
1659
+ inspected_object = AssertionMessage.convert(object)
1660
+ check_fail("The arguments must respond to to_f; " +
1661
+ "the first float did not.\n" +
1662
+ "<#{inspected_object}>.respond_to?(:to_f) expected\n" +
1663
+ "(Class: <Object>)") do
1664
+ assert_in_delta(object, 0.4, 0.1)
1665
+ end
1666
+ end
1667
+
1668
+ def test_fail_because_negaitve_delta
1669
+ check_fail("The delta should not be negative.\n" +
1670
+ "<-0.1> was expected to be\n>=\n<0.0>.") do
1671
+ assert_in_delta(0.5, 0.4, -0.1, "message")
1672
+ end
1673
+ end
1674
+
1675
+ def test_fail_without_delta
1676
+ check_fail("<1.402> -/+ <0.001> was expected to include\n" +
1677
+ "<1.404>.\n" +
1678
+ "\n" +
1679
+ "Relation:\n" +
1680
+ "<" +
1681
+ "<1.402>-<0.001>[#{1.402 - 0.001}] <= " +
1682
+ "<1.402>+<0.001>[#{1.402 + 0.001}] < " +
1683
+ "<1.404>" +
1684
+ ">") do
1685
+ assert_in_delta(1.402, 1.404)
1686
+ end
1687
+ end
1688
+ end
1689
+
1690
+ class TestAssertNotInDelta < Test::Unit::TestCase
1691
+ include AssertionCheckable
1692
+
1693
+ def test_pass
1694
+ check_nothing_fails do
1695
+ assert_not_in_delta(1.42, 1.44, 0.01)
1696
+ end
1697
+ end
1698
+
1699
+ def test_pass_without_delta
1700
+ check_nothing_fails do
1701
+ assert_not_in_delta(1.402, 1.404)
1702
+ end
1703
+ end
1704
+
1705
+ def test_pass_with_message
1706
+ check_nothing_fails do
1707
+ assert_not_in_delta(0.5, 0.4, 0.09, "message")
1708
+ end
1709
+ end
1710
+
1711
+ def test_pass_float_like_object
1712
+ check_nothing_fails do
1713
+ float_thing = Object.new
1714
+ def float_thing.to_f
1715
+ 0.2
1716
+ end
1717
+ assert_not_in_delta(0.1, float_thing, 0.09)
1718
+ end
1719
+ end
1720
+
1721
+ def test_pass_string_epxected
1722
+ check_nothing_fails do
1723
+ assert_not_in_delta("0.5", 0.4, 0.09)
1724
+ end
1725
+ end
1726
+
1727
+ def test_fail
1728
+ check_fail("<1.4> -/+ <0.11> was expected to not include\n" +
1729
+ "<1.5>.\n" +
1730
+ "\n" +
1731
+ "Relation:\n" +
1732
+ "<" +
1733
+ "<1.4>-<0.11>[#{1.4 - 0.11}] <= " +
1734
+ "<1.5> <= " +
1735
+ "<1.4>+<0.11>[#{1.4 + 0.11}]" +
1736
+ ">") do
1737
+ assert_not_in_delta(1.4, 1.5, 0.11)
1738
+ end
1739
+ end
1740
+
1741
+ def test_fail_without_delta
1742
+ check_fail("<1.402> -/+ <0.001> was expected to not include\n" +
1743
+ "<1.4021>.\n" +
1744
+ "\n" +
1745
+ "Relation:\n" +
1746
+ "<" +
1747
+ "<1.402>-<0.001>[#{1.402 - 0.001}] <= " +
1748
+ "<1.4021> <= " +
1749
+ "<1.402>+<0.001>[#{1.402 + 0.001}]" +
1750
+ ">") do
1751
+ assert_not_in_delta(1.402, 1.4021)
1752
+ end
1753
+ end
1754
+
1755
+ def test_fail_with_message
1756
+ check_fail("message.\n" +
1757
+ "<0.5> -/+ <0.11> was expected to not include\n" +
1758
+ "<0.4>.\n" +
1759
+ "\n" +
1760
+ "Relation:\n" +
1761
+ "<" +
1762
+ "<0.5>-<0.11>[0.39] <= " +
1763
+ "<0.4> <= " +
1764
+ "<0.5>+<0.11>[0.61]" +
1765
+ ">") do
1766
+ assert_not_in_delta(0.5, 0.4, 0.11, "message")
1767
+ end
1768
+ end
1769
+
1770
+ def test_fail_because_not_float_like_object
1771
+ object = Object.new
1772
+ inspected_object = AssertionMessage.convert(object)
1773
+ check_fail("The arguments must respond to to_f; " +
1774
+ "the first float did not.\n" +
1775
+ "<#{inspected_object}>.respond_to?(:to_f) expected\n" +
1776
+ "(Class: <Object>)") do
1777
+ assert_not_in_delta(object, 0.4, 0.1)
1778
+ end
1779
+ end
1780
+
1781
+ def test_fail_because_negaitve_delta
1782
+ check_fail("The delta should not be negative.\n" +
1783
+ "<-0.11> was expected to be\n>=\n<0.0>.") do
1784
+ assert_not_in_delta(0.5, 0.4, -0.11, "message")
1785
+ end
1786
+ end
1787
+ end
1788
+
1789
+ class TestAssertInEpsilon < TestCase
1790
+ include AssertionCheckable
1791
+
1792
+ def test_pass
1793
+ check_nothing_fails do
1794
+ assert_in_epsilon(10000, 9000, 0.1)
1795
+ end
1796
+ end
1797
+
1798
+ def test_pass_without_epsilon
1799
+ check_nothing_fails do
1800
+ assert_in_epsilon(10000, 9991)
1801
+ end
1802
+ end
1803
+
1804
+ def test_pass_with_message
1805
+ check_nothing_fails do
1806
+ assert_in_epsilon(10000, 9000, 0.1, "message")
1807
+ end
1808
+ end
1809
+
1810
+ def test_pass_float_like_object
1811
+ check_nothing_fails do
1812
+ float_thing = Object.new
1813
+ def float_thing.to_f
1814
+ 9000.0
1815
+ end
1816
+ assert_in_epsilon(10000, float_thing, 0.1)
1817
+ end
1818
+ end
1819
+
1820
+ def test_pass_string_expected
1821
+ check_nothing_fails do
1822
+ assert_in_epsilon("10000", 9000, 0.1)
1823
+ end
1824
+ end
1825
+
1826
+ def test_pass_zero_expected
1827
+ check_nothing_fails do
1828
+ assert_in_epsilon(0, 0.00000001)
1829
+ end
1830
+ end
1831
+
1832
+ def test_pass_minus_expected
1833
+ check_nothing_fails do
1834
+ assert_in_epsilon(-1, -1)
1835
+ end
1836
+ end
1837
+
1838
+ def test_fail_with_message
1839
+ check_fail("message.\n" +
1840
+ "<10000> -/+ (<10000> * <0.1>)[1000.0] " +
1841
+ "was expected to include\n" +
1842
+ "<8999>.\n" +
1843
+ "\n" +
1844
+ "Relation:\n" +
1845
+ "<" +
1846
+ "<8999> < " +
1847
+ "<10000>-(<10000>*<0.1>)[9000.0] <= " +
1848
+ "<10000>+(<10000>*<0.1>)[11000.0]" +
1849
+ ">") do
1850
+ assert_in_epsilon(10000, 8999, 0.1, "message")
1851
+ end
1852
+ end
1853
+
1854
+ def test_fail_because_not_float_like_object
1855
+ object = Object.new
1856
+ inspected_object = AssertionMessage.convert(object)
1857
+ check_fail("The arguments must respond to to_f; " +
1858
+ "the first float did not.\n" +
1859
+ "<#{inspected_object}>.respond_to?(:to_f) expected\n" +
1860
+ "(Class: <Object>)") do
1861
+ assert_in_epsilon(object, 9000, 0.1)
1862
+ end
1863
+ end
1864
+
1865
+ def test_fail_because_negaitve_epsilon
1866
+ check_fail("The epsilon should not be negative.\n" +
1867
+ "<-0.1> was expected to be\n>=\n<0.0>.") do
1868
+ assert_in_epsilon(10000, 9000, -0.1, "message")
1869
+ end
1870
+ end
1871
+
1872
+ def test_fail_without_epsilon
1873
+ check_fail("<10000> -/+ (<10000> * <0.001>)[10.0] " +
1874
+ "was expected to include\n" +
1875
+ "<10011>.\n" +
1876
+ "\n" +
1877
+ "Relation:\n" +
1878
+ "<" +
1879
+ "<10000>-(<10000>*<0.001>)[9990.0] <= " +
1880
+ "<10000>+(<10000>*<0.001>)[10010.0] < " +
1881
+ "<10011>" +
1882
+ ">") do
1883
+ assert_in_epsilon(10000, 10011)
1884
+ end
1885
+ end
1886
+ end
1887
+
1888
+ class TestAssertNotInEpsilon < Test::Unit::TestCase
1889
+ include AssertionCheckable
1890
+
1891
+ def test_pass
1892
+ check_nothing_fails do
1893
+ assert_not_in_epsilon(10000, 8999, 0.1)
1894
+ end
1895
+ end
1896
+
1897
+ def test_pass_without_epsilon
1898
+ check_nothing_fails do
1899
+ assert_not_in_epsilon(10000, 9989)
1900
+ end
1901
+ end
1902
+
1903
+ def test_pass_with_message
1904
+ check_nothing_fails do
1905
+ assert_not_in_epsilon(10000, 8999, 0.1, "message")
1906
+ end
1907
+ end
1908
+
1909
+ def test_pass_float_like_object
1910
+ check_nothing_fails do
1911
+ float_thing = Object.new
1912
+ def float_thing.to_f
1913
+ 8999.0
1914
+ end
1915
+ assert_not_in_epsilon(10000, float_thing, 0.1)
1916
+ end
1917
+ end
1918
+
1919
+ def test_pass_string_epxected
1920
+ check_nothing_fails do
1921
+ assert_not_in_epsilon("10000", 8999, 0.1)
1922
+ end
1923
+ end
1924
+
1925
+ def test_fail
1926
+ check_fail("<10000> -/+ (<10000> * <0.1>)[1000.0] " +
1927
+ "was expected to not include\n" +
1928
+ "<9000>.\n" +
1929
+ "\n" +
1930
+ "Relation:\n" +
1931
+ "<" +
1932
+ "<10000>-(<10000>*<0.1>)[9000.0] <= " +
1933
+ "<9000> <= " +
1934
+ "<10000>+(<10000>*<0.1>)[11000.0]" +
1935
+ ">") do
1936
+ assert_not_in_epsilon(10000, 9000, 0.1)
1937
+ end
1938
+ end
1939
+
1940
+ def test_fail_without_epsilon
1941
+ check_fail("<10000> -/+ (<10000> * <0.001>)[10.0] " +
1942
+ "was expected to not include\n" +
1943
+ "<9990>.\n" +
1944
+ "\n" +
1945
+ "Relation:\n" +
1946
+ "<" +
1947
+ "<10000>-(<10000>*<0.001>)[9990.0] <= " +
1948
+ "<9990> <= " +
1949
+ "<10000>+(<10000>*<0.001>)[10010.0]" +
1950
+ ">") do
1951
+ assert_not_in_epsilon(10000, 9990)
1952
+ end
1953
+ end
1954
+
1955
+ def test_fail_with_message
1956
+ check_fail("message.\n" +
1957
+ "<10000> -/+ (<10000> * <0.1>)[1000.0] " +
1958
+ "was expected to not include\n" +
1959
+ "<9000>.\n" +
1960
+ "\n" +
1961
+ "Relation:\n" +
1962
+ "<" +
1963
+ "<10000>-(<10000>*<0.1>)[9000.0] <= " +
1964
+ "<9000> <= " +
1965
+ "<10000>+(<10000>*<0.1>)[11000.0]" +
1966
+ ">") do
1967
+ assert_not_in_epsilon(10000, 9000, 0.1, "message")
1968
+ end
1969
+ end
1970
+
1971
+ def test_fail_because_not_float_like_object
1972
+ object = Object.new
1973
+ inspected_object = AssertionMessage.convert(object)
1974
+ check_fail("The arguments must respond to to_f; " +
1975
+ "the first float did not.\n" +
1976
+ "<#{inspected_object}>.respond_to?(:to_f) expected\n" +
1977
+ "(Class: <Object>)") do
1978
+ assert_not_in_epsilon(object, 9000, 0.1)
1979
+ end
1980
+ end
1981
+
1982
+ def test_fail_because_negaitve_epsilon
1983
+ check_fail("The epsilon should not be negative.\n" +
1984
+ "<-0.1> was expected to be\n>=\n<0.0>.") do
1985
+ assert_not_in_epsilon(10000, 9000, -0.1, "message")
1986
+ end
1987
+ end
1988
+ end
1989
+
1990
+ class TestAssertInclude < Test::Unit::TestCase
1991
+ include AssertionCheckable
1992
+
1993
+ def test_pass
1994
+ check_nothing_fails do
1995
+ assert_include([1, 2, 3], 1)
1996
+ end
1997
+ end
1998
+
1999
+ def test_pass_with_message
2000
+ check_nothing_fails do
2001
+ assert_include([1, 2, 3], 1, "message")
2002
+ end
2003
+ end
2004
+
2005
+ def test_fail
2006
+ check_fail("<[1, 2, 3]> was expected to include\n" +
2007
+ "<4>.") do
2008
+ assert_include([1, 2, 3], 4)
2009
+ end
2010
+ end
2011
+
2012
+ def test_fail_with_message
2013
+ check_fail("message.\n" +
2014
+ "<[1, 2, 3]> was expected to include\n" +
2015
+ "<4>.") do
2016
+ assert_include([1, 2, 3], 4, "message")
2017
+ end
2018
+ end
2019
+
2020
+ def test_fail_because_not_collection_like_object
2021
+ object = Object.new
2022
+ inspected_object = AssertionMessage.convert(object)
2023
+ check_fail("The collection must respond to :include?.\n" +
2024
+ "<#{inspected_object}>.respond_to?(:include?) expected\n" +
2025
+ "(Class: <Object>)") do
2026
+ assert_include(object, 1)
2027
+ end
2028
+ end
2029
+ end
2030
+
2031
+ class TestAssertNotInclude < Test::Unit::TestCase
2032
+ include AssertionCheckable
2033
+
2034
+ def test_pass
2035
+ check_nothing_fails do
2036
+ assert_not_include([1, 2, 3], 5)
2037
+ end
2038
+ end
2039
+
2040
+ def test_pass_with_message
2041
+ check_nothing_fails do
2042
+ assert_not_include([1, 2, 3], 5, "message")
2043
+ end
2044
+ end
2045
+
2046
+ def test_fail
2047
+ check_fail("<[1, 2, 3]> was expected to not include\n" +
2048
+ "<2>.") do
2049
+ assert_not_include([1, 2, 3], 2)
2050
+ end
2051
+ end
2052
+
2053
+ def test_fail_with_message
2054
+ check_fail("message.\n" +
2055
+ "<[1, 2, 3]> was expected to not include\n" +
2056
+ "<2>.") do
2057
+ assert_not_include([1, 2, 3], 2, "message")
2058
+ end
2059
+ end
2060
+
2061
+ def test_fail_because_not_collection_like_object
2062
+ object = Object.new
2063
+ inspected_object = AssertionMessage.convert(object)
2064
+ check_fail("The collection must respond to :include?.\n" +
2065
+ "<#{inspected_object}>.respond_to?(:include?) expected\n" +
2066
+ "(Class: <Object>)") do
2067
+ assert_not_include(object, 1)
2068
+ end
2069
+ end
2070
+ end
2071
+
2072
+ class TestAssertEmpty < Test::Unit::TestCase
2073
+ include AssertionCheckable
2074
+
2075
+ def test_pass
2076
+ check_nothing_fails do
2077
+ assert_empty([])
2078
+ end
2079
+ end
2080
+
2081
+ def test_pass_with_message
2082
+ check_nothing_fails do
2083
+ assert_empty([], "message")
2084
+ end
2085
+ end
2086
+
2087
+ def test_fail
2088
+ check_fail("<[1]> was expected to be empty.") do
2089
+ assert_empty([1])
2090
+ end
2091
+ end
2092
+
2093
+ def test_fail_with_message
2094
+ check_fail("message.\n" +
2095
+ "<[1]> was expected to be empty.") do
2096
+ assert_empty([1], "message")
2097
+ end
2098
+ end
2099
+
2100
+ def test_fail_because_no_empty_method
2101
+ object = Object.new
2102
+ inspected_object = AssertionMessage.convert(object)
2103
+ check_fail("The object must respond to :empty?.\n" +
2104
+ "<#{inspected_object}>.respond_to?(:empty?) expected\n" +
2105
+ "(Class: <Object>)") do
2106
+ assert_empty(object)
2107
+ end
2108
+ end
2109
+ end
2110
+
2111
+ class TestAssertNotEmpty < Test::Unit::TestCase
2112
+ include AssertionCheckable
2113
+
2114
+ def test_pass
2115
+ check_nothing_fails do
2116
+ assert_not_empty([1])
2117
+ end
2118
+ end
2119
+
2120
+ def test_pass_with_message
2121
+ check_nothing_fails do
2122
+ assert_not_empty([1], "message")
2123
+ end
2124
+ end
2125
+
2126
+ def test_fail
2127
+ check_fail("<[]> was expected to not be empty.") do
2128
+ assert_not_empty([])
2129
+ end
2130
+ end
2131
+
2132
+ def test_fail_with_message
2133
+ check_fail("message.\n" +
2134
+ "<[]> was expected to not be empty.") do
2135
+ assert_not_empty([], "message")
2136
+ end
2137
+ end
2138
+
2139
+ def test_fail_because_no_empty_method
2140
+ object = Object.new
2141
+ inspected_object = AssertionMessage.convert(object)
2142
+ check_fail("The object must respond to :empty?.\n" +
2143
+ "<#{inspected_object}>.respond_to?(:empty?) expected\n" +
2144
+ "(Class: <Object>)") do
2145
+ assert_not_empty(object)
2146
+ end
2147
+ end
2148
+ end
2149
+
2150
+ class TestAssertNotSend < Test::Unit::TestCase
2151
+ include AssertionCheckable
2152
+
2153
+ def test_pass
2154
+ check_nothing_fails do
2155
+ assert_not_send([[1, 2], :member?, 4], "message")
2156
+ end
2157
+ end
2158
+
2159
+ def test_fail
2160
+ expected_message = <<-EOM
2161
+ message.
2162
+ <[1, 2]> was expected to respond to
2163
+ <member?(*[2])> with not a true value but was
2164
+ <true>.
2165
+ EOM
2166
+ check_fail(expected_message.chomp) do
2167
+ assert_not_send([[1, 2], :member?, 2], "message")
2168
+ end
2169
+ end
2170
+ end
2171
+
2172
+ class TestTemplate < Test::Unit::TestCase
2173
+ def test_incompatible_encoding_by_diff
2174
+ need_encoding
2175
+ assert_raise(AssertionFailedError) do
2176
+ assert_equal("UTF-8の日本語\n" * 3,
2177
+ ("Shift_JISの日本語\n" * 3).force_encoding("ASCII-8BIT"))
2178
+ end
2179
+ end
2180
+
2181
+ private
2182
+ def need_encoding
2183
+ omit("need Encoding") unless Object.const_defined?(:Encoding)
2184
+ end
2185
+ end
2186
+ end
2187
+ end