lgrgic_palindrome_detector 0.1.0 → 0.2.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 (381) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/lgrgic_palindrome_detector.rb +15 -3
  4. data/lib/lgrgic_palindrome_detector/version.rb +1 -1
  5. data/vendor/cache/cache/lgrgic_palindrome_detector-0.1.0.gem +0 -0
  6. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/.gitignore +8 -0
  7. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/.travis.yml +7 -0
  8. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/Gemfile +8 -0
  9. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/Gemfile.lock +31 -0
  10. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/README.md +39 -0
  11. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/Rakefile +10 -0
  12. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/bin/console +14 -0
  13. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/bin/setup +8 -0
  14. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/lgrgic_palindrome_detector.gemspec +37 -0
  15. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/lib/lgrgic_palindrome_detector.rb +16 -0
  16. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/lib/lgrgic_palindrome_detector/version.rb +3 -0
  17. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/ansi-1.5.0.gem +0 -0
  18. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/bin/rake +27 -0
  19. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/builder-3.2.3.gem +0 -0
  20. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/cache/ansi-1.5.0.gem +0 -0
  21. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/cache/builder-3.2.3.gem +0 -0
  22. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/cache/minitest-5.11.3.gem +0 -0
  23. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/cache/minitest-reporters-1.2.0.gem +0 -0
  24. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/cache/rake-10.5.0.gem +0 -0
  25. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/cache/ruby-progressbar-1.10.0.gem +0 -0
  26. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/.index +77 -0
  27. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/.yardopts +8 -0
  28. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/DEMO.md +451 -0
  29. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/HISTORY.md +217 -0
  30. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/LICENSE.txt +23 -0
  31. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/NOTICE.md +170 -0
  32. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/README.md +91 -0
  33. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/demo/01_ansicode.md +65 -0
  34. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/demo/02_core.md +11 -0
  35. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/demo/03_logger.md +30 -0
  36. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/demo/04_progressbar.md +62 -0
  37. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/demo/05_mixin.md +37 -0
  38. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/demo/06_string.md +56 -0
  39. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/demo/07_columns.md +89 -0
  40. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/demo/08_table.md +28 -0
  41. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/demo/09_diff.md +47 -0
  42. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/demo/10_bbcode.md +24 -0
  43. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/demo/11_terminal.md +8 -0
  44. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/demo/applique/ae.rb +1 -0
  45. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/demo/applique/output.rb +5 -0
  46. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi.rb +22 -0
  47. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi.yml +77 -0
  48. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi/bbcode.rb +334 -0
  49. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi/chain.rb +50 -0
  50. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi/chart.rb +100 -0
  51. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi/code.rb +349 -0
  52. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi/columns.rb +197 -0
  53. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi/constants.rb +25 -0
  54. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi/core.rb +30 -0
  55. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi/diff.rb +215 -0
  56. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi/hexdump.rb +122 -0
  57. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi/logger.rb +211 -0
  58. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi/mixin.rb +121 -0
  59. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi/progressbar.rb +292 -0
  60. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi/string.rb +254 -0
  61. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi/table.rb +179 -0
  62. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi/terminal.rb +44 -0
  63. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi/terminal/curses.rb +26 -0
  64. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi/terminal/stty.rb +62 -0
  65. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi/terminal/termios.rb +68 -0
  66. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi/terminal/win32.rb +107 -0
  67. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/lib/ansi/version.rb +15 -0
  68. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/test/case_ansicode.rb +43 -0
  69. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/test/case_bbcode.rb +35 -0
  70. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/test/case_mixin.rb +35 -0
  71. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/test/case_progressbar.rb +21 -0
  72. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ansi-1.5.0/test/test_helper.rb +3 -0
  73. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/CHANGES +107 -0
  74. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/MIT-LICENSE +20 -0
  75. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/README.md +258 -0
  76. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/Rakefile +195 -0
  77. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/doc/jamis.rb +591 -0
  78. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/doc/releases/builder-1.2.4.rdoc +31 -0
  79. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/doc/releases/builder-2.0.0.rdoc +46 -0
  80. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/doc/releases/builder-2.1.1.rdoc +58 -0
  81. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/lib/blankslate.rb +137 -0
  82. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/lib/builder.rb +13 -0
  83. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/lib/builder/blankslate.rb +23 -0
  84. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/lib/builder/version.rb +8 -0
  85. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/lib/builder/xchar.rb +197 -0
  86. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/lib/builder/xmlbase.rb +199 -0
  87. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/lib/builder/xmlevents.rb +63 -0
  88. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/lib/builder/xmlmarkup.rb +339 -0
  89. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/rakelib/publish.rake +20 -0
  90. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/rakelib/tags.rake +62 -0
  91. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/rakelib/testing.rake +7 -0
  92. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/test/helper.rb +12 -0
  93. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/test/performance.rb +41 -0
  94. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/test/preload.rb +39 -0
  95. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/test/test_blankslate.rb +213 -0
  96. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/test/test_eventbuilder.rb +150 -0
  97. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/test/test_markupbuilder.rb +611 -0
  98. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/test/test_method_caching.rb +62 -0
  99. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/test/test_namecollision.rb +39 -0
  100. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/builder-3.2.3/test/test_xchar.rb +78 -0
  101. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/.autotest +34 -0
  102. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/History.rdoc +1310 -0
  103. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/Manifest.txt +26 -0
  104. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/README.rdoc +746 -0
  105. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/Rakefile +86 -0
  106. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/design_rationale.rb +52 -0
  107. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/lib/hoe/minitest.rb +32 -0
  108. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/lib/minitest.rb +987 -0
  109. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/lib/minitest/assertions.rb +693 -0
  110. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/lib/minitest/autorun.rb +13 -0
  111. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/lib/minitest/benchmark.rb +455 -0
  112. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/lib/minitest/expectations.rb +284 -0
  113. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/lib/minitest/hell.rb +11 -0
  114. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/lib/minitest/mock.rb +240 -0
  115. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/lib/minitest/parallel.rb +70 -0
  116. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/lib/minitest/pride.rb +4 -0
  117. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/lib/minitest/pride_plugin.rb +142 -0
  118. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/lib/minitest/spec.rb +331 -0
  119. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/lib/minitest/test.rb +220 -0
  120. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/lib/minitest/unit.rb +45 -0
  121. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/test/minitest/metametameta.rb +102 -0
  122. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/test/minitest/test_minitest_benchmark.rb +137 -0
  123. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/test/minitest/test_minitest_mock.rb +874 -0
  124. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/test/minitest/test_minitest_reporter.rb +299 -0
  125. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/test/minitest/test_minitest_spec.rb +987 -0
  126. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-5.11.3/test/minitest/test_minitest_test.rb +2142 -0
  127. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/.gitignore +27 -0
  128. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/.ruby-gemset +1 -0
  129. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/.travis.yml +10 -0
  130. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/.yardopts +6 -0
  131. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/CHANGELOG.md +40 -0
  132. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/Gemfile +2 -0
  133. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/LICENSE +20 -0
  134. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/README.md +115 -0
  135. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/Rakefile +60 -0
  136. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/assets/default-reporter.png +0 -0
  137. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/assets/mean_time_reporter.png +0 -0
  138. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/assets/progress-reporter.png +0 -0
  139. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/assets/spec-reporter.png +0 -0
  140. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/extensible_backtrace_filter.rb +67 -0
  141. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/minitest_reporter_plugin.rb +75 -0
  142. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/old_activesupport_fix.rb +24 -0
  143. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/relative_position.rb +26 -0
  144. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters.rb +89 -0
  145. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/ansi.rb +31 -0
  146. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/base_reporter.rb +117 -0
  147. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/default_reporter.rb +228 -0
  148. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/html_reporter.rb +221 -0
  149. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/junit_reporter.rb +157 -0
  150. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/mean_time_reporter.rb +392 -0
  151. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/progress_reporter.rb +96 -0
  152. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/ruby_mate_reporter.rb +54 -0
  153. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/rubymine_reporter.rb +117 -0
  154. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/spec_reporter.rb +61 -0
  155. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/version.rb +5 -0
  156. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/templates/index.html.erb +83 -0
  157. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/minitest-reporters.gemspec +31 -0
  158. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/junit_filename_bug_example_test.rb +21 -0
  159. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/mean_time_test.rb +8 -0
  160. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/progress_detailed_skip_test.rb +8 -0
  161. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/progress_test.rb +8 -0
  162. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/sample_test.rb +15 -0
  163. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/spec_test.rb +13 -0
  164. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/test/gallery/bad_test.rb +25 -0
  165. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/test/gallery/good_test.rb +14 -0
  166. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/test/integration/reporters/junit_reporter_test.rb +12 -0
  167. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/test/integration/reporters/mean_time_reporter_test.rb +7 -0
  168. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/test/integration/reporters/progress_reporter_test.rb +34 -0
  169. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/test/test_helper.rb +22 -0
  170. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/test/unit/minitest/extensible_backtrace_filter_test.rb +42 -0
  171. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/test/unit/minitest/mean_time_reporter_unit_test.rb +152 -0
  172. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/test/unit/minitest/minitest_reporter_plugin_test.rb +14 -0
  173. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/test/unit/minitest/reporters_test.rb +52 -0
  174. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/minitest-reporters-1.2.0/test/unit/minitest/spec_reporter_test.rb +41 -0
  175. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/.autotest +7 -0
  176. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/.rubocop.yml +27 -0
  177. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/.togglerc +7 -0
  178. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/CONTRIBUTING.rdoc +38 -0
  179. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/History.rdoc +659 -0
  180. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/MIT-LICENSE +21 -0
  181. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/Manifest.txt +166 -0
  182. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/README.rdoc +139 -0
  183. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/Rakefile +81 -0
  184. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/bin/rake +33 -0
  185. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/command_line_usage.rdoc +158 -0
  186. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/example/Rakefile1 +38 -0
  187. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/example/Rakefile2 +35 -0
  188. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/example/a.c +6 -0
  189. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/example/b.c +6 -0
  190. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/example/main.c +11 -0
  191. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/glossary.rdoc +42 -0
  192. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/jamis.rb +591 -0
  193. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/proto_rake.rdoc +127 -0
  194. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/rake.1 +141 -0
  195. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/rakefile.rdoc +624 -0
  196. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/rational.rdoc +151 -0
  197. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.4.14.rdoc +23 -0
  198. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.4.15.rdoc +35 -0
  199. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.5.0.rdoc +53 -0
  200. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.5.3.rdoc +78 -0
  201. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.5.4.rdoc +46 -0
  202. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.6.0.rdoc +141 -0
  203. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.7.0.rdoc +119 -0
  204. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.7.1.rdoc +59 -0
  205. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.7.2.rdoc +121 -0
  206. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.7.3.rdoc +47 -0
  207. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.0.rdoc +114 -0
  208. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.2.rdoc +165 -0
  209. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.3.rdoc +112 -0
  210. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.4.rdoc +147 -0
  211. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.5.rdoc +53 -0
  212. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.6.rdoc +37 -0
  213. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.7.rdoc +55 -0
  214. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.0.rdoc +112 -0
  215. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.1.rdoc +52 -0
  216. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.2.rdoc +55 -0
  217. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.rdoc +49 -0
  218. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.3.rdoc +102 -0
  219. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.4.rdoc +60 -0
  220. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.5.rdoc +55 -0
  221. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.6.rdoc +64 -0
  222. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-10.0.0.rdoc +178 -0
  223. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-10.0.1.rdoc +58 -0
  224. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-10.0.2.rdoc +53 -0
  225. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-10.0.3.rdoc +191 -0
  226. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-10.1.0.rdoc +61 -0
  227. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake.rb +79 -0
  228. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/alt_system.rb +110 -0
  229. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/application.rb +790 -0
  230. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/backtrace.rb +23 -0
  231. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/clean.rb +76 -0
  232. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/cloneable.rb +16 -0
  233. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/.document +1 -0
  234. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/compositepublisher.rb +21 -0
  235. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/ftptools.rb +137 -0
  236. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/publisher.rb +81 -0
  237. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/rubyforgepublisher.rb +18 -0
  238. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/sshpublisher.rb +61 -0
  239. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/sys.rb +4 -0
  240. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/cpu_counter.rb +125 -0
  241. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/default_loader.rb +14 -0
  242. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/dsl_definition.rb +201 -0
  243. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/early_time.rb +21 -0
  244. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/ext/core.rb +25 -0
  245. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/ext/module.rb +2 -0
  246. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/ext/pathname.rb +25 -0
  247. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/ext/string.rb +175 -0
  248. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/ext/time.rb +18 -0
  249. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/file_creation_task.rb +24 -0
  250. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/file_list.rb +428 -0
  251. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/file_task.rb +46 -0
  252. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/file_utils.rb +128 -0
  253. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/file_utils_ext.rb +144 -0
  254. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/gempackagetask.rb +4 -0
  255. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/invocation_chain.rb +56 -0
  256. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/invocation_exception_mixin.rb +16 -0
  257. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/late_time.rb +17 -0
  258. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/linked_list.rb +103 -0
  259. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/loaders/makefile.rb +53 -0
  260. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/multi_task.rb +13 -0
  261. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/name_space.rb +38 -0
  262. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/packagetask.rb +199 -0
  263. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/pathmap.rb +3 -0
  264. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/phony.rb +15 -0
  265. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/private_reader.rb +20 -0
  266. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/promise.rb +99 -0
  267. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/pseudo_status.rb +29 -0
  268. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/rake_module.rb +38 -0
  269. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/rake_test_loader.rb +22 -0
  270. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/rdoctask.rb +4 -0
  271. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/ruby182_test_unit_fix.rb +29 -0
  272. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/rule_recursion_overflow_error.rb +20 -0
  273. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/runtest.rb +27 -0
  274. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/scope.rb +42 -0
  275. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/task.rb +383 -0
  276. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/task_argument_error.rb +7 -0
  277. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/task_arguments.rb +98 -0
  278. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/task_manager.rb +307 -0
  279. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/tasklib.rb +24 -0
  280. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/testtask.rb +213 -0
  281. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/thread_history_display.rb +48 -0
  282. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/thread_pool.rb +164 -0
  283. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/trace_output.rb +22 -0
  284. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/version.rb +7 -0
  285. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/lib/rake/win32.rb +56 -0
  286. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/rakelib/publish.rake +20 -0
  287. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/rakelib/test_times.rake +25 -0
  288. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/file_creation.rb +34 -0
  289. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/helper.rb +129 -0
  290. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/support/rakefile_definitions.rb +478 -0
  291. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/support/ruby_runner.rb +34 -0
  292. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_private_reader.rb +42 -0
  293. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake.rb +40 -0
  294. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_application.rb +643 -0
  295. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_application_options.rb +468 -0
  296. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_backtrace.rb +119 -0
  297. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_clean.rb +61 -0
  298. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_cpu_counter.rb +68 -0
  299. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_definitions.rb +84 -0
  300. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_directory_task.rb +76 -0
  301. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_dsl.rb +40 -0
  302. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_early_time.rb +31 -0
  303. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_extension.rb +59 -0
  304. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_file_creation_task.rb +56 -0
  305. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_file_list.rb +670 -0
  306. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_file_list_path_map.rb +8 -0
  307. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_file_task.rb +197 -0
  308. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_file_utils.rb +314 -0
  309. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_ftp_file.rb +74 -0
  310. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_functional.rb +482 -0
  311. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_invocation_chain.rb +64 -0
  312. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_late_time.rb +18 -0
  313. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_linked_list.rb +84 -0
  314. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_makefile_loader.rb +46 -0
  315. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_multi_task.rb +64 -0
  316. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_name_space.rb +57 -0
  317. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_package_task.rb +79 -0
  318. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_path_map.rb +168 -0
  319. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_path_map_explode.rb +34 -0
  320. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_path_map_partial.rb +18 -0
  321. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_pathname_extensions.rb +15 -0
  322. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_pseudo_status.rb +21 -0
  323. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_rake_test_loader.rb +20 -0
  324. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_reduce_compat.rb +26 -0
  325. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_require.rb +40 -0
  326. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_rules.rb +388 -0
  327. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_scope.rb +44 -0
  328. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_task.rb +393 -0
  329. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_task_argument_parsing.rb +119 -0
  330. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_task_arguments.rb +127 -0
  331. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_task_lib.rb +9 -0
  332. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_task_manager.rb +178 -0
  333. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_task_manager_argument_resolution.rb +19 -0
  334. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_task_with_arguments.rb +172 -0
  335. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_test_task.rb +146 -0
  336. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_thread_pool.rb +145 -0
  337. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_top_level_functions.rb +71 -0
  338. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_rake_win32.rb +72 -0
  339. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_thread_history_display.rb +101 -0
  340. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/rake-10.5.0/test/test_trace_output.rb +52 -0
  341. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/LICENSE.txt +19 -0
  342. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/README.md +38 -0
  343. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/Rakefile +2 -0
  344. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar.rb +18 -0
  345. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/base.rb +183 -0
  346. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/calculators/length.rb +100 -0
  347. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/calculators/running_average.rb +9 -0
  348. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components.rb +5 -0
  349. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/bar.rb +102 -0
  350. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/percentage.rb +29 -0
  351. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/rate.rb +43 -0
  352. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/time.rb +107 -0
  353. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/title.rb +13 -0
  354. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/errors/invalid_progress_error.rb +4 -0
  355. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/format.rb +3 -0
  356. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/format/formatter.rb +27 -0
  357. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/format/molecule.rb +60 -0
  358. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/format/string.rb +36 -0
  359. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/output.rb +68 -0
  360. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/outputs/non_tty.rb +47 -0
  361. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/outputs/null.rb +33 -0
  362. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/outputs/tty.rb +32 -0
  363. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/progress.rb +118 -0
  364. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/refinements.rb +1 -0
  365. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/refinements/enumerator.rb +23 -0
  366. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/throttle.rb +25 -0
  367. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/time.rb +32 -0
  368. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/timer.rb +72 -0
  369. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/version.rb +3 -0
  370. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/minitest-5.11.3.gem +0 -0
  371. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/minitest-reporters-1.2.0.gem +0 -0
  372. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/rake-10.5.0.gem +0 -0
  373. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/ruby-progressbar-1.10.0.gem +0 -0
  374. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/specifications/ansi-1.5.0.gemspec +49 -0
  375. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/specifications/builder-3.2.3.gemspec +21 -0
  376. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/specifications/minitest-5.11.3.gemspec +39 -0
  377. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/specifications/minitest-reporters-1.2.0.gemspec +49 -0
  378. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/specifications/rake-10.5.0.gemspec +43 -0
  379. data/vendor/cache/gems/lgrgic_palindrome_detector-0.1.0/vendor/cache/specifications/ruby-progressbar-1.10.0.gemspec +46 -0
  380. data/vendor/cache/specifications/lgrgic_palindrome_detector-0.1.0.gemspec +39 -0
  381. metadata +377 -1
@@ -0,0 +1,2142 @@
1
+ # encoding: UTF-8
2
+
3
+ require "pathname"
4
+ require "minitest/metametameta"
5
+
6
+ if defined? Encoding then
7
+ e = Encoding.default_external
8
+ if e != Encoding::UTF_8 then
9
+ warn ""
10
+ warn ""
11
+ warn "NOTE: External encoding #{e} is not UTF-8. Tests WILL fail."
12
+ warn " Run tests with `RUBYOPT=-Eutf-8 rake` to avoid errors."
13
+ warn ""
14
+ warn ""
15
+ end
16
+ end
17
+
18
+ module MyModule; end
19
+ class AnError < StandardError; include MyModule; end
20
+ class ImmutableString < String; def inspect; super.freeze; end; end
21
+ SomeError = Class.new Exception
22
+
23
+ class Minitest::Runnable
24
+ def whatever # faked for testing
25
+ assert true
26
+ end
27
+ end
28
+
29
+ class TestMinitestUnit < MetaMetaMetaTestCase
30
+ parallelize_me!
31
+
32
+ pwd = Pathname.new File.expand_path Dir.pwd
33
+ basedir = Pathname.new(File.expand_path "lib/minitest") + "mini"
34
+ basedir = basedir.relative_path_from(pwd).to_s
35
+ MINITEST_BASE_DIR = basedir[/\A\./] ? basedir : "./#{basedir}"
36
+ BT_MIDDLE = ["#{MINITEST_BASE_DIR}/test.rb:161:in `each'",
37
+ "#{MINITEST_BASE_DIR}/test.rb:158:in `each'",
38
+ "#{MINITEST_BASE_DIR}/test.rb:139:in `run'",
39
+ "#{MINITEST_BASE_DIR}/test.rb:106:in `run'"]
40
+
41
+ def test_filter_backtrace
42
+ # this is a semi-lame mix of relative paths.
43
+ # I cheated by making the autotest parts not have ./
44
+ bt = (["lib/autotest.rb:571:in `add_exception'",
45
+ "test/test_autotest.rb:62:in `test_add_exception'",
46
+ "#{MINITEST_BASE_DIR}/test.rb:165:in `__send__'"] +
47
+ BT_MIDDLE +
48
+ ["#{MINITEST_BASE_DIR}/test.rb:29",
49
+ "test/test_autotest.rb:422"])
50
+ bt = util_expand_bt bt
51
+
52
+ ex = ["lib/autotest.rb:571:in `add_exception'",
53
+ "test/test_autotest.rb:62:in `test_add_exception'"]
54
+ ex = util_expand_bt ex
55
+
56
+ fu = Minitest.filter_backtrace(bt)
57
+
58
+ assert_equal ex, fu
59
+ end
60
+
61
+ def test_filter_backtrace_all_unit
62
+ bt = (["#{MINITEST_BASE_DIR}/test.rb:165:in `__send__'"] +
63
+ BT_MIDDLE +
64
+ ["#{MINITEST_BASE_DIR}/test.rb:29"])
65
+ ex = bt.clone
66
+ fu = Minitest.filter_backtrace(bt)
67
+ assert_equal ex, fu
68
+ end
69
+
70
+ def test_filter_backtrace_unit_starts
71
+ bt = (["#{MINITEST_BASE_DIR}/test.rb:165:in `__send__'"] +
72
+ BT_MIDDLE +
73
+ ["#{MINITEST_BASE_DIR}/mini/test.rb:29",
74
+ "-e:1"])
75
+
76
+ bt = util_expand_bt bt
77
+
78
+ ex = ["-e:1"]
79
+ fu = Minitest.filter_backtrace bt
80
+ assert_equal ex, fu
81
+ end
82
+
83
+ # def test_default_runner_is_minitest_unit
84
+ # assert_instance_of Minitest::Unit, Minitest::Unit.runner
85
+ # end
86
+
87
+ def test_infectious_binary_encoding
88
+ @tu = Class.new FakeNamedTest do
89
+ def test_this_is_not_ascii_assertion
90
+ assert_equal "ЁЁЁ", "ёёё"
91
+ end
92
+
93
+ def test_this_is_non_ascii_failure_message
94
+ fail 'ЁЁЁ'.force_encoding('ASCII-8BIT')
95
+ end
96
+ end
97
+
98
+ expected = clean <<-EOM
99
+ EF
100
+
101
+ Finished in 0.00
102
+
103
+ 1) Error:
104
+ FakeNamedTestXX#test_this_is_non_ascii_failure_message:
105
+ RuntimeError: ЁЁЁ
106
+ FILE:LINE:in `test_this_is_non_ascii_failure_message'
107
+
108
+ 2) Failure:
109
+ FakeNamedTestXX#test_this_is_not_ascii_assertion [FILE:LINE]:
110
+ Expected: \"ЁЁЁ\"
111
+ Actual: \"ёёё\"
112
+
113
+ 2 runs, 1 assertions, 1 failures, 1 errors, 0 skips
114
+ EOM
115
+
116
+ assert_report expected
117
+ end
118
+
119
+ def test_passed_eh_teardown_good
120
+ test_class = Class.new FakeNamedTest do
121
+ def teardown; assert true; end
122
+ def test_omg; assert true; end
123
+ end
124
+
125
+ test = test_class.new :test_omg
126
+ test.run
127
+
128
+ refute_predicate test, :error?
129
+ assert_predicate test, :passed?
130
+ refute_predicate test, :skipped?
131
+ end
132
+
133
+ def test_passed_eh_teardown_skipped
134
+ test_class = Class.new FakeNamedTest do
135
+ def teardown; assert true; end
136
+ def test_omg; skip "bork"; end
137
+ end
138
+
139
+ test = test_class.new :test_omg
140
+ test.run
141
+
142
+ refute_predicate test, :error?
143
+ refute_predicate test, :passed?
144
+ assert_predicate test, :skipped?
145
+ end
146
+
147
+ def test_passed_eh_teardown_flunked
148
+ test_class = Class.new FakeNamedTest do
149
+ def teardown; flunk; end
150
+ def test_omg; assert true; end
151
+ end
152
+
153
+ test = test_class.new :test_omg
154
+ test.run
155
+
156
+ refute_predicate test, :error?
157
+ refute_predicate test, :passed?
158
+ refute_predicate test, :skipped?
159
+ end
160
+
161
+ def util_expand_bt bt
162
+ if RUBY_VERSION >= "1.9.0" then
163
+ bt.map { |f| (f =~ /^\./) ? File.expand_path(f) : f }
164
+ else
165
+ bt
166
+ end
167
+ end
168
+ end
169
+
170
+ class TestMinitestUnitInherited < MetaMetaMetaTestCase
171
+ def with_overridden_include
172
+ Class.class_eval do
173
+ def inherited_with_hacks _klass
174
+ throw :inherited_hook
175
+ end
176
+
177
+ alias inherited_without_hacks inherited
178
+ alias inherited inherited_with_hacks
179
+ alias IGNORE_ME! inherited # 1.8 bug. god I love venture bros
180
+ end
181
+
182
+ yield
183
+ ensure
184
+ Class.class_eval do
185
+ alias inherited inherited_without_hacks
186
+
187
+ undef_method :inherited_with_hacks
188
+ undef_method :inherited_without_hacks
189
+ end
190
+
191
+ refute_respond_to Class, :inherited_with_hacks
192
+ refute_respond_to Class, :inherited_without_hacks
193
+ end
194
+
195
+ def test_inherited_hook_plays_nice_with_others
196
+ with_overridden_include do
197
+ assert_throws :inherited_hook do
198
+ Class.new FakeNamedTest
199
+ end
200
+ end
201
+ end
202
+ end
203
+
204
+ class TestMinitestRunner < MetaMetaMetaTestCase
205
+ # do not parallelize this suite... it just can't handle it.
206
+
207
+ def test_class_runnables
208
+ @assertion_count = 0
209
+
210
+ tc = Class.new(Minitest::Test)
211
+
212
+ assert_equal 1, Minitest::Test.runnables.size
213
+ assert_equal [tc], Minitest::Test.runnables
214
+ end
215
+
216
+ def test_run_test
217
+ @tu =
218
+ Class.new FakeNamedTest do
219
+ attr_reader :foo
220
+
221
+ def run
222
+ @foo = "hi mom!"
223
+ r = super
224
+ @foo = "okay"
225
+
226
+ r
227
+ end
228
+
229
+ def test_something
230
+ assert_equal "hi mom!", foo
231
+ end
232
+ end
233
+
234
+ expected = clean <<-EOM
235
+ .
236
+
237
+ Finished in 0.00
238
+
239
+ 1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
240
+ EOM
241
+
242
+ assert_report expected
243
+ end
244
+
245
+ def test_run_error
246
+ @tu =
247
+ Class.new FakeNamedTest do
248
+ def test_something
249
+ assert true
250
+ end
251
+
252
+ def test_error
253
+ raise "unhandled exception"
254
+ end
255
+ end
256
+
257
+ expected = clean <<-EOM
258
+ E.
259
+
260
+ Finished in 0.00
261
+
262
+ 1) Error:
263
+ FakeNamedTestXX#test_error:
264
+ RuntimeError: unhandled exception
265
+ FILE:LINE:in \`test_error\'
266
+
267
+ 2 runs, 1 assertions, 0 failures, 1 errors, 0 skips
268
+ EOM
269
+
270
+ assert_report expected
271
+ end
272
+
273
+ def test_run_error_teardown
274
+ @tu =
275
+ Class.new FakeNamedTest do
276
+ def test_something
277
+ assert true
278
+ end
279
+
280
+ def teardown
281
+ raise "unhandled exception"
282
+ end
283
+ end
284
+
285
+ expected = clean <<-EOM
286
+ E
287
+
288
+ Finished in 0.00
289
+
290
+ 1) Error:
291
+ FakeNamedTestXX#test_something:
292
+ RuntimeError: unhandled exception
293
+ FILE:LINE:in \`teardown\'
294
+
295
+ 1 runs, 1 assertions, 0 failures, 1 errors, 0 skips
296
+ EOM
297
+
298
+ assert_report expected
299
+ end
300
+
301
+ def test_run_failing
302
+ setup_basic_tu
303
+
304
+ expected = clean <<-EOM
305
+ F.
306
+
307
+ Finished in 0.00
308
+
309
+ 1) Failure:
310
+ FakeNamedTestXX#test_failure [FILE:LINE]:
311
+ Expected false to be truthy.
312
+
313
+ 2 runs, 2 assertions, 1 failures, 0 errors, 0 skips
314
+ EOM
315
+
316
+ assert_report expected
317
+ end
318
+
319
+ def setup_basic_tu
320
+ @tu =
321
+ Class.new FakeNamedTest do
322
+ def test_something
323
+ assert true
324
+ end
325
+
326
+ def test_failure
327
+ assert false
328
+ end
329
+ end
330
+ end
331
+
332
+ def test_run_failing_filtered
333
+ setup_basic_tu
334
+
335
+ expected = clean <<-EOM
336
+ .
337
+
338
+ Finished in 0.00
339
+
340
+ 1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
341
+ EOM
342
+
343
+ assert_report expected, %w[--name /some|thing/ --seed 42]
344
+ end
345
+
346
+ def assert_filtering filter, name, expected, a = false
347
+ args = %W[--#{filter} #{name} --seed 42]
348
+
349
+ alpha = Class.new FakeNamedTest do
350
+ define_method :test_something do
351
+ assert a
352
+ end
353
+ end
354
+ Object.const_set(:Alpha, alpha)
355
+
356
+ beta = Class.new FakeNamedTest do
357
+ define_method :test_something do
358
+ assert true
359
+ end
360
+ end
361
+ Object.const_set(:Beta, beta)
362
+
363
+ @tus = [alpha, beta]
364
+
365
+ assert_report expected, args
366
+ ensure
367
+ Object.send :remove_const, :Alpha
368
+ Object.send :remove_const, :Beta
369
+ end
370
+
371
+ def test_run_filtered_including_suite_name
372
+ expected = clean <<-EOM
373
+ .
374
+
375
+ Finished in 0.00
376
+
377
+ 1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
378
+ EOM
379
+
380
+ assert_filtering "name", "/Beta#test_something/", expected
381
+ end
382
+
383
+ def test_run_filtered_including_suite_name_string
384
+ expected = clean <<-EOM
385
+ .
386
+
387
+ Finished in 0.00
388
+
389
+ 1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
390
+ EOM
391
+
392
+ assert_filtering "name", "Beta#test_something", expected
393
+ end
394
+
395
+ def test_run_filtered_string_method_only
396
+ expected = clean <<-EOM
397
+ ..
398
+
399
+ Finished in 0.00
400
+
401
+ 2 runs, 2 assertions, 0 failures, 0 errors, 0 skips
402
+ EOM
403
+
404
+ assert_filtering "name", "test_something", expected, :pass
405
+ end
406
+
407
+ def test_run_failing_excluded
408
+ setup_basic_tu
409
+
410
+ expected = clean <<-EOM
411
+ .
412
+
413
+ Finished in 0.00
414
+
415
+ 1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
416
+ EOM
417
+
418
+ assert_report expected, %w[--exclude /failure/ --seed 42]
419
+ end
420
+
421
+ def test_run_filtered_excluding_suite_name
422
+ expected = clean <<-EOM
423
+ .
424
+
425
+ Finished in 0.00
426
+
427
+ 1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
428
+ EOM
429
+
430
+ assert_filtering "exclude", "/Alpha#test_something/", expected
431
+ end
432
+
433
+ def test_run_filtered_excluding_suite_name_string
434
+ expected = clean <<-EOM
435
+ .
436
+
437
+ Finished in 0.00
438
+
439
+ 1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
440
+ EOM
441
+
442
+ assert_filtering "exclude", "Alpha#test_something", expected
443
+ end
444
+
445
+ def test_run_filtered_excluding_string_method_only
446
+ expected = clean <<-EOM
447
+
448
+
449
+ Finished in 0.00
450
+
451
+ 0 runs, 0 assertions, 0 failures, 0 errors, 0 skips
452
+ EOM
453
+
454
+ assert_filtering "exclude", "test_something", expected, :pass
455
+ end
456
+
457
+ def test_run_passing
458
+ @tu =
459
+ Class.new FakeNamedTest do
460
+ def test_something
461
+ assert true
462
+ end
463
+ end
464
+
465
+ expected = clean <<-EOM
466
+ .
467
+
468
+ Finished in 0.00
469
+
470
+ 1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
471
+ EOM
472
+
473
+ assert_report expected
474
+ end
475
+
476
+ def test_run_skip
477
+ @tu =
478
+ Class.new FakeNamedTest do
479
+ def test_something
480
+ assert true
481
+ end
482
+
483
+ def test_skip
484
+ skip "not yet"
485
+ end
486
+ end
487
+
488
+ expected = clean <<-EOM
489
+ S.
490
+
491
+ Finished in 0.00
492
+
493
+ 2 runs, 1 assertions, 0 failures, 0 errors, 1 skips
494
+
495
+ You have skipped tests. Run with --verbose for details.
496
+ EOM
497
+
498
+ restore_env do
499
+ assert_report expected
500
+ end
501
+ end
502
+
503
+ def test_run_skip_verbose
504
+ @tu =
505
+ Class.new FakeNamedTest do
506
+ def test_something
507
+ assert true
508
+ end
509
+
510
+ def test_skip
511
+ skip "not yet"
512
+ end
513
+ end
514
+
515
+ expected = clean <<-EOM
516
+ FakeNamedTestXX#test_skip = 0.00 s = S
517
+ FakeNamedTestXX#test_something = 0.00 s = .
518
+
519
+ Finished in 0.00
520
+
521
+ 1) Skipped:
522
+ FakeNamedTestXX#test_skip [FILE:LINE]:
523
+ not yet
524
+
525
+ 2 runs, 1 assertions, 0 failures, 0 errors, 1 skips
526
+ EOM
527
+
528
+ assert_report expected, %w[--seed 42 --verbose]
529
+ end
530
+
531
+ def test_run_with_other_runner
532
+ @tu =
533
+ Class.new FakeNamedTest do
534
+ def self.run reporter, options = {}
535
+ @reporter = reporter
536
+ before_my_suite
537
+ super
538
+ end
539
+
540
+ def self.name; "wacky!" end
541
+
542
+ def self.before_my_suite
543
+ @reporter.io.puts "Running #{self.name} tests"
544
+ @@foo = 1
545
+ end
546
+
547
+ def test_something
548
+ assert_equal 1, @@foo
549
+ end
550
+
551
+ def test_something_else
552
+ assert_equal 1, @@foo
553
+ end
554
+ end
555
+
556
+ expected = clean <<-EOM
557
+ Running wacky! tests
558
+ ..
559
+
560
+ Finished in 0.00
561
+
562
+ 2 runs, 2 assertions, 0 failures, 0 errors, 0 skips
563
+ EOM
564
+
565
+ assert_report expected
566
+ end
567
+
568
+ require "monitor"
569
+
570
+ class Latch
571
+ def initialize count = 1
572
+ @count = count
573
+ @lock = Monitor.new
574
+ @cv = @lock.new_cond
575
+ end
576
+
577
+ def release
578
+ @lock.synchronize do
579
+ @count -= 1 if @count > 0
580
+ @cv.broadcast if @count == 0
581
+ end
582
+ end
583
+
584
+ def await
585
+ @lock.synchronize { @cv.wait_while { @count > 0 } }
586
+ end
587
+ end
588
+
589
+ def test_run_parallel
590
+ skip "I don't have ParallelEach debugged yet" if maglev?
591
+
592
+ test_count = 2
593
+ test_latch = Latch.new test_count
594
+ wait_latch = Latch.new test_count
595
+ main_latch = Latch.new
596
+
597
+ thread = Thread.new {
598
+ Thread.current.abort_on_exception = true
599
+
600
+ # This latch waits until both test latches have been released. Both
601
+ # latches can't be released unless done in separate threads because
602
+ # `main_latch` keeps the test method from finishing.
603
+ test_latch.await
604
+ main_latch.release
605
+ }
606
+
607
+ @tu =
608
+ Class.new FakeNamedTest do
609
+ parallelize_me!
610
+
611
+ test_count.times do |i|
612
+ define_method :"test_wait_on_main_thread_#{i}" do
613
+ test_latch.release
614
+
615
+ # This latch blocks until the "main thread" releases it. The main
616
+ # thread can't release this latch until both test latches have
617
+ # been released. This forces the latches to be released in separate
618
+ # threads.
619
+ main_latch.await
620
+ assert true
621
+ end
622
+ end
623
+ end
624
+
625
+ expected = clean <<-EOM
626
+ ..
627
+
628
+ Finished in 0.00
629
+
630
+ 2 runs, 2 assertions, 0 failures, 0 errors, 0 skips
631
+ EOM
632
+
633
+ assert_report(expected) do |reporter|
634
+ reporter.extend(Module.new {
635
+ define_method("record") do |result|
636
+ super(result)
637
+ wait_latch.release
638
+ end
639
+
640
+ define_method("report") do
641
+ wait_latch.await
642
+ super()
643
+ end
644
+ })
645
+ end
646
+ assert thread.join
647
+ end
648
+ end
649
+
650
+ class TestMinitestUnitOrder < MetaMetaMetaTestCase
651
+ # do not parallelize this suite... it just can't handle it.
652
+
653
+ def test_before_setup
654
+ call_order = []
655
+ @tu =
656
+ Class.new FakeNamedTest do
657
+ define_method :setup do
658
+ super()
659
+ call_order << :setup
660
+ end
661
+
662
+ define_method :before_setup do
663
+ call_order << :before_setup
664
+ end
665
+
666
+ def test_omg; assert true; end
667
+ end
668
+
669
+ run_tu_with_fresh_reporter
670
+
671
+ expected = [:before_setup, :setup]
672
+ assert_equal expected, call_order
673
+ end
674
+
675
+ def test_after_teardown
676
+ call_order = []
677
+ @tu =
678
+ Class.new FakeNamedTest do
679
+ define_method :teardown do
680
+ super()
681
+ call_order << :teardown
682
+ end
683
+
684
+ define_method :after_teardown do
685
+ call_order << :after_teardown
686
+ end
687
+
688
+ def test_omg; assert true; end
689
+ end
690
+
691
+ run_tu_with_fresh_reporter
692
+
693
+ expected = [:teardown, :after_teardown]
694
+ assert_equal expected, call_order
695
+ end
696
+
697
+ def test_all_teardowns_are_guaranteed_to_run
698
+ call_order = []
699
+ @tu =
700
+ Class.new FakeNamedTest do
701
+ define_method :after_teardown do
702
+ super()
703
+ call_order << :after_teardown
704
+ raise
705
+ end
706
+
707
+ define_method :teardown do
708
+ super()
709
+ call_order << :teardown
710
+ raise
711
+ end
712
+
713
+ define_method :before_teardown do
714
+ super()
715
+ call_order << :before_teardown
716
+ raise
717
+ end
718
+
719
+ def test_omg; assert true; end
720
+ end
721
+
722
+ run_tu_with_fresh_reporter
723
+
724
+ expected = [:before_teardown, :teardown, :after_teardown]
725
+ assert_equal expected, call_order
726
+ end
727
+
728
+ def test_setup_and_teardown_survive_inheritance
729
+ call_order = []
730
+
731
+ @tu = Class.new FakeNamedTest do
732
+ define_method :setup do
733
+ call_order << :setup_method
734
+ end
735
+
736
+ define_method :teardown do
737
+ call_order << :teardown_method
738
+ end
739
+
740
+ define_method :test_something do
741
+ call_order << :test
742
+ end
743
+ end
744
+
745
+ run_tu_with_fresh_reporter
746
+
747
+ @tu = Class.new @tu
748
+ run_tu_with_fresh_reporter
749
+
750
+ # Once for the parent class, once for the child
751
+ expected = [:setup_method, :test, :teardown_method] * 2
752
+
753
+ assert_equal expected, call_order
754
+ end
755
+ end
756
+
757
+ class TestMinitestRunnable < Minitest::Test
758
+ def setup_marshal klass
759
+ tc = klass.new "whatever"
760
+ tc.assertions = 42
761
+ tc.failures << "a failure"
762
+
763
+ yield tc if block_given?
764
+
765
+ def tc.setup
766
+ @blah = "blah"
767
+ end
768
+ tc.setup
769
+
770
+ @tc = Minitest::Result.from tc
771
+ end
772
+
773
+ def assert_marshal expected_ivars
774
+ new_tc = Marshal.load Marshal.dump @tc
775
+
776
+ ivars = new_tc.instance_variables.map(&:to_s).sort
777
+ assert_equal expected_ivars, ivars
778
+ assert_equal "whatever", new_tc.name
779
+ assert_equal 42, new_tc.assertions
780
+ assert_equal ["a failure"], new_tc.failures
781
+
782
+ yield new_tc if block_given?
783
+ end
784
+
785
+ def test_marshal
786
+ setup_marshal Minitest::Runnable
787
+
788
+ assert_marshal %w[@NAME @assertions @failures @klass @source_location @time]
789
+ end
790
+
791
+ def test_spec_marshal
792
+ klass = describe("whatever") { it("passes") { assert true } }
793
+ rm = klass.runnable_methods.first
794
+
795
+ # Run the test
796
+ @tc = klass.new(rm).run
797
+
798
+ assert_kind_of Minitest::Result, @tc
799
+
800
+ # Pass it over the wire
801
+ over_the_wire = Marshal.load Marshal.dump @tc
802
+
803
+ assert_equal @tc.time, over_the_wire.time
804
+ assert_equal @tc.name, over_the_wire.name
805
+ assert_equal @tc.assertions, over_the_wire.assertions
806
+ assert_equal @tc.failures, over_the_wire.failures
807
+ assert_equal @tc.klass, over_the_wire.klass
808
+ end
809
+ end
810
+
811
+ class TestMinitestTest < TestMinitestRunnable
812
+ def test_dup
813
+ setup_marshal Minitest::Test do |tc|
814
+ tc.time = 3.14
815
+ end
816
+
817
+ assert_marshal %w[@NAME @assertions @failures @klass @source_location @time] do |new_tc|
818
+ assert_in_epsilon 3.14, new_tc.time
819
+ end
820
+ end
821
+ end
822
+
823
+ class TestMinitestUnitTestCase < Minitest::Test
824
+ # do not call parallelize_me! - teardown accesses @tc._assertions
825
+ # which is not threadsafe. Nearly every method in here is an
826
+ # assertion test so it isn't worth splitting it out further.
827
+
828
+ RUBY18 = !defined? Encoding
829
+
830
+ def setup
831
+ super
832
+
833
+ Minitest::Test.reset
834
+
835
+ @tc = Minitest::Test.new "fake tc"
836
+ @zomg = "zomg ponies!"
837
+ @assertion_count = 1
838
+ end
839
+
840
+ def teardown
841
+ assert_equal(@assertion_count, @tc.assertions,
842
+ "expected #{@assertion_count} assertions to be fired during the test, not #{@tc.assertions}") if @tc.passed?
843
+ end
844
+
845
+ def non_verbose
846
+ orig_verbose = $VERBOSE
847
+ $VERBOSE = false
848
+
849
+ yield
850
+ ensure
851
+ $VERBOSE = orig_verbose
852
+ end
853
+
854
+ def test_assert
855
+ @assertion_count = 2
856
+
857
+ @tc.assert_equal true, @tc.assert(true), "returns true on success"
858
+ end
859
+
860
+ def test_assert__triggered
861
+ assert_triggered "Expected false to be truthy." do
862
+ @tc.assert false
863
+ end
864
+ end
865
+
866
+ def test_assert__triggered_message
867
+ assert_triggered @zomg do
868
+ @tc.assert false, @zomg
869
+ end
870
+ end
871
+
872
+ def test_assert_empty
873
+ @assertion_count = 2
874
+
875
+ @tc.assert_empty []
876
+ end
877
+
878
+ def test_assert_empty_triggered
879
+ @assertion_count = 2
880
+
881
+ assert_triggered "Expected [1] to be empty." do
882
+ @tc.assert_empty [1]
883
+ end
884
+ end
885
+
886
+ def test_assert_equal
887
+ @tc.assert_equal 1, 1
888
+ end
889
+
890
+ def test_assert_equal_different_collection_array_hex_invisible
891
+ object1 = Object.new
892
+ object2 = Object.new
893
+ msg = "No visible difference in the Array#inspect output.
894
+ You should look at the implementation of #== on Array or its members.
895
+ [#<Object:0xXXXXXX>]".gsub(/^ +/, "")
896
+ assert_triggered msg do
897
+ @tc.assert_equal [object1], [object2]
898
+ end
899
+ end
900
+
901
+ def test_assert_equal_different_collection_hash_hex_invisible
902
+ h1, h2 = {}, {}
903
+ h1[1] = Object.new
904
+ h2[1] = Object.new
905
+ msg = "No visible difference in the Hash#inspect output.
906
+ You should look at the implementation of #== on Hash or its members.
907
+ {1=>#<Object:0xXXXXXX>}".gsub(/^ +/, "")
908
+
909
+ assert_triggered msg do
910
+ @tc.assert_equal h1, h2
911
+ end
912
+ end
913
+
914
+ def test_assert_equal_string_encodings
915
+ msg = <<-EOM.gsub(/^ {10}/, "")
916
+ --- expected
917
+ +++ actual
918
+ @@ -1 +1,2 @@
919
+ +# encoding: ASCII-8BIT
920
+ "bad-utf8-\\xF1.txt"
921
+ EOM
922
+
923
+ assert_triggered msg do
924
+ x = "bad-utf8-\xF1.txt"
925
+ y = x.dup.force_encoding "binary" # TODO: switch to .b when 1.9 dropped
926
+ @tc.assert_equal x, y
927
+ end
928
+ end unless RUBY18
929
+
930
+ def test_assert_equal_string_encodings_both_different
931
+ msg = <<-EOM.gsub(/^ {10}/, "")
932
+ --- expected
933
+ +++ actual
934
+ @@ -1,2 +1,2 @@
935
+ -# encoding: US-ASCII
936
+ +# encoding: ASCII-8BIT
937
+ "bad-utf8-\\xF1.txt"
938
+ EOM
939
+
940
+ assert_triggered msg do
941
+ x = "bad-utf8-\xF1.txt".force_encoding "ASCII"
942
+ y = x.dup.force_encoding "binary" # TODO: switch to .b when 1.9 dropped
943
+ @tc.assert_equal x, y
944
+ end
945
+ end unless RUBY18
946
+
947
+ def test_assert_equal_different_diff_deactivated
948
+ skip "https://github.com/MagLev/maglev/issues/209" if maglev?
949
+
950
+ without_diff do
951
+ assert_triggered util_msg("haha" * 10, "blah" * 10) do
952
+ o1 = "haha" * 10
953
+ o2 = "blah" * 10
954
+
955
+ @tc.assert_equal o1, o2
956
+ end
957
+ end
958
+ end
959
+
960
+ def test_assert_equal_different_hex
961
+ c = Class.new do
962
+ def initialize s; @name = s; end
963
+ end
964
+
965
+ o1 = c.new "a"
966
+ o2 = c.new "b"
967
+ msg = "--- expected
968
+ +++ actual
969
+ @@ -1 +1 @@
970
+ -#<#<Class:0xXXXXXX>:0xXXXXXX @name=\"a\">
971
+ +#<#<Class:0xXXXXXX>:0xXXXXXX @name=\"b\">
972
+ ".gsub(/^ +/, "")
973
+
974
+ assert_triggered msg do
975
+ @tc.assert_equal o1, o2
976
+ end
977
+ end
978
+
979
+ def test_assert_equal_different_hex_invisible
980
+ o1 = Object.new
981
+ o2 = Object.new
982
+
983
+ msg = "No visible difference in the Object#inspect output.
984
+ You should look at the implementation of #== on Object or its members.
985
+ #<Object:0xXXXXXX>".gsub(/^ +/, "")
986
+
987
+ assert_triggered msg do
988
+ @tc.assert_equal o1, o2
989
+ end
990
+ end
991
+
992
+ def test_assert_equal_different_long
993
+ msg = "--- expected
994
+ +++ actual
995
+ @@ -1 +1 @@
996
+ -\"hahahahahahahahahahahahahahahahahahahaha\"
997
+ +\"blahblahblahblahblahblahblahblahblahblah\"
998
+ ".gsub(/^ +/, "")
999
+
1000
+ assert_triggered msg do
1001
+ o1 = "haha" * 10
1002
+ o2 = "blah" * 10
1003
+
1004
+ @tc.assert_equal o1, o2
1005
+ end
1006
+ end
1007
+
1008
+ def test_assert_equal_different_long_invisible
1009
+ msg = "No visible difference in the String#inspect output.
1010
+ You should look at the implementation of #== on String or its members.
1011
+ \"blahblahblahblahblahblahblahblahblahblah\"".gsub(/^ +/, "")
1012
+
1013
+ assert_triggered msg do
1014
+ o1 = "blah" * 10
1015
+ o2 = "blah" * 10
1016
+ def o1.== _
1017
+ false
1018
+ end
1019
+ @tc.assert_equal o1, o2
1020
+ end
1021
+ end
1022
+
1023
+ def test_assert_equal_different_long_msg
1024
+ msg = "message.
1025
+ --- expected
1026
+ +++ actual
1027
+ @@ -1 +1 @@
1028
+ -\"hahahahahahahahahahahahahahahahahahahaha\"
1029
+ +\"blahblahblahblahblahblahblahblahblahblah\"
1030
+ ".gsub(/^ +/, "")
1031
+
1032
+ assert_triggered msg do
1033
+ o1 = "haha" * 10
1034
+ o2 = "blah" * 10
1035
+ @tc.assert_equal o1, o2, "message"
1036
+ end
1037
+ end
1038
+
1039
+ def test_assert_equal_different_short
1040
+ assert_triggered util_msg(1, 2) do
1041
+ @tc.assert_equal 1, 2
1042
+ end
1043
+ end
1044
+
1045
+ def test_assert_equal_different_short_msg
1046
+ assert_triggered util_msg(1, 2, "message") do
1047
+ @tc.assert_equal 1, 2, "message"
1048
+ end
1049
+ end
1050
+
1051
+ def test_assert_equal_different_short_multiline
1052
+ msg = "--- expected\n+++ actual\n@@ -1,2 +1,2 @@\n \"a\n-b\"\n+c\"\n"
1053
+ assert_triggered msg do
1054
+ @tc.assert_equal "a\nb", "a\nc"
1055
+ end
1056
+ end
1057
+
1058
+ def test_assert_equal_does_not_allow_lhs_nil
1059
+ if Minitest::VERSION =~ /^6/ then
1060
+ warn "Time to strip the MT5 test"
1061
+
1062
+ @assertion_count += 1
1063
+ assert_triggered(/Use assert_nil if expecting nil/) do
1064
+ @tc.assert_equal nil, nil
1065
+ end
1066
+ else
1067
+ err_re = /Use assert_nil if expecting nil from .*test_minitest_test.rb/
1068
+ err_re = "" if $-w.nil?
1069
+
1070
+ assert_output "", err_re do
1071
+ @tc.assert_equal nil, nil
1072
+ end
1073
+ end
1074
+ end
1075
+
1076
+ def test_assert_equal_does_not_allow_lhs_nil_triggered
1077
+ assert_triggered "Expected: nil\n Actual: false" do
1078
+ @tc.assert_equal nil, false
1079
+ end
1080
+ end
1081
+
1082
+ def test_assert_in_delta
1083
+ @tc.assert_in_delta 0.0, 1.0 / 1000, 0.1
1084
+ end
1085
+
1086
+ def test_delta_consistency
1087
+ @assertion_count = 2
1088
+
1089
+ @tc.assert_in_delta 0, 1, 1
1090
+
1091
+ assert_triggered "Expected |0 - 1| (1) to not be <= 1." do
1092
+ @tc.refute_in_delta 0, 1, 1
1093
+ end
1094
+ end
1095
+
1096
+ def test_assert_in_delta_triggered
1097
+ x = maglev? ? "9.999999xxxe-07" : "1.0e-06"
1098
+ assert_triggered "Expected |0.0 - 0.001| (0.001) to be <= #{x}." do
1099
+ @tc.assert_in_delta 0.0, 1.0 / 1000, 0.000001
1100
+ end
1101
+ end
1102
+
1103
+ def test_assert_in_epsilon
1104
+ @assertion_count = 10
1105
+
1106
+ @tc.assert_in_epsilon 10_000, 9991
1107
+ @tc.assert_in_epsilon 9991, 10_000
1108
+ @tc.assert_in_epsilon 1.0, 1.001
1109
+ @tc.assert_in_epsilon 1.001, 1.0
1110
+
1111
+ @tc.assert_in_epsilon 10_000, 9999.1, 0.0001
1112
+ @tc.assert_in_epsilon 9999.1, 10_000, 0.0001
1113
+ @tc.assert_in_epsilon 1.0, 1.0001, 0.0001
1114
+ @tc.assert_in_epsilon 1.0001, 1.0, 0.0001
1115
+
1116
+ @tc.assert_in_epsilon(-1, -1)
1117
+ @tc.assert_in_epsilon(-10_000, -9991)
1118
+ end
1119
+
1120
+ def test_epsilon_consistency
1121
+ @assertion_count = 2
1122
+
1123
+ @tc.assert_in_epsilon 1.0, 1.001
1124
+
1125
+ msg = "Expected |1.0 - 1.001| (0.000999xxx) to not be <= 0.001."
1126
+ assert_triggered msg do
1127
+ @tc.refute_in_epsilon 1.0, 1.001
1128
+ end
1129
+ end
1130
+
1131
+ def test_assert_in_epsilon_triggered
1132
+ assert_triggered "Expected |10000 - 9990| (10) to be <= 9.99." do
1133
+ @tc.assert_in_epsilon 10_000, 9990
1134
+ end
1135
+ end
1136
+
1137
+ def test_assert_in_epsilon_triggered_negative_case
1138
+ x = (RUBY18 and not maglev?) ? "0.1" : "0.100000xxx"
1139
+ y = maglev? ? "0.100000xxx" : "0.1"
1140
+ assert_triggered "Expected |-1.1 - -1| (#{x}) to be <= #{y}." do
1141
+ @tc.assert_in_epsilon(-1.1, -1, 0.1)
1142
+ end
1143
+ end
1144
+
1145
+ def test_assert_includes
1146
+ @assertion_count = 2
1147
+
1148
+ @tc.assert_includes [true], true
1149
+ end
1150
+
1151
+ def test_assert_includes_triggered
1152
+ @assertion_count = 3
1153
+
1154
+ e = @tc.assert_raises Minitest::Assertion do
1155
+ @tc.assert_includes [true], false
1156
+ end
1157
+
1158
+ expected = "Expected [true] to include false."
1159
+ assert_equal expected, e.message
1160
+ end
1161
+
1162
+ def test_assert_instance_of
1163
+ @tc.assert_instance_of String, "blah"
1164
+ end
1165
+
1166
+ def test_assert_instance_of_triggered
1167
+ assert_triggered 'Expected "blah" to be an instance of Array, not String.' do
1168
+ @tc.assert_instance_of Array, "blah"
1169
+ end
1170
+ end
1171
+
1172
+ def test_assert_kind_of
1173
+ @tc.assert_kind_of String, "blah"
1174
+ end
1175
+
1176
+ def test_assert_kind_of_triggered
1177
+ assert_triggered 'Expected "blah" to be a kind of Array, not String.' do
1178
+ @tc.assert_kind_of Array, "blah"
1179
+ end
1180
+ end
1181
+
1182
+ def test_assert_match
1183
+ @assertion_count = 2
1184
+ @tc.assert_match(/\w+/, "blah blah blah")
1185
+ end
1186
+
1187
+ def test_assert_match_matcher_object
1188
+ @assertion_count = 2
1189
+
1190
+ pattern = Object.new
1191
+ def pattern.=~ _; true end
1192
+
1193
+ @tc.assert_match pattern, 5
1194
+ end
1195
+
1196
+ def test_assert_match_matchee_to_str
1197
+ @assertion_count = 2
1198
+
1199
+ obj = Object.new
1200
+ def obj.to_str; "blah" end
1201
+
1202
+ @tc.assert_match "blah", obj
1203
+ end
1204
+
1205
+ def test_assert_match_object_triggered
1206
+ @assertion_count = 2
1207
+
1208
+ pattern = Object.new
1209
+ def pattern.=~ _; false end
1210
+ def pattern.inspect; "[Object]" end
1211
+
1212
+ assert_triggered "Expected [Object] to match 5." do
1213
+ @tc.assert_match pattern, 5
1214
+ end
1215
+ end
1216
+
1217
+ def test_assert_match_triggered
1218
+ @assertion_count = 2
1219
+ assert_triggered 'Expected /\d+/ to match "blah blah blah".' do
1220
+ @tc.assert_match(/\d+/, "blah blah blah")
1221
+ end
1222
+ end
1223
+
1224
+ def test_assert_nil
1225
+ @tc.assert_nil nil
1226
+ end
1227
+
1228
+ def test_assert_nil_triggered
1229
+ assert_triggered "Expected 42 to be nil." do
1230
+ @tc.assert_nil 42
1231
+ end
1232
+ end
1233
+
1234
+ def test_assert_operator
1235
+ @tc.assert_operator 2, :>, 1
1236
+ end
1237
+
1238
+ def test_assert_operator_bad_object
1239
+ bad = Object.new
1240
+ def bad.== _; true end
1241
+
1242
+ @tc.assert_operator bad, :equal?, bad
1243
+ end
1244
+
1245
+ def test_assert_operator_triggered
1246
+ assert_triggered "Expected 2 to be < 1." do
1247
+ @tc.assert_operator 2, :<, 1
1248
+ end
1249
+ end
1250
+
1251
+ def test_assert_output_both
1252
+ @assertion_count = 2
1253
+
1254
+ @tc.assert_output "yay", "blah" do
1255
+ print "yay"
1256
+ $stderr.print "blah"
1257
+ end
1258
+ end
1259
+
1260
+ def test_assert_output_both_regexps
1261
+ @assertion_count = 4
1262
+
1263
+ @tc.assert_output(/y.y/, /bl.h/) do
1264
+ print "yay"
1265
+ $stderr.print "blah"
1266
+ end
1267
+ end
1268
+
1269
+ def test_assert_output_err
1270
+ @tc.assert_output nil, "blah" do
1271
+ $stderr.print "blah"
1272
+ end
1273
+ end
1274
+
1275
+ def test_assert_output_neither
1276
+ @assertion_count = 0
1277
+
1278
+ @tc.assert_output do
1279
+ # do nothing
1280
+ end
1281
+ end
1282
+
1283
+ def test_assert_output_out
1284
+ @tc.assert_output "blah" do
1285
+ print "blah"
1286
+ end
1287
+ end
1288
+
1289
+ def test_assert_output_triggered_both
1290
+ assert_triggered util_msg("blah", "blah blah", "In stderr") do
1291
+ @tc.assert_output "yay", "blah" do
1292
+ print "boo"
1293
+ $stderr.print "blah blah"
1294
+ end
1295
+ end
1296
+ end
1297
+
1298
+ def test_assert_output_triggered_err
1299
+ assert_triggered util_msg("blah", "blah blah", "In stderr") do
1300
+ @tc.assert_output nil, "blah" do
1301
+ $stderr.print "blah blah"
1302
+ end
1303
+ end
1304
+ end
1305
+
1306
+ def test_assert_output_triggered_out
1307
+ assert_triggered util_msg("blah", "blah blah", "In stdout") do
1308
+ @tc.assert_output "blah" do
1309
+ print "blah blah"
1310
+ end
1311
+ end
1312
+ end
1313
+
1314
+ def test_assert_predicate
1315
+ @tc.assert_predicate "", :empty?
1316
+ end
1317
+
1318
+ def test_assert_predicate_triggered
1319
+ assert_triggered 'Expected "blah" to be empty?.' do
1320
+ @tc.assert_predicate "blah", :empty?
1321
+ end
1322
+ end
1323
+
1324
+ def test_assert_raises
1325
+ @tc.assert_raises RuntimeError do
1326
+ raise "blah"
1327
+ end
1328
+ end
1329
+
1330
+ def test_assert_raises_default
1331
+ @tc.assert_raises do
1332
+ raise StandardError, "blah"
1333
+ end
1334
+ end
1335
+
1336
+ def test_assert_raises_default_triggered
1337
+ e = assert_raises Minitest::Assertion do
1338
+ @tc.assert_raises do
1339
+ raise SomeError, "blah"
1340
+ end
1341
+ end
1342
+
1343
+ expected = clean <<-EOM.chomp
1344
+ [StandardError] exception expected, not
1345
+ Class: <SomeError>
1346
+ Message: <\"blah\">
1347
+ ---Backtrace---
1348
+ FILE:LINE:in \`test_assert_raises_default_triggered\'
1349
+ ---------------
1350
+ EOM
1351
+
1352
+ actual = e.message.gsub(/^.+:\d+/, "FILE:LINE")
1353
+ actual.gsub!(/block \(\d+ levels\) in /, "") if RUBY_VERSION >= "1.9.0"
1354
+
1355
+ assert_equal expected, actual
1356
+ end
1357
+
1358
+ def test_assert_raises_module
1359
+ @tc.assert_raises MyModule do
1360
+ raise AnError
1361
+ end
1362
+ end
1363
+
1364
+ ##
1365
+ # *sigh* This is quite an odd scenario, but it is from real (albeit
1366
+ # ugly) test code in ruby-core:
1367
+ #
1368
+ # http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=29259
1369
+
1370
+ def test_assert_raises_skip
1371
+ @assertion_count = 0
1372
+
1373
+ assert_triggered "skipped", Minitest::Skip do
1374
+ @tc.assert_raises ArgumentError do
1375
+ begin
1376
+ raise "blah"
1377
+ rescue
1378
+ skip "skipped"
1379
+ end
1380
+ end
1381
+ end
1382
+ end
1383
+
1384
+ def test_assert_raises_triggered_different
1385
+ e = assert_raises Minitest::Assertion do
1386
+ @tc.assert_raises RuntimeError do
1387
+ raise SyntaxError, "icky"
1388
+ end
1389
+ end
1390
+
1391
+ expected = clean <<-EOM.chomp
1392
+ [RuntimeError] exception expected, not
1393
+ Class: <SyntaxError>
1394
+ Message: <\"icky\">
1395
+ ---Backtrace---
1396
+ FILE:LINE:in \`test_assert_raises_triggered_different\'
1397
+ ---------------
1398
+ EOM
1399
+
1400
+ actual = e.message.gsub(/^.+:\d+/, "FILE:LINE")
1401
+ actual.gsub!(/block \(\d+ levels\) in /, "") if RUBY_VERSION >= "1.9.0"
1402
+
1403
+ assert_equal expected, actual
1404
+ end
1405
+
1406
+ def test_assert_raises_triggered_different_msg
1407
+ e = assert_raises Minitest::Assertion do
1408
+ @tc.assert_raises RuntimeError, "XXX" do
1409
+ raise SyntaxError, "icky"
1410
+ end
1411
+ end
1412
+
1413
+ expected = clean <<-EOM
1414
+ XXX.
1415
+ [RuntimeError] exception expected, not
1416
+ Class: <SyntaxError>
1417
+ Message: <\"icky\">
1418
+ ---Backtrace---
1419
+ FILE:LINE:in \`test_assert_raises_triggered_different_msg\'
1420
+ ---------------
1421
+ EOM
1422
+
1423
+ actual = e.message.gsub(/^.+:\d+/, "FILE:LINE")
1424
+ actual.gsub!(/block \(\d+ levels\) in /, "") if RUBY_VERSION >= "1.9.0"
1425
+
1426
+ assert_equal expected.chomp, actual
1427
+ end
1428
+
1429
+ def test_assert_raises_triggered_none
1430
+ e = assert_raises Minitest::Assertion do
1431
+ @tc.assert_raises Minitest::Assertion do
1432
+ # do nothing
1433
+ end
1434
+ end
1435
+
1436
+ expected = "Minitest::Assertion expected but nothing was raised."
1437
+
1438
+ assert_equal expected, e.message
1439
+ end
1440
+
1441
+ def test_assert_raises_triggered_none_msg
1442
+ e = assert_raises Minitest::Assertion do
1443
+ @tc.assert_raises Minitest::Assertion, "XXX" do
1444
+ # do nothing
1445
+ end
1446
+ end
1447
+
1448
+ expected = "XXX.\nMinitest::Assertion expected but nothing was raised."
1449
+
1450
+ assert_equal expected, e.message
1451
+ end
1452
+
1453
+ def test_assert_raises_subclass
1454
+ @tc.assert_raises StandardError do
1455
+ raise AnError
1456
+ end
1457
+ end
1458
+
1459
+ def test_assert_raises_subclass_triggered
1460
+ e = assert_raises Minitest::Assertion do
1461
+ @tc.assert_raises SomeError do
1462
+ raise AnError, "some message"
1463
+ end
1464
+ end
1465
+
1466
+ expected = clean <<-EOM
1467
+ [SomeError] exception expected, not
1468
+ Class: <AnError>
1469
+ Message: <\"some message\">
1470
+ ---Backtrace---
1471
+ FILE:LINE:in \`test_assert_raises_subclass_triggered\'
1472
+ ---------------
1473
+ EOM
1474
+
1475
+ actual = e.message.gsub(/^.+:\d+/, "FILE:LINE")
1476
+ actual.gsub!(/block \(\d+ levels\) in /, "") if RUBY_VERSION >= "1.9.0"
1477
+
1478
+ assert_equal expected.chomp, actual
1479
+ end
1480
+
1481
+ def test_assert_raises_exit
1482
+ @tc.assert_raises SystemExit do
1483
+ exit 1
1484
+ end
1485
+ end
1486
+
1487
+ def test_assert_raises_signals
1488
+ @tc.assert_raises SignalException do
1489
+ raise SignalException, :INT
1490
+ end
1491
+ end
1492
+
1493
+ def test_assert_respond_to
1494
+ @tc.assert_respond_to "blah", :empty?
1495
+ end
1496
+
1497
+ def test_assert_respond_to_triggered
1498
+ assert_triggered 'Expected "blah" (String) to respond to #rawr!.' do
1499
+ @tc.assert_respond_to "blah", :rawr!
1500
+ end
1501
+ end
1502
+
1503
+ def test_assert_same
1504
+ @assertion_count = 3
1505
+
1506
+ o = "blah"
1507
+ @tc.assert_same 1, 1
1508
+ @tc.assert_same :blah, :blah
1509
+ @tc.assert_same o, o
1510
+ end
1511
+
1512
+ def test_assert_same_triggered
1513
+ @assertion_count = 2
1514
+
1515
+ assert_triggered "Expected 2 (oid=N) to be the same as 1 (oid=N)." do
1516
+ @tc.assert_same 1, 2
1517
+ end
1518
+
1519
+ s1 = "blah"
1520
+ s2 = "blah"
1521
+
1522
+ assert_triggered 'Expected "blah" (oid=N) to be the same as "blah" (oid=N).' do
1523
+ @tc.assert_same s1, s2
1524
+ end
1525
+ end
1526
+
1527
+ def assert_deprecated name
1528
+ dep = /DEPRECATED: #{name}. From #{__FILE__}:\d+(?::.*)?/
1529
+ dep = "" if $-w.nil?
1530
+
1531
+ assert_output nil, dep do
1532
+ yield
1533
+ end
1534
+ end
1535
+
1536
+ def test_assert_send
1537
+ assert_deprecated :assert_send do
1538
+ @tc.assert_send [1, :<, 2]
1539
+ end
1540
+ end
1541
+
1542
+ def test_assert_send_bad
1543
+ assert_deprecated :assert_send do
1544
+ assert_triggered "Expected 1.>(*[2]) to return true." do
1545
+ @tc.assert_send [1, :>, 2]
1546
+ end
1547
+ end
1548
+ end
1549
+
1550
+ def test_assert_silent
1551
+ @assertion_count = 2
1552
+
1553
+ @tc.assert_silent do
1554
+ # do nothing
1555
+ end
1556
+ end
1557
+
1558
+ def test_assert_silent_triggered_err
1559
+ assert_triggered util_msg("", "blah blah", "In stderr") do
1560
+ @tc.assert_silent do
1561
+ $stderr.print "blah blah"
1562
+ end
1563
+ end
1564
+ end
1565
+
1566
+ def test_assert_silent_triggered_out
1567
+ @assertion_count = 2
1568
+
1569
+ assert_triggered util_msg("", "blah blah", "In stdout") do
1570
+ @tc.assert_silent do
1571
+ print "blah blah"
1572
+ end
1573
+ end
1574
+ end
1575
+
1576
+ def test_assert_throws
1577
+ @tc.assert_throws :blah do
1578
+ throw :blah
1579
+ end
1580
+ end
1581
+
1582
+ def test_assert_throws_name_error
1583
+ @tc.assert_raises NameError do
1584
+ @tc.assert_throws :blah do
1585
+ raise NameError
1586
+ end
1587
+ end
1588
+ end
1589
+
1590
+ def test_assert_throws_argument_exception
1591
+ @tc.assert_raises ArgumentError do
1592
+ @tc.assert_throws :blah do
1593
+ raise ArgumentError
1594
+ end
1595
+ end
1596
+ end
1597
+
1598
+ def test_assert_throws_different
1599
+ assert_triggered "Expected :blah to have been thrown, not :not_blah." do
1600
+ @tc.assert_throws :blah do
1601
+ throw :not_blah
1602
+ end
1603
+ end
1604
+ end
1605
+
1606
+ def test_assert_throws_unthrown
1607
+ assert_triggered "Expected :blah to have been thrown." do
1608
+ @tc.assert_throws :blah do
1609
+ # do nothing
1610
+ end
1611
+ end
1612
+ end
1613
+
1614
+ def test_capture_io
1615
+ @assertion_count = 0
1616
+
1617
+ non_verbose do
1618
+ out, err = capture_io do
1619
+ puts "hi"
1620
+ $stderr.puts "bye!"
1621
+ end
1622
+
1623
+ assert_equal "hi\n", out
1624
+ assert_equal "bye!\n", err
1625
+ end
1626
+ end
1627
+
1628
+ def test_capture_subprocess_io
1629
+ @assertion_count = 0
1630
+
1631
+ non_verbose do
1632
+ out, err = capture_subprocess_io do
1633
+ system("echo hi")
1634
+ system("echo bye! 1>&2")
1635
+ end
1636
+
1637
+ assert_equal "hi\n", out
1638
+ assert_equal "bye!", err.strip
1639
+ end
1640
+ end
1641
+
1642
+ def test_class_asserts_match_refutes
1643
+ @assertion_count = 0
1644
+
1645
+ methods = Minitest::Assertions.public_instance_methods
1646
+ methods.map!(&:to_s) if Symbol === methods.first
1647
+
1648
+ # These don't have corresponding refutes _on purpose_. They're
1649
+ # useless and will never be added, so don't bother.
1650
+ ignores = %w[assert_output assert_raises assert_send
1651
+ assert_silent assert_throws assert_mock]
1652
+
1653
+ # These are test/unit methods. I'm not actually sure why they're still here
1654
+ ignores += %w[assert_no_match assert_not_equal assert_not_nil
1655
+ assert_not_same assert_nothing_raised
1656
+ assert_nothing_thrown assert_raise]
1657
+
1658
+ asserts = methods.grep(/^assert/).sort - ignores
1659
+ refutes = methods.grep(/^refute/).sort - ignores
1660
+
1661
+ assert_empty refutes.map { |n| n.sub(/^refute/, "assert") } - asserts
1662
+ assert_empty asserts.map { |n| n.sub(/^assert/, "refute") } - refutes
1663
+ end
1664
+
1665
+ def test_flunk
1666
+ assert_triggered "Epic Fail!" do
1667
+ @tc.flunk
1668
+ end
1669
+ end
1670
+
1671
+ def test_flunk_message
1672
+ assert_triggered @zomg do
1673
+ @tc.flunk @zomg
1674
+ end
1675
+ end
1676
+
1677
+ def test_message
1678
+ @assertion_count = 0
1679
+
1680
+ assert_equal "blah2.", @tc.message { "blah2" }.call
1681
+ assert_equal "blah2.", @tc.message("") { "blah2" }.call
1682
+ assert_equal "blah1.\nblah2.", @tc.message(:blah1) { "blah2" }.call
1683
+ assert_equal "blah1.\nblah2.", @tc.message("blah1") { "blah2" }.call
1684
+
1685
+ message = proc { "blah1" }
1686
+ assert_equal "blah1.\nblah2.", @tc.message(message) { "blah2" }.call
1687
+
1688
+ message = @tc.message { "blah1" }
1689
+ assert_equal "blah1.\nblah2.", @tc.message(message) { "blah2" }.call
1690
+ end
1691
+
1692
+ def test_message_message
1693
+ assert_triggered "whoops.\nExpected: 1\n Actual: 2" do
1694
+ @tc.assert_equal 1, 2, message { "whoops" }
1695
+ end
1696
+ end
1697
+
1698
+ def test_message_lambda
1699
+ assert_triggered "whoops.\nExpected: 1\n Actual: 2" do
1700
+ @tc.assert_equal 1, 2, lambda { "whoops" }
1701
+ end
1702
+ end
1703
+
1704
+ def test_message_deferred
1705
+ @assertion_count, var = 0, nil
1706
+
1707
+ msg = message { var = "blah" }
1708
+
1709
+ assert_nil var
1710
+
1711
+ msg.call
1712
+
1713
+ assert_equal "blah", var
1714
+ end
1715
+
1716
+ def test_pass
1717
+ @tc.pass
1718
+ end
1719
+
1720
+ def test_prints
1721
+ printer = Class.new { extend Minitest::Assertions }
1722
+ @tc.assert_equal '"test"', printer.mu_pp(ImmutableString.new "test")
1723
+ end
1724
+
1725
+ def test_refute
1726
+ @assertion_count = 2
1727
+
1728
+ @tc.assert_equal false, @tc.refute(false), "returns false on success"
1729
+ end
1730
+
1731
+ def test_refute_empty
1732
+ @assertion_count = 2
1733
+
1734
+ @tc.refute_empty [1]
1735
+ end
1736
+
1737
+ def test_refute_empty_triggered
1738
+ @assertion_count = 2
1739
+
1740
+ assert_triggered "Expected [] to not be empty." do
1741
+ @tc.refute_empty []
1742
+ end
1743
+ end
1744
+
1745
+ def test_refute_equal
1746
+ @tc.refute_equal "blah", "yay"
1747
+ end
1748
+
1749
+ def test_refute_equal_triggered
1750
+ assert_triggered 'Expected "blah" to not be equal to "blah".' do
1751
+ @tc.refute_equal "blah", "blah"
1752
+ end
1753
+ end
1754
+
1755
+ def test_refute_in_delta
1756
+ @tc.refute_in_delta 0.0, 1.0 / 1000, 0.000001
1757
+ end
1758
+
1759
+ def test_refute_in_delta_triggered
1760
+ x = maglev? ? "0.100000xxx" : "0.1"
1761
+ assert_triggered "Expected |0.0 - 0.001| (0.001) to not be <= #{x}." do
1762
+ @tc.refute_in_delta 0.0, 1.0 / 1000, 0.1
1763
+ end
1764
+ end
1765
+
1766
+ def test_refute_in_epsilon
1767
+ @tc.refute_in_epsilon 10_000, 9990-1
1768
+ end
1769
+
1770
+ def test_refute_in_epsilon_triggered
1771
+ assert_triggered "Expected |10000 - 9990| (10) to not be <= 10.0." do
1772
+ @tc.refute_in_epsilon 10_000, 9990
1773
+ flunk
1774
+ end
1775
+ end
1776
+
1777
+ def test_refute_includes
1778
+ @assertion_count = 2
1779
+
1780
+ @tc.refute_includes [true], false
1781
+ end
1782
+
1783
+ def test_refute_includes_triggered
1784
+ @assertion_count = 3
1785
+
1786
+ e = @tc.assert_raises Minitest::Assertion do
1787
+ @tc.refute_includes [true], true
1788
+ end
1789
+
1790
+ expected = "Expected [true] to not include true."
1791
+ assert_equal expected, e.message
1792
+ end
1793
+
1794
+ def test_refute_instance_of
1795
+ @tc.refute_instance_of Array, "blah"
1796
+ end
1797
+
1798
+ def test_refute_instance_of_triggered
1799
+ assert_triggered 'Expected "blah" to not be an instance of String.' do
1800
+ @tc.refute_instance_of String, "blah"
1801
+ end
1802
+ end
1803
+
1804
+ def test_refute_kind_of
1805
+ @tc.refute_kind_of Array, "blah"
1806
+ end
1807
+
1808
+ def test_refute_kind_of_triggered
1809
+ assert_triggered 'Expected "blah" to not be a kind of String.' do
1810
+ @tc.refute_kind_of String, "blah"
1811
+ end
1812
+ end
1813
+
1814
+ def test_refute_match
1815
+ @assertion_count = 2
1816
+ @tc.refute_match(/\d+/, "blah blah blah")
1817
+ end
1818
+
1819
+ def test_refute_match_matcher_object
1820
+ @assertion_count = 2
1821
+ @tc.refute_match Object.new, 5 # default #=~ returns false
1822
+ end
1823
+
1824
+ def test_refute_match_object_triggered
1825
+ @assertion_count = 2
1826
+
1827
+ pattern = Object.new
1828
+ def pattern.=~ _; true end
1829
+ def pattern.inspect; "[Object]" end
1830
+
1831
+ assert_triggered "Expected [Object] to not match 5." do
1832
+ @tc.refute_match pattern, 5
1833
+ end
1834
+ end
1835
+
1836
+ def test_refute_match_triggered
1837
+ @assertion_count = 2
1838
+ assert_triggered 'Expected /\w+/ to not match "blah blah blah".' do
1839
+ @tc.refute_match(/\w+/, "blah blah blah")
1840
+ end
1841
+ end
1842
+
1843
+ def test_refute_nil
1844
+ @tc.refute_nil 42
1845
+ end
1846
+
1847
+ def test_refute_nil_triggered
1848
+ assert_triggered "Expected nil to not be nil." do
1849
+ @tc.refute_nil nil
1850
+ end
1851
+ end
1852
+
1853
+ def test_refute_predicate
1854
+ @tc.refute_predicate "42", :empty?
1855
+ end
1856
+
1857
+ def test_refute_predicate_triggered
1858
+ assert_triggered 'Expected "" to not be empty?.' do
1859
+ @tc.refute_predicate "", :empty?
1860
+ end
1861
+ end
1862
+
1863
+ def test_refute_operator
1864
+ @tc.refute_operator 2, :<, 1
1865
+ end
1866
+
1867
+ def test_refute_operator_bad_object
1868
+ bad = Object.new
1869
+ def bad.== _; true end
1870
+
1871
+ @tc.refute_operator true, :equal?, bad
1872
+ end
1873
+
1874
+ def test_refute_operator_triggered
1875
+ assert_triggered "Expected 2 to not be > 1." do
1876
+ @tc.refute_operator 2, :>, 1
1877
+ end
1878
+ end
1879
+
1880
+ def test_refute_respond_to
1881
+ @tc.refute_respond_to "blah", :rawr!
1882
+ end
1883
+
1884
+ def test_refute_respond_to_triggered
1885
+ assert_triggered 'Expected "blah" to not respond to empty?.' do
1886
+ @tc.refute_respond_to "blah", :empty?
1887
+ end
1888
+ end
1889
+
1890
+ def test_refute_same
1891
+ @tc.refute_same 1, 2
1892
+ end
1893
+
1894
+ def test_refute_same_triggered
1895
+ assert_triggered "Expected 1 (oid=N) to not be the same as 1 (oid=N)." do
1896
+ @tc.refute_same 1, 1
1897
+ end
1898
+ end
1899
+
1900
+ def test_skip
1901
+ @assertion_count = 0
1902
+
1903
+ assert_triggered "haha!", Minitest::Skip do
1904
+ @tc.skip "haha!"
1905
+ end
1906
+ end
1907
+
1908
+ def test_runnable_methods_random
1909
+ @assertion_count = 0
1910
+
1911
+ sample_test_case = Class.new FakeNamedTest do
1912
+ def self.test_order; :random; end
1913
+ def test_test1; assert "does not matter" end
1914
+ def test_test2; assert "does not matter" end
1915
+ def test_test3; assert "does not matter" end
1916
+ end
1917
+
1918
+ srand 42
1919
+ expected = case
1920
+ when maglev? then
1921
+ %w[test_test2 test_test3 test_test1]
1922
+ else
1923
+ %w[test_test2 test_test1 test_test3]
1924
+ end
1925
+ assert_equal expected, sample_test_case.runnable_methods
1926
+ end
1927
+
1928
+ def test_runnable_methods_sorted
1929
+ @assertion_count = 0
1930
+
1931
+ sample_test_case = Class.new FakeNamedTest do
1932
+ def self.test_order; :sorted end
1933
+ def test_test3; assert "does not matter" end
1934
+ def test_test2; assert "does not matter" end
1935
+ def test_test1; assert "does not matter" end
1936
+ end
1937
+
1938
+ expected = %w[test_test1 test_test2 test_test3]
1939
+ assert_equal expected, sample_test_case.runnable_methods
1940
+ end
1941
+
1942
+ def test_i_suck_and_my_tests_are_order_dependent_bang_sets_test_order_alpha
1943
+ @assertion_count = 0
1944
+
1945
+ shitty_test_case = Class.new FakeNamedTest
1946
+
1947
+ shitty_test_case.i_suck_and_my_tests_are_order_dependent!
1948
+
1949
+ assert_equal :alpha, shitty_test_case.test_order
1950
+ end
1951
+
1952
+ def test_i_suck_and_my_tests_are_order_dependent_bang_does_not_warn
1953
+ @assertion_count = 0
1954
+
1955
+ shitty_test_case = Class.new FakeNamedTest
1956
+
1957
+ def shitty_test_case.test_order; :lol end
1958
+
1959
+ assert_silent do
1960
+ shitty_test_case.i_suck_and_my_tests_are_order_dependent!
1961
+ end
1962
+ end
1963
+
1964
+ def assert_triggered expected, klass = Minitest::Assertion
1965
+ e = assert_raises klass do
1966
+ yield
1967
+ end
1968
+
1969
+ msg = e.message.sub(/(---Backtrace---).*/m, '\1')
1970
+ msg.gsub!(/\(oid=[-0-9]+\)/, "(oid=N)")
1971
+ msg.gsub!(/(\d\.\d{6})\d+/, '\1xxx') # normalize: ruby version, impl, platform
1972
+
1973
+ assert_msg = Regexp === expected ? :assert_match : :assert_equal
1974
+ self.send assert_msg, expected, msg
1975
+ end
1976
+
1977
+ def util_msg exp, act, msg = nil
1978
+ s = "Expected: #{exp.inspect}\n Actual: #{act.inspect}"
1979
+ s = "#{msg}.\n#{s}" if msg
1980
+ s
1981
+ end
1982
+
1983
+ def without_diff
1984
+ old_diff = Minitest::Assertions.diff
1985
+ Minitest::Assertions.diff = nil
1986
+
1987
+ yield
1988
+ ensure
1989
+ Minitest::Assertions.diff = old_diff
1990
+ end
1991
+ end
1992
+
1993
+ class TestMinitestGuard < Minitest::Test
1994
+ parallelize_me!
1995
+
1996
+ def test_mri_eh
1997
+ assert self.class.mri? "ruby blah"
1998
+ assert self.mri? "ruby blah"
1999
+ end
2000
+
2001
+ def test_jruby_eh
2002
+ assert self.class.jruby? "java"
2003
+ assert self.jruby? "java"
2004
+ end
2005
+
2006
+ def test_rubinius_eh
2007
+ assert self.class.rubinius? "rbx"
2008
+ assert self.rubinius? "rbx"
2009
+ end
2010
+
2011
+ def test_windows_eh
2012
+ assert self.class.windows? "mswin"
2013
+ assert self.windows? "mswin"
2014
+ end
2015
+ end
2016
+
2017
+ class TestMinitestUnitRecording < MetaMetaMetaTestCase
2018
+ # do not parallelize this suite... it just can't handle it.
2019
+
2020
+ def assert_run_record *expected, &block
2021
+ @tu = Class.new FakeNamedTest, &block
2022
+
2023
+ run_tu_with_fresh_reporter
2024
+
2025
+ recorded = first_reporter.results.map(&:failures).flatten.map { |f| f.error.class }
2026
+
2027
+ assert_equal expected, recorded
2028
+ end
2029
+
2030
+ def test_run_with_bogus_reporter
2031
+ # https://github.com/seattlerb/minitest/issues/659
2032
+ # TODO: remove test for minitest 6
2033
+ @tu = Class.new FakeNamedTest do
2034
+ def test_method
2035
+ assert true
2036
+ end
2037
+ end
2038
+
2039
+ bogus_reporter = Class.new do # doesn't subclass AbstractReporter
2040
+ def start; @success = false; end
2041
+ # def prerecord klass, name; end # doesn't define full API
2042
+ def record result; @success = true; end
2043
+ def report; end
2044
+ def passed?; end
2045
+ def results; end
2046
+ def success?; @success; end
2047
+ end.new
2048
+
2049
+ self.reporter = Minitest::CompositeReporter.new
2050
+ reporter << bogus_reporter
2051
+
2052
+ Minitest::Runnable.runnables.delete @tu
2053
+
2054
+ @tu.run reporter, {}
2055
+
2056
+ assert_predicate bogus_reporter, :success?
2057
+ end
2058
+
2059
+ def test_record_passing
2060
+ assert_run_record do
2061
+ def test_method
2062
+ assert true
2063
+ end
2064
+ end
2065
+ end
2066
+
2067
+ def test_record_failing
2068
+ assert_run_record Minitest::Assertion do
2069
+ def test_method
2070
+ assert false
2071
+ end
2072
+ end
2073
+ end
2074
+
2075
+ def test_record_error
2076
+ assert_run_record RuntimeError do
2077
+ def test_method
2078
+ raise "unhandled exception"
2079
+ end
2080
+ end
2081
+ end
2082
+
2083
+ def test_record_error_teardown
2084
+ assert_run_record RuntimeError do
2085
+ def test_method
2086
+ assert true
2087
+ end
2088
+
2089
+ def teardown
2090
+ raise "unhandled exception"
2091
+ end
2092
+ end
2093
+ end
2094
+
2095
+ def test_record_error_in_test_and_teardown
2096
+ assert_run_record AnError, RuntimeError do
2097
+ def test_method
2098
+ raise AnError
2099
+ end
2100
+
2101
+ def teardown
2102
+ raise "unhandled exception"
2103
+ end
2104
+ end
2105
+ end
2106
+
2107
+ def test_to_s_error_in_test_and_teardown
2108
+ @tu = Class.new FakeNamedTest do
2109
+ def test_method
2110
+ raise AnError
2111
+ end
2112
+
2113
+ def teardown
2114
+ raise "unhandled exception"
2115
+ end
2116
+ end
2117
+
2118
+ run_tu_with_fresh_reporter
2119
+
2120
+ exp = clean "
2121
+ Error:
2122
+ FakeNamedTestXX#test_method:
2123
+ AnError: AnError
2124
+ FILE:LINE:in `test_method'
2125
+
2126
+ Error:
2127
+ FakeNamedTestXX#test_method:
2128
+ RuntimeError: unhandled exception
2129
+ FILE:LINE:in `teardown'
2130
+ "
2131
+
2132
+ assert_equal exp.strip, normalize_output(first_reporter.results.first.to_s).strip
2133
+ end
2134
+
2135
+ def test_record_skip
2136
+ assert_run_record Minitest::Skip do
2137
+ def test_method
2138
+ skip "not yet"
2139
+ end
2140
+ end
2141
+ end
2142
+ end