hirohig_palindrome 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. checksums.yaml +7 -0
  2. data/.DS_Store +0 -0
  3. data/.gitignore +8 -0
  4. data/.travis.yml +6 -0
  5. data/Gemfile +8 -0
  6. data/Gemfile.lock +30 -0
  7. data/README.md +36 -0
  8. data/Rakefile +10 -0
  9. data/bin/console +14 -0
  10. data/bin/setup +8 -0
  11. data/hirohig_palindrome.gemspec +33 -0
  12. data/lib/hirohig_palindrome/version.rb +3 -0
  13. data/lib/hirohig_palindrome.rb +17 -0
  14. data/vendor/.DS_Store +0 -0
  15. data/vendor/bundle/.DS_Store +0 -0
  16. data/vendor/bundle/ruby/.DS_Store +0 -0
  17. data/vendor/bundle/ruby/2.6.0/.DS_Store +0 -0
  18. data/vendor/bundle/ruby/2.6.0/bin/rake +27 -0
  19. data/vendor/bundle/ruby/2.6.0/cache/ansi-1.5.0.gem +0 -0
  20. data/vendor/bundle/ruby/2.6.0/cache/builder-3.2.4.gem +0 -0
  21. data/vendor/bundle/ruby/2.6.0/cache/minitest-5.14.0.gem +0 -0
  22. data/vendor/bundle/ruby/2.6.0/cache/minitest-reporters-1.2.0.gem +0 -0
  23. data/vendor/bundle/ruby/2.6.0/cache/rake-12.3.3.gem +0 -0
  24. data/vendor/bundle/ruby/2.6.0/cache/ruby-progressbar-1.10.1.gem +0 -0
  25. data/vendor/bundle/ruby/2.6.0/gems/.DS_Store +0 -0
  26. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/.index +77 -0
  27. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/.yardopts +8 -0
  28. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/DEMO.md +451 -0
  29. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/HISTORY.md +217 -0
  30. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/LICENSE.txt +23 -0
  31. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/NOTICE.md +170 -0
  32. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/README.md +91 -0
  33. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/demo/01_ansicode.md +65 -0
  34. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/demo/02_core.md +11 -0
  35. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/demo/03_logger.md +30 -0
  36. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/demo/04_progressbar.md +62 -0
  37. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/demo/05_mixin.md +37 -0
  38. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/demo/06_string.md +56 -0
  39. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/demo/07_columns.md +89 -0
  40. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/demo/08_table.md +28 -0
  41. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/demo/09_diff.md +47 -0
  42. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/demo/10_bbcode.md +24 -0
  43. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/demo/11_terminal.md +8 -0
  44. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/demo/applique/ae.rb +1 -0
  45. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/demo/applique/output.rb +5 -0
  46. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi/bbcode.rb +334 -0
  47. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi/chain.rb +50 -0
  48. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi/chart.rb +100 -0
  49. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi/code.rb +349 -0
  50. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi/columns.rb +197 -0
  51. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi/constants.rb +25 -0
  52. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi/core.rb +30 -0
  53. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi/diff.rb +215 -0
  54. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi/hexdump.rb +122 -0
  55. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi/logger.rb +211 -0
  56. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi/mixin.rb +121 -0
  57. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi/progressbar.rb +292 -0
  58. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi/string.rb +254 -0
  59. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi/table.rb +179 -0
  60. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi/terminal/curses.rb +26 -0
  61. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi/terminal/stty.rb +62 -0
  62. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi/terminal/termios.rb +68 -0
  63. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi/terminal/win32.rb +107 -0
  64. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi/terminal.rb +44 -0
  65. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi/version.rb +15 -0
  66. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi.rb +22 -0
  67. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/lib/ansi.yml +77 -0
  68. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/test/case_ansicode.rb +43 -0
  69. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/test/case_bbcode.rb +35 -0
  70. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/test/case_mixin.rb +35 -0
  71. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/test/case_progressbar.rb +21 -0
  72. data/vendor/bundle/ruby/2.6.0/gems/ansi-1.5.0/test/test_helper.rb +3 -0
  73. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/CHANGES +119 -0
  74. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/MIT-LICENSE +20 -0
  75. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/README.md +258 -0
  76. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/Rakefile +194 -0
  77. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/builder.blurb +27 -0
  78. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/builder.gemspec +45 -0
  79. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/doc/jamis.rb +592 -0
  80. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/doc/releases/builder-1.2.4.rdoc +31 -0
  81. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/doc/releases/builder-2.0.0.rdoc +46 -0
  82. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/doc/releases/builder-2.1.1.rdoc +58 -0
  83. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/lib/blankslate.rb +138 -0
  84. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/lib/builder/blankslate.rb +24 -0
  85. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/lib/builder/version.rb +9 -0
  86. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/lib/builder/xchar.rb +198 -0
  87. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/lib/builder/xmlbase.rb +200 -0
  88. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/lib/builder/xmlevents.rb +64 -0
  89. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/lib/builder/xmlmarkup.rb +345 -0
  90. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/lib/builder.rb +14 -0
  91. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/rakelib/publish.rake +21 -0
  92. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/rakelib/tags.rake +63 -0
  93. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/rakelib/testing.rake +8 -0
  94. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/test/helper.rb +13 -0
  95. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/test/performance.rb +42 -0
  96. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/test/preload.rb +40 -0
  97. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/test/test_blankslate.rb +208 -0
  98. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/test/test_eventbuilder.rb +151 -0
  99. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/test/test_markupbuilder.rb +617 -0
  100. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/test/test_method_caching.rb +63 -0
  101. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/test/test_namecollision.rb +40 -0
  102. data/vendor/bundle/ruby/2.6.0/gems/builder-3.2.4/test/test_xchar.rb +85 -0
  103. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/.autotest +34 -0
  104. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/History.rdoc +1380 -0
  105. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/Manifest.txt +27 -0
  106. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/README.rdoc +764 -0
  107. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/Rakefile +72 -0
  108. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/design_rationale.rb +52 -0
  109. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/lib/hoe/minitest.rb +32 -0
  110. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/lib/minitest/assertions.rb +807 -0
  111. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/lib/minitest/autorun.rb +13 -0
  112. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/lib/minitest/benchmark.rb +455 -0
  113. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/lib/minitest/expectations.rb +303 -0
  114. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/lib/minitest/hell.rb +11 -0
  115. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/lib/minitest/mock.rb +240 -0
  116. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/lib/minitest/parallel.rb +70 -0
  117. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/lib/minitest/pride.rb +4 -0
  118. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/lib/minitest/pride_plugin.rb +142 -0
  119. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/lib/minitest/spec.rb +342 -0
  120. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/lib/minitest/test.rb +220 -0
  121. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/lib/minitest/unit.rb +45 -0
  122. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/lib/minitest.rb +1053 -0
  123. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/test/minitest/metametameta.rb +117 -0
  124. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/test/minitest/test_minitest_assertions.rb +1567 -0
  125. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/test/minitest/test_minitest_benchmark.rb +137 -0
  126. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/test/minitest/test_minitest_mock.rb +872 -0
  127. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/test/minitest/test_minitest_reporter.rb +299 -0
  128. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/test/minitest/test_minitest_spec.rb +1041 -0
  129. data/vendor/bundle/ruby/2.6.0/gems/minitest-5.14.0/test/minitest/test_minitest_test.rb +1080 -0
  130. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/.gitignore +27 -0
  131. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/.ruby-gemset +1 -0
  132. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/.travis.yml +10 -0
  133. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/.yardopts +6 -0
  134. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/CHANGELOG.md +40 -0
  135. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/Gemfile +2 -0
  136. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/LICENSE +20 -0
  137. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/README.md +115 -0
  138. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/Rakefile +60 -0
  139. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/assets/default-reporter.png +0 -0
  140. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/assets/mean_time_reporter.png +0 -0
  141. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/assets/progress-reporter.png +0 -0
  142. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/assets/spec-reporter.png +0 -0
  143. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/lib/minitest/extensible_backtrace_filter.rb +67 -0
  144. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/lib/minitest/minitest_reporter_plugin.rb +75 -0
  145. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/lib/minitest/old_activesupport_fix.rb +24 -0
  146. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/lib/minitest/relative_position.rb +26 -0
  147. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/lib/minitest/reporters/ansi.rb +31 -0
  148. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/lib/minitest/reporters/base_reporter.rb +117 -0
  149. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/lib/minitest/reporters/default_reporter.rb +228 -0
  150. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/lib/minitest/reporters/html_reporter.rb +221 -0
  151. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/lib/minitest/reporters/junit_reporter.rb +157 -0
  152. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/lib/minitest/reporters/mean_time_reporter.rb +392 -0
  153. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/lib/minitest/reporters/progress_reporter.rb +96 -0
  154. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/lib/minitest/reporters/ruby_mate_reporter.rb +54 -0
  155. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/lib/minitest/reporters/rubymine_reporter.rb +117 -0
  156. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/lib/minitest/reporters/spec_reporter.rb +61 -0
  157. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/lib/minitest/reporters/version.rb +5 -0
  158. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/lib/minitest/reporters.rb +89 -0
  159. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/lib/minitest/templates/index.html.erb +83 -0
  160. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/minitest-reporters.gemspec +31 -0
  161. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/test/fixtures/junit_filename_bug_example_test.rb +21 -0
  162. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/test/fixtures/mean_time_test.rb +8 -0
  163. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/test/fixtures/progress_detailed_skip_test.rb +8 -0
  164. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/test/fixtures/progress_test.rb +8 -0
  165. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/test/fixtures/sample_test.rb +15 -0
  166. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/test/fixtures/spec_test.rb +13 -0
  167. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/test/gallery/bad_test.rb +25 -0
  168. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/test/gallery/good_test.rb +14 -0
  169. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/test/integration/reporters/junit_reporter_test.rb +12 -0
  170. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/test/integration/reporters/mean_time_reporter_test.rb +7 -0
  171. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/test/integration/reporters/progress_reporter_test.rb +34 -0
  172. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/test/test_helper.rb +22 -0
  173. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/test/unit/minitest/extensible_backtrace_filter_test.rb +42 -0
  174. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/test/unit/minitest/mean_time_reporter_unit_test.rb +152 -0
  175. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/test/unit/minitest/minitest_reporter_plugin_test.rb +14 -0
  176. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/test/unit/minitest/reporters_test.rb +52 -0
  177. data/vendor/bundle/ruby/2.6.0/gems/minitest-reporters-1.2.0/test/unit/minitest/spec_reporter_test.rb +41 -0
  178. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/CONTRIBUTING.rdoc +43 -0
  179. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/Gemfile +3 -0
  180. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/History.rdoc +2344 -0
  181. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/MIT-LICENSE +21 -0
  182. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/README.rdoc +156 -0
  183. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/Rakefile +41 -0
  184. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/azure-pipelines.yml +11 -0
  185. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/bin/bundle +105 -0
  186. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/bin/console +7 -0
  187. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/bin/rake +29 -0
  188. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/bin/rdoc +29 -0
  189. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/bin/rubocop +29 -0
  190. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/bin/setup +6 -0
  191. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/doc/command_line_usage.rdoc +158 -0
  192. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/doc/example/Rakefile1 +38 -0
  193. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/doc/example/Rakefile2 +35 -0
  194. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/doc/example/a.c +6 -0
  195. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/doc/example/b.c +6 -0
  196. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/doc/example/main.c +11 -0
  197. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/doc/glossary.rdoc +42 -0
  198. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/doc/jamis.rb +592 -0
  199. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/doc/proto_rake.rdoc +127 -0
  200. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/doc/rake.1 +156 -0
  201. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/doc/rakefile.rdoc +622 -0
  202. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/doc/rational.rdoc +151 -0
  203. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/exe/rake +27 -0
  204. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/application.rb +824 -0
  205. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/backtrace.rb +24 -0
  206. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/clean.rb +78 -0
  207. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/cloneable.rb +17 -0
  208. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/cpu_counter.rb +107 -0
  209. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/default_loader.rb +15 -0
  210. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/dsl_definition.rb +195 -0
  211. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/early_time.rb +22 -0
  212. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/ext/core.rb +26 -0
  213. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/ext/string.rb +176 -0
  214. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/file_creation_task.rb +25 -0
  215. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/file_list.rb +435 -0
  216. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/file_task.rb +54 -0
  217. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/file_utils.rb +137 -0
  218. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/file_utils_ext.rb +145 -0
  219. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/invocation_chain.rb +57 -0
  220. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/invocation_exception_mixin.rb +17 -0
  221. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/late_time.rb +18 -0
  222. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/linked_list.rb +112 -0
  223. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/loaders/makefile.rb +54 -0
  224. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/multi_task.rb +14 -0
  225. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/name_space.rb +38 -0
  226. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/packagetask.rb +207 -0
  227. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/phony.rb +16 -0
  228. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/private_reader.rb +21 -0
  229. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/promise.rb +100 -0
  230. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/pseudo_status.rb +30 -0
  231. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/rake_module.rb +67 -0
  232. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/rake_test_loader.rb +27 -0
  233. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/rule_recursion_overflow_error.rb +20 -0
  234. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/scope.rb +43 -0
  235. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/task.rb +413 -0
  236. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/task_argument_error.rb +8 -0
  237. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/task_arguments.rb +109 -0
  238. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/task_manager.rb +324 -0
  239. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/tasklib.rb +12 -0
  240. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/testtask.rb +224 -0
  241. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/thread_history_display.rb +49 -0
  242. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/thread_pool.rb +163 -0
  243. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/trace_output.rb +23 -0
  244. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/version.rb +10 -0
  245. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake/win32.rb +51 -0
  246. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/lib/rake.rb +71 -0
  247. data/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/rake.gemspec +42 -0
  248. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/LICENSE.txt +19 -0
  249. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/README.md +38 -0
  250. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/Rakefile +2 -0
  251. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/base.rb +183 -0
  252. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/calculators/length.rb +100 -0
  253. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/calculators/running_average.rb +9 -0
  254. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components/bar.rb +102 -0
  255. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components/percentage.rb +29 -0
  256. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components/rate.rb +43 -0
  257. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components/time.rb +107 -0
  258. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components/title.rb +13 -0
  259. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components.rb +5 -0
  260. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/errors/invalid_progress_error.rb +4 -0
  261. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/format/formatter.rb +27 -0
  262. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/format/molecule.rb +60 -0
  263. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/format/string.rb +36 -0
  264. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/format.rb +3 -0
  265. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/output.rb +68 -0
  266. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/outputs/non_tty.rb +47 -0
  267. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/outputs/null.rb +33 -0
  268. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/outputs/tty.rb +32 -0
  269. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/progress.rb +118 -0
  270. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/refinements/enumerator.rb +23 -0
  271. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/refinements.rb +1 -0
  272. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/throttle.rb +25 -0
  273. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/time.rb +32 -0
  274. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/timer.rb +72 -0
  275. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/version.rb +3 -0
  276. data/vendor/bundle/ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar.rb +22 -0
  277. data/vendor/bundle/ruby/2.6.0/specifications/ansi-1.5.0.gemspec +49 -0
  278. data/vendor/bundle/ruby/2.6.0/specifications/builder-3.2.4.gemspec +23 -0
  279. data/vendor/bundle/ruby/2.6.0/specifications/minitest-5.14.0.gemspec +41 -0
  280. data/vendor/bundle/ruby/2.6.0/specifications/minitest-reporters-1.2.0.gemspec +48 -0
  281. data/vendor/bundle/ruby/2.6.0/specifications/rake-12.3.3.gemspec +49 -0
  282. data/vendor/bundle/ruby/2.6.0/specifications/ruby-progressbar-1.10.1.gemspec +46 -0
  283. metadata +326 -0
@@ -0,0 +1,61 @@
1
+ module Minitest
2
+ module Reporters
3
+ # Turn-like reporter that reads like a spec.
4
+ #
5
+ # Based upon TwP's turn (MIT License) and paydro's monkey-patch.
6
+ #
7
+ # @see https://github.com/TwP/turn turn
8
+ # @see https://gist.github.com/356945 paydro's monkey-patch
9
+ class SpecReporter < BaseReporter
10
+ include ANSI::Code
11
+ include RelativePosition
12
+
13
+ def start
14
+ super
15
+ puts('Started with run options %s' % options[:args])
16
+ puts
17
+ end
18
+
19
+ def report
20
+ super
21
+ puts('Finished in %.5fs' % total_time)
22
+ print('%d tests, %d assertions, ' % [count, assertions])
23
+ color = failures.zero? && errors.zero? ? :green : :red
24
+ print(send(color) { '%d failures, %d errors, ' } % [failures, errors])
25
+ print(yellow { '%d skips' } % skips)
26
+ puts
27
+ end
28
+
29
+ def record(test)
30
+ super
31
+ record_print_status(test)
32
+ record_print_failures_if_any(test)
33
+ end
34
+
35
+ protected
36
+
37
+ def before_suite(suite)
38
+ puts suite
39
+ end
40
+
41
+ def after_suite(suite)
42
+ puts
43
+ end
44
+
45
+ def record_print_status(test)
46
+ test_name = test.name.gsub(/^test_: /, 'test:')
47
+ print pad_test(test_name)
48
+ print_colored_status(test)
49
+ print(" (%.2fs)" % test.time) unless test.time.nil?
50
+ puts
51
+ end
52
+
53
+ def record_print_failures_if_any(test)
54
+ if !test.skipped? && test.failure
55
+ print_info(test.failure)
56
+ puts
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,5 @@
1
+ module Minitest
2
+ module Reporters
3
+ VERSION = '1.2.0'
4
+ end
5
+ end
@@ -0,0 +1,89 @@
1
+ require 'minitest'
2
+
3
+ module Minitest
4
+ require "minitest/relative_position"
5
+ require "minitest/extensible_backtrace_filter"
6
+
7
+ module Reporters
8
+ require "minitest/reporters/version"
9
+
10
+ autoload :ANSI, "minitest/reporters/ansi"
11
+ autoload :BaseReporter, "minitest/reporters/base_reporter"
12
+ autoload :DefaultReporter, "minitest/reporters/default_reporter"
13
+ autoload :SpecReporter, "minitest/reporters/spec_reporter"
14
+ autoload :ProgressReporter, "minitest/reporters/progress_reporter"
15
+ autoload :RubyMateReporter, "minitest/reporters/ruby_mate_reporter"
16
+ autoload :RubyMineReporter, "minitest/reporters/rubymine_reporter"
17
+ autoload :JUnitReporter, "minitest/reporters/junit_reporter"
18
+ autoload :HtmlReporter, "minitest/reporters/html_reporter"
19
+ autoload :MeanTimeReporter, "minitest/reporters/mean_time_reporter"
20
+
21
+ class << self
22
+ attr_accessor :reporters
23
+ end
24
+
25
+ def self.use!(console_reporters = ProgressReporter.new, env = ENV, backtrace_filter = nil)
26
+ use_runner!(console_reporters, env)
27
+ if backtrace_filter.nil? && !defined?(::Rails)
28
+ backtrace_filter = ExtensibleBacktraceFilter.default_filter
29
+ end
30
+ Minitest.backtrace_filter = backtrace_filter unless backtrace_filter.nil?
31
+
32
+ unless defined?(@@loaded)
33
+ use_around_test_hooks!
34
+ use_old_activesupport_fix!
35
+ @@loaded = true
36
+ end
37
+ end
38
+
39
+ def self.use_runner!(console_reporters, env)
40
+ self.reporters = choose_reporters(console_reporters, env)
41
+ end
42
+
43
+ def self.use_around_test_hooks!
44
+ Minitest::Test.class_eval do
45
+ def run_with_hooks(*args)
46
+ if defined?(Minitest::Reporters) && (reporters = Minitest::Reporters.reporters)
47
+ reporters.each { |r| r.before_test(self) }
48
+ result = run_without_hooks(*args)
49
+ reporters.each { |r| r.after_test(self) }
50
+ result
51
+ else
52
+ run_without_hooks(*args)
53
+ end
54
+ end
55
+
56
+ alias_method :run_without_hooks, :run
57
+ alias_method :run, :run_with_hooks
58
+ end
59
+ end
60
+
61
+ def self.choose_reporters(console_reporters, env)
62
+ if env["TM_PID"]
63
+ [RubyMateReporter.new]
64
+ elsif env["RM_INFO"] || env["TEAMCITY_VERSION"]
65
+ [RubyMineReporter.new]
66
+ elsif !env["VIM"]
67
+ Array(console_reporters)
68
+ end
69
+ end
70
+
71
+ def self.clock_time
72
+ if minitest_version >= 561
73
+ Minitest.clock_time
74
+ else
75
+ Time.now
76
+ end
77
+ end
78
+
79
+ def self.minitest_version
80
+ Minitest::VERSION.gsub('.', '').to_i
81
+ end
82
+
83
+ def self.use_old_activesupport_fix!
84
+ if defined?(ActiveSupport::VERSION) && ActiveSupport::VERSION::MAJOR < 4
85
+ require "minitest/old_activesupport_fix"
86
+ end
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,83 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <title><%= title %></title>
5
+ <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
6
+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
7
+ <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
8
+ <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
9
+ </head>
10
+
11
+ <body>
12
+ <div class="container">
13
+ <div class="jumbotron">
14
+ <h1><%= title %></h1>
15
+ <p>
16
+ Finished in <%= total_time_to_hms %>, <%= '%.2f tests/s' % (count / total_time) %>, <%= '%.2f assertions/s' % (assertions / total_time) %>
17
+ </p>
18
+ <p>
19
+ <strong>
20
+ <span class="<%= 'text-info' if (failures == 0 && errors == 0) %>"><%= '%d' % count %> tests</span>,
21
+ <span class="<%= 'text-info' if (failures == 0 && errors == 0) %>"> <%= '%d' % assertions %> assertions</span>,
22
+ <span class="<%= 'text-danger' if failures > 0 %>"> <%= '%d' % failures %> failures</span>,
23
+ <span class="<%= 'text-danger' if errors > 0 %>"> <%= '%d' % errors %> errors</span>,
24
+ <span class="<%= 'text-warning' if skips > 0 %>"> <%= '%d' % skips %> skips</span>
25
+ </strong>
26
+ </p>
27
+
28
+ <div class="progress">
29
+ <div class="progress-bar progress-bar-info" style="width: <%= percent_passes %>%">
30
+ <%= '%d' % percent_passes %>% passed
31
+ </div>
32
+ <div class="progress-bar progress-bar-danger" style="width: <%= percent_errors_failures %>%">
33
+ <%= '%d' % percent_errors_failures %>% failed
34
+ </div>
35
+ <div class="progress-bar progress-bar-warning" style="width: <%= percent_skipps %>%">
36
+ <%= '%d' % percent_skipps %>% skipped
37
+ </div>
38
+ </div>
39
+
40
+
41
+ </div>
42
+
43
+ <% suites.each do |suite| %>
44
+ <div class="panel panel-default">
45
+ <div class="panel-heading"><strong><%= suite[:name] %></strong>
46
+ <span class="pull-right">
47
+ <span class="<%= 'text-info' if (suite[:fail_count] == 0 && suite[:error_count] == 0) %>"><%= '%d' % suite[:test_count] %> tests</span>,
48
+ <span class="<%= 'text-info' if (failures == 0 && errors == 0) %>"> <%= '%d' % suite[:assertion_count] %> assertions</span>,
49
+ <span class="<%= 'text-danger' if suite[:fail_count] > 0 %>"> <%= '%d' % suite[:fail_count] %> failures</span>,
50
+ <span class="<%= 'text-danger' if suite[:error_count] > 0 %>"> <%= '%d' % suite[:error_count] %> errors</span>,
51
+ <span class="<%= 'text-warning' if suite[:skip_count] > 0 %>"> <%= '%d' % suite[:skip_count] %> skips</span>,
52
+ <span> finished in <%= '%.4fs' % suite[:time] %></span>
53
+ </span>
54
+ </div>
55
+ <div class="panel-body">
56
+ <div class="list-group">
57
+ <% suite[:tests].each do |test| %>
58
+ <div class="list-group-item">
59
+ <h5 class="list-group-item-heading">
60
+ <% if result(test) == :pass %>
61
+ <span class="glyphicon glyphicon-ok text-info" aria-hidden="true"></span>
62
+ <% elsif result(test) == :skip %>
63
+ <span class="glyphicon glyphicon-ban-circle text-warning" aria-hidden="true"></span>
64
+ <% else %>
65
+ <span class="glyphicon glyphicon-remove text-danger" aria-hidden="true"></span>
66
+ <% end %>
67
+ <%= friendly_name(test) %>
68
+ <span class="pull-right">
69
+ Assertions <%= test.assertions %>, time <%= ('%.6fs' % test.time) %>
70
+ </span>
71
+ </h5>
72
+ <% if !test.passed? %>
73
+ <pre class="list-group-item-text"><%= "#{location(test.failure)}\n\n#{test.failure.message}" %></pre>
74
+ <% end %>
75
+ </div>
76
+ <% end %>
77
+ </div>
78
+ </div>
79
+ </div>
80
+ <% end %>
81
+ </div>
82
+ </body>
83
+ </html>
@@ -0,0 +1,31 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path('../lib', __FILE__)
3
+ require 'minitest/reporters/version'
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = 'minitest-reporters'
7
+ s.version = Minitest::Reporters::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ['Alexander Kern']
10
+ s.email = ['alex@kernul.com']
11
+ s.homepage = 'https://github.com/CapnKernul/minitest-reporters'
12
+ s.summary = %q{Create customizable Minitest output formats}
13
+ s.description = %q{Death to haphazard monkey-patching! Extend Minitest through simple hooks.}
14
+ s.license = 'MIT'
15
+
16
+ s.required_ruby_version = '>= 1.9.3'
17
+ s.rubyforge_project = 'minitest-reporters'
18
+
19
+ s.add_dependency 'minitest', '>= 5.0'
20
+ s.add_dependency 'ansi'
21
+ s.add_dependency 'ruby-progressbar'
22
+ s.add_dependency 'builder'
23
+
24
+ s.add_development_dependency 'maruku'
25
+ s.add_development_dependency 'rake'
26
+
27
+ s.files = `git ls-files`.split("\n")
28
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
29
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
30
+ s.require_paths = ['lib']
31
+ end
@@ -0,0 +1,21 @@
1
+ # This is a test for a bug that was happening when the JUnit Reporter was
2
+ # creating filenames from `describe`s that contained slashes, which would crash
3
+ # since it was trying to create directories then.
4
+
5
+ require 'bundler/setup'
6
+ require 'minitest/autorun'
7
+ require 'minitest/reporters'
8
+
9
+ Minitest::Reporters.use! Minitest::Reporters::JUnitReporter.new
10
+
11
+ describe 'something/other' do
12
+ it 'does something' do
13
+ 1.must_equal 1
14
+ end
15
+ end
16
+
17
+ describe 'something/other' do
18
+ it 'does something else' do
19
+ 1.must_equal 2
20
+ end
21
+ end
@@ -0,0 +1,8 @@
1
+ require 'bundler/setup'
2
+ require 'minitest/autorun'
3
+ require 'minitest/reporters'
4
+ require 'minitest/reporters/mean_time_reporter'
5
+
6
+ Minitest::Reporters.use! Minitest::Reporters::MeanTimeReporter.new
7
+
8
+ require_relative '../gallery/good_test'
@@ -0,0 +1,8 @@
1
+ require 'bundler/setup'
2
+ require 'minitest/autorun'
3
+ require 'minitest/reporters'
4
+
5
+ Minitest::Reporters.use! Minitest::Reporters::ProgressReporter.new(detailed_skip: false)
6
+
7
+ require_relative 'sample_test'
8
+
@@ -0,0 +1,8 @@
1
+ require 'bundler/setup'
2
+ require 'minitest/autorun'
3
+ require 'minitest/reporters'
4
+
5
+ Minitest::Reporters.use! Minitest::Reporters::ProgressReporter.new
6
+
7
+ require_relative 'sample_test'
8
+
@@ -0,0 +1,15 @@
1
+ Class.new(Minitest::Test) do
2
+ def test_success
3
+ assert true
4
+ end
5
+ def test_failure
6
+ assert false
7
+ end
8
+ def test_skip
9
+ skip('Skipping rope')
10
+ end
11
+ def test_error
12
+ raise 'An unexpected error'
13
+ end
14
+ end
15
+
@@ -0,0 +1,13 @@
1
+ require 'minitest'
2
+ require 'minitest/reporters'
3
+ require 'minitest/autorun'
4
+
5
+ Minitest::Reporters.use! Minitest::Reporters::ProgressReporter.new
6
+
7
+ describe String do
8
+ describe '#length' do
9
+ it 'works' do
10
+ assert_equal 5, 'hello'.length
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,25 @@
1
+ require_relative "../test_helper"
2
+
3
+ module MinitestReportersTest
4
+ class BadTest < TestCase
5
+ def test_a
6
+ assert_equal 1, 2
7
+ end
8
+
9
+ def test_b
10
+ assert false # simple failure
11
+ end
12
+
13
+ def test_b
14
+ assert_equal "ab\nc", "ab\nd" # some nice diff
15
+ end
16
+
17
+ def test_boom
18
+ raise "A random exception"
19
+ end
20
+
21
+ def test_long_method_name
22
+ skip
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,14 @@
1
+ require_relative "../test_helper"
2
+
3
+ module MinitestReportersTest
4
+ class GoodTest < TestCase
5
+ def test_a
6
+ assert_equal 1, 1
7
+ assert 1
8
+ end
9
+
10
+ def test_b
11
+ assert_equal 2, 2
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ require_relative "../../test_helper"
2
+
3
+ module MinitestReportersTest
4
+ class JUnitReporterTest < TestCase
5
+ def test_replaces_special_characters_for_filenames_and_doesnt_crash
6
+ fixtures_directory = File.expand_path('../../../fixtures', __FILE__)
7
+ test_filename = File.join(fixtures_directory, 'junit_filename_bug_example_test.rb')
8
+ output = `ruby #{test_filename} 2>&1`
9
+ refute_match 'No such file or directory', output
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,7 @@
1
+ require_relative "../../test_helper"
2
+
3
+ module MinitestReportersTest
4
+ class MeanTimeReporterTest < TestCase
5
+
6
+ end
7
+ end
@@ -0,0 +1,34 @@
1
+ require_relative "../../test_helper"
2
+
3
+ module MinitestReportersTest
4
+ class ProgressReporterTest < TestCase
5
+ def test_all_failures_are_displayed
6
+ fixtures_directory = File.expand_path('../../../fixtures', __FILE__)
7
+ test_filename = File.join(fixtures_directory, 'progress_test.rb')
8
+ output = `ruby #{test_filename} 2>&1`
9
+ assert_match 'ERROR["test_error"', output, 'Errors should be displayed'
10
+ assert_match 'FAIL["test_failure"', output, 'Failures should be displayed'
11
+ assert_match 'SKIP["test_skip', output, 'Skipped tests should be displayed'
12
+ end
13
+ def test_skipped_tests_are_not_displayed
14
+ fixtures_directory = File.expand_path('../../../fixtures', __FILE__)
15
+ test_filename = File.join(fixtures_directory, 'progress_detailed_skip_test.rb')
16
+ output = `ruby #{test_filename} 2>&1`
17
+ assert_match 'ERROR["test_error"', output, 'Errors should be displayed'
18
+ assert_match 'FAIL["test_failure"', output, 'Failures should be displayed'
19
+ refute_match 'SKIP["test_skip', output, 'Skipped tests should not be displayed'
20
+ end
21
+ def test_progress_works_with_filter_and_specs
22
+ fixtures_directory = File.expand_path('../../../fixtures', __FILE__)
23
+ test_filename = File.join(fixtures_directory, 'spec_test.rb')
24
+ output = `ruby #{test_filename} -n /length/ 2>&1`
25
+ refute_match '0 out of 0', output, 'Progress should not puts a warning'
26
+ end
27
+ def test_progress_works_with_strict_filter
28
+ fixtures_directory = File.expand_path('../../../fixtures', __FILE__)
29
+ test_filename = File.join(fixtures_directory, 'spec_test.rb')
30
+ output = `ruby #{test_filename} -n /^test_0001_works$/ 2>&1`
31
+ refute_match '0 out of 0', output, 'Progress should not puts a warning'
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,22 @@
1
+ require "bundler/setup"
2
+ require "minitest/autorun"
3
+ require "minitest/reporters"
4
+
5
+ ENV['MINITEST_REPORTERS_MONO'] = 'yes'
6
+ module MinitestReportersTest
7
+ class TestCase < Minitest::Test
8
+ end
9
+ end
10
+
11
+ # Testing the built-in reporters using automated unit testing would be extremely
12
+ # brittle. Consequently, there are no unit tests for them. If you'd like to run
13
+ # all the reporters sequentially on a fake test suite, run `rake gallery`.
14
+
15
+ if ENV["REPORTER"] == "Pride"
16
+ require "minitest/pride"
17
+ elsif ENV["REPORTER"]
18
+ reporter_klass = Minitest::Reporters.const_get(ENV["REPORTER"])
19
+ Minitest::Reporters.use!(reporter_klass.new)
20
+ else
21
+ Minitest::Reporters.use!(Minitest::Reporters::DefaultReporter.new)
22
+ end
@@ -0,0 +1,42 @@
1
+ require_relative "../../test_helper"
2
+
3
+ module MinitestReportersTest
4
+ class ExtensibleBacktraceFilterTest < TestCase
5
+ def setup
6
+ @default_filter = Minitest::ExtensibleBacktraceFilter.default_filter
7
+ @filter = Minitest::ExtensibleBacktraceFilter.new
8
+ @backtrace = ["foo", "bar", "baz"]
9
+ end
10
+
11
+ def test_adding_filters
12
+ @filter.add_filter(/foo/)
13
+ assert @filter.filters?("foo")
14
+ refute @filter.filters?("baz")
15
+ end
16
+
17
+ def test_filter_backtrace_when_first_line_is_filtered
18
+ @filter.add_filter(/foo/)
19
+ assert_equal ["bar", "baz"], @filter.filter(@backtrace)
20
+ end
21
+
22
+ def test_filter_backtrace_when_middle_line_is_filtered
23
+ @filter.add_filter(/bar/)
24
+ assert_equal ["foo"], @filter.filter(@backtrace)
25
+ end
26
+
27
+ def test_filter_backtrace_when_all_lines_are_filtered
28
+ @filter.add_filter(/./)
29
+ assert_equal ["foo", "bar", "baz"], @filter.filter(@backtrace)
30
+ end
31
+
32
+ def test_default_filter
33
+ assert @default_filter.filters?("lib/minitest")
34
+ assert @default_filter.filters?("lib/minitest/reporters")
35
+ refute @default_filter.filters?("lib/my_gem")
36
+ end
37
+
38
+ def test_nil_backtrace
39
+ assert_equal [], @filter.filter(nil)
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,152 @@
1
+ require_relative "../../test_helper"
2
+
3
+ module MinitestReportersTest
4
+ class MeanTimeReporterUnitTest < Minitest::Test
5
+ def setup
6
+ configure_report_paths
7
+ previous_test_run
8
+ end
9
+
10
+ def teardown
11
+ File.delete(@previous_run_path) if File.exist?(@previous_run_path)
12
+ File.delete(@report_file_path) if File.exist?(@report_file_path)
13
+ end
14
+
15
+ def test_sorts_avg_numerically
16
+ report_output = generate_report(:avg)
17
+
18
+ expected_order = [
19
+ 'AVG_SLOW',
20
+ 'MAX_SLOW',
21
+ 'MIN_SLOW',
22
+ 'MIDDLE',
23
+ 'MIN_FAST',
24
+ 'MAX_FAST',
25
+ 'AVG_FAST'
26
+ ]
27
+ verify_result_order(report_output, expected_order)
28
+ end
29
+
30
+ def test_sorts_min_numerically
31
+ report_output = generate_report(:min)
32
+
33
+ expected_order = [
34
+ 'MIN_SLOW',
35
+ 'AVG_SLOW',
36
+ 'MAX_SLOW',
37
+ 'MIDDLE',
38
+ 'MAX_FAST',
39
+ 'AVG_FAST',
40
+ 'MIN_FAST'
41
+ ]
42
+ verify_result_order(report_output, expected_order)
43
+ end
44
+
45
+ def test_sorts_max_numerically
46
+ report_output = generate_report(:max)
47
+
48
+ expected_order = [
49
+ 'MAX_SLOW',
50
+ 'AVG_SLOW',
51
+ 'MIN_SLOW',
52
+ 'MIDDLE',
53
+ 'MIN_FAST',
54
+ 'AVG_FAST',
55
+ 'MAX_FAST'
56
+ ]
57
+ verify_result_order(report_output, expected_order)
58
+ end
59
+
60
+ def test_sorts_last_numerically
61
+ report_output = generate_report(:last)
62
+
63
+ expected_order = [
64
+ 'AVG_SLOW',
65
+ 'MIN_SLOW',
66
+ 'MAX_SLOW',
67
+ 'MIDDLE',
68
+ 'MIN_FAST',
69
+ 'MAX_FAST',
70
+ 'AVG_FAST'
71
+ ]
72
+ verify_result_order(report_output, expected_order)
73
+ end
74
+
75
+ private
76
+
77
+ def simulate_suite_runtime(suite_name, run_time)
78
+ test_suite = Minitest::Test.new(suite_name)
79
+ base_clock_time = Minitest::Reporters.clock_time
80
+ Minitest::Reporters.stub(:clock_time, base_clock_time - run_time) do
81
+ @reporter.before_suite(test_suite)
82
+ end
83
+ @reporter.after_suite(test_suite)
84
+ end
85
+
86
+ def previous_test_run
87
+ @reporter = Minitest::Reporters::MeanTimeReporter.new(
88
+ previous_runs_filename: @previous_run_path,
89
+ report_filename: @report_file_path
90
+ )
91
+
92
+ simulate_suite_runtime('MIDDLE', 5.0)
93
+ simulate_suite_runtime('MIN_FAST', 0.5)
94
+ simulate_suite_runtime('MIN_SLOW', 10.5)
95
+ simulate_suite_runtime('MAX_FAST', 1.2)
96
+ simulate_suite_runtime('MAX_SLOW', 16.3)
97
+ simulate_suite_runtime('AVG_FAST', 1.3)
98
+ simulate_suite_runtime('AVG_SLOW', 10.2)
99
+ @reporter.tests << Minitest::Test.new('Final')
100
+ # Generate a "previous" run
101
+ @reporter.io = StringIO.new
102
+ @reporter.start
103
+ @reporter.report
104
+ end
105
+
106
+ def configure_report_paths
107
+ previous_runs_file = Tempfile.new('minitest-mean-time-previous-runs')
108
+ previous_runs_file.close
109
+ @previous_run_path = previous_runs_file.path
110
+ previous_runs_file.delete
111
+ report_file = Tempfile.new('minitest-mean-time-report')
112
+ report_file.close
113
+ @report_file_path = report_file.path
114
+ report_file.delete
115
+ end
116
+
117
+ def generate_report(sort_column)
118
+ # Reset the reporter for the test run
119
+ @reporter = Minitest::Reporters::MeanTimeReporter.new(
120
+ previous_runs_filename: @previous_run_path,
121
+ report_filename: @report_file_path,
122
+ sort_column: sort_column
123
+ )
124
+ simulate_suite_runtime('MIDDLE', 5.0)
125
+ simulate_suite_runtime('MIN_FAST', 3.5)
126
+ simulate_suite_runtime('MIN_SLOW', 10.5)
127
+ simulate_suite_runtime('MAX_FAST', 0.9)
128
+ simulate_suite_runtime('MAX_SLOW', 6.3)
129
+ simulate_suite_runtime('AVG_FAST', 0.65)
130
+ simulate_suite_runtime('AVG_SLOW', 14.2)
131
+ @reporter.tests << Minitest::Test.new('Final')
132
+
133
+ report_output = StringIO.new
134
+ @reporter.io = report_output
135
+ @reporter.start
136
+ @reporter.report
137
+ report_output
138
+ end
139
+
140
+ def verify_result_order(report_output, expected_order)
141
+ report_output.rewind
142
+ test_lines = report_output.read.split("\n")
143
+ test_lines.select! { |line| line.start_with?('Avg:') }
144
+
145
+ # Exclude the final placeholder 0 second test from assertions
146
+ test_lines.reject! { |line| line.end_with?('Minitest::Test') }
147
+ actual_order = test_lines.map { |line| line.gsub(/.*Description: /, '') }
148
+
149
+ assert_equal(expected_order, actual_order, "\n#{test_lines.join("\n")}")
150
+ end
151
+ end
152
+ end