win32-api 1.4.8 → 1.9.1

Sign up to get free protection for your applications and to get access to all the features.
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