lgrgic_palindrome_detector 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +8 -0
- data/.travis.yml +7 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +31 -0
- data/README.md +39 -0
- data/Rakefile +10 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lgrgic_palindrome_detector.gemspec +37 -0
- data/lib/lgrgic_palindrome_detector.rb +16 -0
- data/lib/lgrgic_palindrome_detector/version.rb +3 -0
- data/vendor/cache/ansi-1.5.0.gem +0 -0
- data/vendor/cache/bin/rake +27 -0
- data/vendor/cache/builder-3.2.3.gem +0 -0
- data/vendor/cache/cache/ansi-1.5.0.gem +0 -0
- data/vendor/cache/cache/builder-3.2.3.gem +0 -0
- data/vendor/cache/cache/minitest-5.11.3.gem +0 -0
- data/vendor/cache/cache/minitest-reporters-1.2.0.gem +0 -0
- data/vendor/cache/cache/rake-10.5.0.gem +0 -0
- data/vendor/cache/cache/ruby-progressbar-1.10.0.gem +0 -0
- data/vendor/cache/gems/ansi-1.5.0/.index +77 -0
- data/vendor/cache/gems/ansi-1.5.0/.yardopts +8 -0
- data/vendor/cache/gems/ansi-1.5.0/DEMO.md +451 -0
- data/vendor/cache/gems/ansi-1.5.0/HISTORY.md +217 -0
- data/vendor/cache/gems/ansi-1.5.0/LICENSE.txt +23 -0
- data/vendor/cache/gems/ansi-1.5.0/NOTICE.md +170 -0
- data/vendor/cache/gems/ansi-1.5.0/README.md +91 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/01_ansicode.md +65 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/02_core.md +11 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/03_logger.md +30 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/04_progressbar.md +62 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/05_mixin.md +37 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/06_string.md +56 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/07_columns.md +89 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/08_table.md +28 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/09_diff.md +47 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/10_bbcode.md +24 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/11_terminal.md +8 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/applique/ae.rb +1 -0
- data/vendor/cache/gems/ansi-1.5.0/demo/applique/output.rb +5 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi.rb +22 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi.yml +77 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/bbcode.rb +334 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/chain.rb +50 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/chart.rb +100 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/code.rb +349 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/columns.rb +197 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/constants.rb +25 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/core.rb +30 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/diff.rb +215 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/hexdump.rb +122 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/logger.rb +211 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/mixin.rb +121 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/progressbar.rb +292 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/string.rb +254 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/table.rb +179 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/terminal.rb +44 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/terminal/curses.rb +26 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/terminal/stty.rb +62 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/terminal/termios.rb +68 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/terminal/win32.rb +107 -0
- data/vendor/cache/gems/ansi-1.5.0/lib/ansi/version.rb +15 -0
- data/vendor/cache/gems/ansi-1.5.0/test/case_ansicode.rb +43 -0
- data/vendor/cache/gems/ansi-1.5.0/test/case_bbcode.rb +35 -0
- data/vendor/cache/gems/ansi-1.5.0/test/case_mixin.rb +35 -0
- data/vendor/cache/gems/ansi-1.5.0/test/case_progressbar.rb +21 -0
- data/vendor/cache/gems/ansi-1.5.0/test/test_helper.rb +3 -0
- data/vendor/cache/gems/builder-3.2.3/CHANGES +107 -0
- data/vendor/cache/gems/builder-3.2.3/MIT-LICENSE +20 -0
- data/vendor/cache/gems/builder-3.2.3/README.md +258 -0
- data/vendor/cache/gems/builder-3.2.3/Rakefile +195 -0
- data/vendor/cache/gems/builder-3.2.3/doc/jamis.rb +591 -0
- data/vendor/cache/gems/builder-3.2.3/doc/releases/builder-1.2.4.rdoc +31 -0
- data/vendor/cache/gems/builder-3.2.3/doc/releases/builder-2.0.0.rdoc +46 -0
- data/vendor/cache/gems/builder-3.2.3/doc/releases/builder-2.1.1.rdoc +58 -0
- data/vendor/cache/gems/builder-3.2.3/lib/blankslate.rb +137 -0
- data/vendor/cache/gems/builder-3.2.3/lib/builder.rb +13 -0
- data/vendor/cache/gems/builder-3.2.3/lib/builder/blankslate.rb +23 -0
- data/vendor/cache/gems/builder-3.2.3/lib/builder/version.rb +8 -0
- data/vendor/cache/gems/builder-3.2.3/lib/builder/xchar.rb +197 -0
- data/vendor/cache/gems/builder-3.2.3/lib/builder/xmlbase.rb +199 -0
- data/vendor/cache/gems/builder-3.2.3/lib/builder/xmlevents.rb +63 -0
- data/vendor/cache/gems/builder-3.2.3/lib/builder/xmlmarkup.rb +339 -0
- data/vendor/cache/gems/builder-3.2.3/rakelib/publish.rake +20 -0
- data/vendor/cache/gems/builder-3.2.3/rakelib/tags.rake +62 -0
- data/vendor/cache/gems/builder-3.2.3/rakelib/testing.rake +7 -0
- data/vendor/cache/gems/builder-3.2.3/test/helper.rb +12 -0
- data/vendor/cache/gems/builder-3.2.3/test/performance.rb +41 -0
- data/vendor/cache/gems/builder-3.2.3/test/preload.rb +39 -0
- data/vendor/cache/gems/builder-3.2.3/test/test_blankslate.rb +213 -0
- data/vendor/cache/gems/builder-3.2.3/test/test_eventbuilder.rb +150 -0
- data/vendor/cache/gems/builder-3.2.3/test/test_markupbuilder.rb +611 -0
- data/vendor/cache/gems/builder-3.2.3/test/test_method_caching.rb +62 -0
- data/vendor/cache/gems/builder-3.2.3/test/test_namecollision.rb +39 -0
- data/vendor/cache/gems/builder-3.2.3/test/test_xchar.rb +78 -0
- data/vendor/cache/gems/minitest-5.11.3/.autotest +34 -0
- data/vendor/cache/gems/minitest-5.11.3/History.rdoc +1310 -0
- data/vendor/cache/gems/minitest-5.11.3/Manifest.txt +26 -0
- data/vendor/cache/gems/minitest-5.11.3/README.rdoc +746 -0
- data/vendor/cache/gems/minitest-5.11.3/Rakefile +86 -0
- data/vendor/cache/gems/minitest-5.11.3/design_rationale.rb +52 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/hoe/minitest.rb +32 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest.rb +987 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/assertions.rb +693 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/autorun.rb +13 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/benchmark.rb +455 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/expectations.rb +284 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/hell.rb +11 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/mock.rb +240 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/parallel.rb +70 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/pride.rb +4 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/pride_plugin.rb +142 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/spec.rb +331 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/test.rb +220 -0
- data/vendor/cache/gems/minitest-5.11.3/lib/minitest/unit.rb +45 -0
- data/vendor/cache/gems/minitest-5.11.3/test/minitest/metametameta.rb +102 -0
- data/vendor/cache/gems/minitest-5.11.3/test/minitest/test_minitest_benchmark.rb +137 -0
- data/vendor/cache/gems/minitest-5.11.3/test/minitest/test_minitest_mock.rb +874 -0
- data/vendor/cache/gems/minitest-5.11.3/test/minitest/test_minitest_reporter.rb +299 -0
- data/vendor/cache/gems/minitest-5.11.3/test/minitest/test_minitest_spec.rb +987 -0
- data/vendor/cache/gems/minitest-5.11.3/test/minitest/test_minitest_test.rb +2142 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/.gitignore +27 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/.ruby-gemset +1 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/.travis.yml +10 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/.yardopts +6 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/CHANGELOG.md +40 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/Gemfile +2 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/LICENSE +20 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/README.md +115 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/Rakefile +60 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/assets/default-reporter.png +0 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/assets/mean_time_reporter.png +0 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/assets/progress-reporter.png +0 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/assets/spec-reporter.png +0 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/extensible_backtrace_filter.rb +67 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/minitest_reporter_plugin.rb +75 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/old_activesupport_fix.rb +24 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/relative_position.rb +26 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters.rb +89 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/ansi.rb +31 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/base_reporter.rb +117 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/default_reporter.rb +228 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/html_reporter.rb +221 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/junit_reporter.rb +157 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/mean_time_reporter.rb +392 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/progress_reporter.rb +96 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/ruby_mate_reporter.rb +54 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/rubymine_reporter.rb +117 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/spec_reporter.rb +61 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/reporters/version.rb +5 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/lib/minitest/templates/index.html.erb +83 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/minitest-reporters.gemspec +31 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/junit_filename_bug_example_test.rb +21 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/mean_time_test.rb +8 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/progress_detailed_skip_test.rb +8 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/progress_test.rb +8 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/sample_test.rb +15 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/fixtures/spec_test.rb +13 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/gallery/bad_test.rb +25 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/gallery/good_test.rb +14 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/integration/reporters/junit_reporter_test.rb +12 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/integration/reporters/mean_time_reporter_test.rb +7 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/integration/reporters/progress_reporter_test.rb +34 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/test_helper.rb +22 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/unit/minitest/extensible_backtrace_filter_test.rb +42 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/unit/minitest/mean_time_reporter_unit_test.rb +152 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/unit/minitest/minitest_reporter_plugin_test.rb +14 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/unit/minitest/reporters_test.rb +52 -0
- data/vendor/cache/gems/minitest-reporters-1.2.0/test/unit/minitest/spec_reporter_test.rb +41 -0
- data/vendor/cache/gems/rake-10.5.0/.autotest +7 -0
- data/vendor/cache/gems/rake-10.5.0/.rubocop.yml +27 -0
- data/vendor/cache/gems/rake-10.5.0/.togglerc +7 -0
- data/vendor/cache/gems/rake-10.5.0/CONTRIBUTING.rdoc +38 -0
- data/vendor/cache/gems/rake-10.5.0/History.rdoc +659 -0
- data/vendor/cache/gems/rake-10.5.0/MIT-LICENSE +21 -0
- data/vendor/cache/gems/rake-10.5.0/Manifest.txt +166 -0
- data/vendor/cache/gems/rake-10.5.0/README.rdoc +139 -0
- data/vendor/cache/gems/rake-10.5.0/Rakefile +81 -0
- data/vendor/cache/gems/rake-10.5.0/bin/rake +33 -0
- data/vendor/cache/gems/rake-10.5.0/doc/command_line_usage.rdoc +158 -0
- data/vendor/cache/gems/rake-10.5.0/doc/example/Rakefile1 +38 -0
- data/vendor/cache/gems/rake-10.5.0/doc/example/Rakefile2 +35 -0
- data/vendor/cache/gems/rake-10.5.0/doc/example/a.c +6 -0
- data/vendor/cache/gems/rake-10.5.0/doc/example/b.c +6 -0
- data/vendor/cache/gems/rake-10.5.0/doc/example/main.c +11 -0
- data/vendor/cache/gems/rake-10.5.0/doc/glossary.rdoc +42 -0
- data/vendor/cache/gems/rake-10.5.0/doc/jamis.rb +591 -0
- data/vendor/cache/gems/rake-10.5.0/doc/proto_rake.rdoc +127 -0
- data/vendor/cache/gems/rake-10.5.0/doc/rake.1 +141 -0
- data/vendor/cache/gems/rake-10.5.0/doc/rakefile.rdoc +624 -0
- data/vendor/cache/gems/rake-10.5.0/doc/rational.rdoc +151 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.4.14.rdoc +23 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.4.15.rdoc +35 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.5.0.rdoc +53 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.5.3.rdoc +78 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.5.4.rdoc +46 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.6.0.rdoc +141 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.7.0.rdoc +119 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.7.1.rdoc +59 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.7.2.rdoc +121 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.7.3.rdoc +47 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.0.rdoc +114 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.2.rdoc +165 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.3.rdoc +112 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.4.rdoc +147 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.5.rdoc +53 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.6.rdoc +37 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.8.7.rdoc +55 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.0.rdoc +112 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.1.rdoc +52 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.2.rdoc +55 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.rdoc +49 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.3.rdoc +102 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.4.rdoc +60 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.5.rdoc +55 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-0.9.6.rdoc +64 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-10.0.0.rdoc +178 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-10.0.1.rdoc +58 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-10.0.2.rdoc +53 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-10.0.3.rdoc +191 -0
- data/vendor/cache/gems/rake-10.5.0/doc/release_notes/rake-10.1.0.rdoc +61 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake.rb +79 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/alt_system.rb +110 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/application.rb +790 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/backtrace.rb +23 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/clean.rb +76 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/cloneable.rb +16 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/.document +1 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/compositepublisher.rb +21 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/ftptools.rb +137 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/publisher.rb +81 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/rubyforgepublisher.rb +18 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/sshpublisher.rb +61 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/contrib/sys.rb +4 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/cpu_counter.rb +125 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/default_loader.rb +14 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/dsl_definition.rb +201 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/early_time.rb +21 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/ext/core.rb +25 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/ext/module.rb +2 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/ext/pathname.rb +25 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/ext/string.rb +175 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/ext/time.rb +18 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/file_creation_task.rb +24 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/file_list.rb +428 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/file_task.rb +46 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/file_utils.rb +128 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/file_utils_ext.rb +144 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/gempackagetask.rb +4 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/invocation_chain.rb +56 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/invocation_exception_mixin.rb +16 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/late_time.rb +17 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/linked_list.rb +103 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/loaders/makefile.rb +53 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/multi_task.rb +13 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/name_space.rb +38 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/packagetask.rb +199 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/pathmap.rb +3 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/phony.rb +15 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/private_reader.rb +20 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/promise.rb +99 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/pseudo_status.rb +29 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/rake_module.rb +38 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/rake_test_loader.rb +22 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/rdoctask.rb +4 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/ruby182_test_unit_fix.rb +29 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/rule_recursion_overflow_error.rb +20 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/runtest.rb +27 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/scope.rb +42 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/task.rb +383 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/task_argument_error.rb +7 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/task_arguments.rb +98 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/task_manager.rb +307 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/tasklib.rb +24 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/testtask.rb +213 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/thread_history_display.rb +48 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/thread_pool.rb +164 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/trace_output.rb +22 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/version.rb +7 -0
- data/vendor/cache/gems/rake-10.5.0/lib/rake/win32.rb +56 -0
- data/vendor/cache/gems/rake-10.5.0/rakelib/publish.rake +20 -0
- data/vendor/cache/gems/rake-10.5.0/rakelib/test_times.rake +25 -0
- data/vendor/cache/gems/rake-10.5.0/test/file_creation.rb +34 -0
- data/vendor/cache/gems/rake-10.5.0/test/helper.rb +129 -0
- data/vendor/cache/gems/rake-10.5.0/test/support/rakefile_definitions.rb +478 -0
- data/vendor/cache/gems/rake-10.5.0/test/support/ruby_runner.rb +34 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_private_reader.rb +42 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake.rb +40 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_application.rb +643 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_application_options.rb +468 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_backtrace.rb +119 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_clean.rb +61 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_cpu_counter.rb +68 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_definitions.rb +84 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_directory_task.rb +76 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_dsl.rb +40 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_early_time.rb +31 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_extension.rb +59 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_file_creation_task.rb +56 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_file_list.rb +670 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_file_list_path_map.rb +8 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_file_task.rb +197 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_file_utils.rb +314 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_ftp_file.rb +74 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_functional.rb +482 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_invocation_chain.rb +64 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_late_time.rb +18 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_linked_list.rb +84 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_makefile_loader.rb +46 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_multi_task.rb +64 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_name_space.rb +57 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_package_task.rb +79 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_path_map.rb +168 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_path_map_explode.rb +34 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_path_map_partial.rb +18 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_pathname_extensions.rb +15 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_pseudo_status.rb +21 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_rake_test_loader.rb +20 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_reduce_compat.rb +26 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_require.rb +40 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_rules.rb +388 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_scope.rb +44 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_task.rb +393 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_task_argument_parsing.rb +119 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_task_arguments.rb +127 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_task_lib.rb +9 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_task_manager.rb +178 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_task_manager_argument_resolution.rb +19 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_task_with_arguments.rb +172 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_test_task.rb +146 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_thread_pool.rb +145 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_top_level_functions.rb +71 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_rake_win32.rb +72 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_thread_history_display.rb +101 -0
- data/vendor/cache/gems/rake-10.5.0/test/test_trace_output.rb +52 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/LICENSE.txt +19 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/README.md +38 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/Rakefile +2 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar.rb +18 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/base.rb +183 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/calculators/length.rb +100 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/calculators/running_average.rb +9 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components.rb +5 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/bar.rb +102 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/percentage.rb +29 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/rate.rb +43 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/time.rb +107 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/title.rb +13 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/errors/invalid_progress_error.rb +4 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/format.rb +3 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/format/formatter.rb +27 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/format/molecule.rb +60 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/format/string.rb +36 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/output.rb +68 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/outputs/non_tty.rb +47 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/outputs/null.rb +33 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/outputs/tty.rb +32 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/progress.rb +118 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/refinements.rb +1 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/refinements/enumerator.rb +23 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/throttle.rb +25 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/time.rb +32 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/timer.rb +72 -0
- data/vendor/cache/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/version.rb +3 -0
- data/vendor/cache/minitest-5.11.3.gem +0 -0
- data/vendor/cache/minitest-reporters-1.2.0.gem +0 -0
- data/vendor/cache/rake-10.5.0.gem +0 -0
- data/vendor/cache/ruby-progressbar-1.10.0.gem +0 -0
- data/vendor/cache/specifications/ansi-1.5.0.gemspec +49 -0
- data/vendor/cache/specifications/builder-3.2.3.gemspec +21 -0
- data/vendor/cache/specifications/minitest-5.11.3.gemspec +39 -0
- data/vendor/cache/specifications/minitest-reporters-1.2.0.gemspec +49 -0
- data/vendor/cache/specifications/rake-10.5.0.gemspec +43 -0
- data/vendor/cache/specifications/ruby-progressbar-1.10.0.gemspec +46 -0
- metadata +460 -0
@@ -0,0 +1,220 @@
|
|
1
|
+
require "minitest" unless defined? Minitest::Runnable
|
2
|
+
|
3
|
+
module Minitest
|
4
|
+
##
|
5
|
+
# Subclass Test to create your own tests. Typically you'll want a
|
6
|
+
# Test subclass per implementation class.
|
7
|
+
#
|
8
|
+
# See Minitest::Assertions
|
9
|
+
|
10
|
+
class Test < Runnable
|
11
|
+
require "minitest/assertions"
|
12
|
+
include Minitest::Assertions
|
13
|
+
include Minitest::Reportable
|
14
|
+
|
15
|
+
def class_name # :nodoc:
|
16
|
+
self.class.name # for Minitest::Reportable
|
17
|
+
end
|
18
|
+
|
19
|
+
PASSTHROUGH_EXCEPTIONS = [NoMemoryError, SignalException, SystemExit] # :nodoc:
|
20
|
+
|
21
|
+
# :stopdoc:
|
22
|
+
class << self; attr_accessor :io_lock; end
|
23
|
+
self.io_lock = Mutex.new
|
24
|
+
# :startdoc:
|
25
|
+
|
26
|
+
##
|
27
|
+
# Call this at the top of your tests when you absolutely
|
28
|
+
# positively need to have ordered tests. In doing so, you're
|
29
|
+
# admitting that you suck and your tests are weak.
|
30
|
+
|
31
|
+
def self.i_suck_and_my_tests_are_order_dependent!
|
32
|
+
class << self
|
33
|
+
undef_method :test_order if method_defined? :test_order
|
34
|
+
define_method :test_order do :alpha end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
##
|
39
|
+
# Make diffs for this Test use #pretty_inspect so that diff
|
40
|
+
# in assert_equal can have more details. NOTE: this is much slower
|
41
|
+
# than the regular inspect but much more usable for complex
|
42
|
+
# objects.
|
43
|
+
|
44
|
+
def self.make_my_diffs_pretty!
|
45
|
+
require "pp"
|
46
|
+
|
47
|
+
define_method :mu_pp, &:pretty_inspect
|
48
|
+
end
|
49
|
+
|
50
|
+
##
|
51
|
+
# Call this at the top of your tests when you want to run your
|
52
|
+
# tests in parallel. In doing so, you're admitting that you rule
|
53
|
+
# and your tests are awesome.
|
54
|
+
|
55
|
+
def self.parallelize_me!
|
56
|
+
include Minitest::Parallel::Test
|
57
|
+
extend Minitest::Parallel::Test::ClassMethods
|
58
|
+
end
|
59
|
+
|
60
|
+
##
|
61
|
+
# Returns all instance methods starting with "test_". Based on
|
62
|
+
# #test_order, the methods are either sorted, randomized
|
63
|
+
# (default), or run in parallel.
|
64
|
+
|
65
|
+
def self.runnable_methods
|
66
|
+
methods = methods_matching(/^test_/)
|
67
|
+
|
68
|
+
case self.test_order
|
69
|
+
when :random, :parallel then
|
70
|
+
max = methods.size
|
71
|
+
methods.sort.sort_by { rand max }
|
72
|
+
when :alpha, :sorted then
|
73
|
+
methods.sort
|
74
|
+
else
|
75
|
+
raise "Unknown test_order: #{self.test_order.inspect}"
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
##
|
80
|
+
# Defines the order to run tests (:random by default). Override
|
81
|
+
# this or use a convenience method to change it for your tests.
|
82
|
+
|
83
|
+
def self.test_order
|
84
|
+
:random
|
85
|
+
end
|
86
|
+
|
87
|
+
TEARDOWN_METHODS = %w[ before_teardown teardown after_teardown ] # :nodoc:
|
88
|
+
|
89
|
+
##
|
90
|
+
# Runs a single test with setup/teardown hooks.
|
91
|
+
|
92
|
+
def run
|
93
|
+
with_info_handler do
|
94
|
+
time_it do
|
95
|
+
capture_exceptions do
|
96
|
+
before_setup; setup; after_setup
|
97
|
+
|
98
|
+
self.send self.name
|
99
|
+
end
|
100
|
+
|
101
|
+
TEARDOWN_METHODS.each do |hook|
|
102
|
+
capture_exceptions do
|
103
|
+
self.send hook
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
Result.from self # per contract
|
110
|
+
end
|
111
|
+
|
112
|
+
##
|
113
|
+
# Provides before/after hooks for setup and teardown. These are
|
114
|
+
# meant for library writers, NOT for regular test authors. See
|
115
|
+
# #before_setup for an example.
|
116
|
+
|
117
|
+
module LifecycleHooks
|
118
|
+
|
119
|
+
##
|
120
|
+
# Runs before every test, before setup. This hook is meant for
|
121
|
+
# libraries to extend minitest. It is not meant to be used by
|
122
|
+
# test developers.
|
123
|
+
#
|
124
|
+
# As a simplistic example:
|
125
|
+
#
|
126
|
+
# module MyMinitestPlugin
|
127
|
+
# def before_setup
|
128
|
+
# super
|
129
|
+
# # ... stuff to do before setup is run
|
130
|
+
# end
|
131
|
+
#
|
132
|
+
# def after_setup
|
133
|
+
# # ... stuff to do after setup is run
|
134
|
+
# super
|
135
|
+
# end
|
136
|
+
#
|
137
|
+
# def before_teardown
|
138
|
+
# super
|
139
|
+
# # ... stuff to do before teardown is run
|
140
|
+
# end
|
141
|
+
#
|
142
|
+
# def after_teardown
|
143
|
+
# # ... stuff to do after teardown is run
|
144
|
+
# super
|
145
|
+
# end
|
146
|
+
# end
|
147
|
+
#
|
148
|
+
# class MiniTest::Test
|
149
|
+
# include MyMinitestPlugin
|
150
|
+
# end
|
151
|
+
|
152
|
+
def before_setup; end
|
153
|
+
|
154
|
+
##
|
155
|
+
# Runs before every test. Use this to set up before each test
|
156
|
+
# run.
|
157
|
+
|
158
|
+
def setup; end
|
159
|
+
|
160
|
+
##
|
161
|
+
# Runs before every test, after setup. This hook is meant for
|
162
|
+
# libraries to extend minitest. It is not meant to be used by
|
163
|
+
# test developers.
|
164
|
+
#
|
165
|
+
# See #before_setup for an example.
|
166
|
+
|
167
|
+
def after_setup; end
|
168
|
+
|
169
|
+
##
|
170
|
+
# Runs after every test, before teardown. This hook is meant for
|
171
|
+
# libraries to extend minitest. It is not meant to be used by
|
172
|
+
# test developers.
|
173
|
+
#
|
174
|
+
# See #before_setup for an example.
|
175
|
+
|
176
|
+
def before_teardown; end
|
177
|
+
|
178
|
+
##
|
179
|
+
# Runs after every test. Use this to clean up after each test
|
180
|
+
# run.
|
181
|
+
|
182
|
+
def teardown; end
|
183
|
+
|
184
|
+
##
|
185
|
+
# Runs after every test, after teardown. This hook is meant for
|
186
|
+
# libraries to extend minitest. It is not meant to be used by
|
187
|
+
# test developers.
|
188
|
+
#
|
189
|
+
# See #before_setup for an example.
|
190
|
+
|
191
|
+
def after_teardown; end
|
192
|
+
end # LifecycleHooks
|
193
|
+
|
194
|
+
def capture_exceptions # :nodoc:
|
195
|
+
yield
|
196
|
+
rescue *PASSTHROUGH_EXCEPTIONS
|
197
|
+
raise
|
198
|
+
rescue Assertion => e
|
199
|
+
self.failures << e
|
200
|
+
rescue Exception => e
|
201
|
+
self.failures << UnexpectedError.new(e)
|
202
|
+
end
|
203
|
+
|
204
|
+
def with_info_handler &block # :nodoc:
|
205
|
+
t0 = Minitest.clock_time
|
206
|
+
|
207
|
+
handler = lambda do
|
208
|
+
warn "\nCurrent: %s#%s %.2fs" % [self.class, self.name, Minitest.clock_time - t0]
|
209
|
+
end
|
210
|
+
|
211
|
+
self.class.on_signal ::Minitest.info_signal, handler, &block
|
212
|
+
end
|
213
|
+
|
214
|
+
include LifecycleHooks
|
215
|
+
include Guard
|
216
|
+
extend Guard
|
217
|
+
end # Test
|
218
|
+
end
|
219
|
+
|
220
|
+
require "minitest/unit" unless defined?(MiniTest) # compatibility layer only
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# :stopdoc:
|
2
|
+
|
3
|
+
unless defined?(Minitest) then
|
4
|
+
# all of this crap is just to avoid circular requires and is only
|
5
|
+
# needed if a user requires "minitest/unit" directly instead of
|
6
|
+
# "minitest/autorun", so we also warn
|
7
|
+
|
8
|
+
from = caller.reject { |s| s =~ /rubygems/ }.join("\n ")
|
9
|
+
warn "Warning: you should require 'minitest/autorun' instead."
|
10
|
+
warn %(Warning: or add 'gem "minitest"' before 'require "minitest/autorun"')
|
11
|
+
warn "From:\n #{from}"
|
12
|
+
|
13
|
+
module Minitest; end
|
14
|
+
MiniTest = Minitest # prevents minitest.rb from requiring back to us
|
15
|
+
require "minitest"
|
16
|
+
end
|
17
|
+
|
18
|
+
MiniTest = Minitest unless defined?(MiniTest)
|
19
|
+
|
20
|
+
module Minitest
|
21
|
+
class Unit
|
22
|
+
VERSION = Minitest::VERSION
|
23
|
+
class TestCase < Minitest::Test
|
24
|
+
def self.inherited klass # :nodoc:
|
25
|
+
from = caller.first
|
26
|
+
warn "MiniTest::Unit::TestCase is now Minitest::Test. From #{from}"
|
27
|
+
super
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.autorun # :nodoc:
|
32
|
+
from = caller.first
|
33
|
+
warn "MiniTest::Unit.autorun is now Minitest.autorun. From #{from}"
|
34
|
+
Minitest.autorun
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.after_tests &b # :nodoc:
|
38
|
+
from = caller.first
|
39
|
+
warn "MiniTest::Unit.after_tests is now Minitest.after_run. From #{from}"
|
40
|
+
Minitest.after_run(&b)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
# :startdoc:
|
@@ -0,0 +1,102 @@
|
|
1
|
+
require "tempfile"
|
2
|
+
require "stringio"
|
3
|
+
require "minitest/autorun"
|
4
|
+
|
5
|
+
class Minitest::Test
|
6
|
+
def clean s
|
7
|
+
s.gsub(/^ {6}/, "")
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
class FakeNamedTest < Minitest::Test
|
12
|
+
@@count = 0
|
13
|
+
|
14
|
+
def self.name
|
15
|
+
@fake_name ||= begin
|
16
|
+
@@count += 1
|
17
|
+
"FakeNamedTest%02d" % @@count
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class MetaMetaMetaTestCase < Minitest::Test
|
23
|
+
attr_accessor :reporter, :output, :tu
|
24
|
+
|
25
|
+
def run_tu_with_fresh_reporter flags = %w[--seed 42]
|
26
|
+
options = Minitest.process_args flags
|
27
|
+
|
28
|
+
@output = StringIO.new("".encode('UTF-8'))
|
29
|
+
|
30
|
+
self.reporter = Minitest::CompositeReporter.new
|
31
|
+
reporter << Minitest::SummaryReporter.new(@output, options)
|
32
|
+
reporter << Minitest::ProgressReporter.new(@output, options)
|
33
|
+
|
34
|
+
reporter.start
|
35
|
+
|
36
|
+
yield(reporter) if block_given?
|
37
|
+
|
38
|
+
@tus ||= [@tu]
|
39
|
+
@tus.each do |tu|
|
40
|
+
Minitest::Runnable.runnables.delete tu
|
41
|
+
|
42
|
+
tu.run reporter, options
|
43
|
+
end
|
44
|
+
|
45
|
+
reporter.report
|
46
|
+
end
|
47
|
+
|
48
|
+
def first_reporter
|
49
|
+
reporter.reporters.first
|
50
|
+
end
|
51
|
+
|
52
|
+
def assert_report expected, flags = %w[--seed 42], &block
|
53
|
+
header = clean <<-EOM
|
54
|
+
Run options: #{flags.map { |s| s =~ /\|/ ? s.inspect : s }.join " "}
|
55
|
+
|
56
|
+
# Running:
|
57
|
+
|
58
|
+
EOM
|
59
|
+
|
60
|
+
run_tu_with_fresh_reporter flags, &block
|
61
|
+
|
62
|
+
output = normalize_output @output.string.dup
|
63
|
+
|
64
|
+
assert_equal header + expected, output
|
65
|
+
end
|
66
|
+
|
67
|
+
def normalize_output output
|
68
|
+
output.sub!(/Finished in .*/, "Finished in 0.00")
|
69
|
+
output.sub!(/Loaded suite .*/, "Loaded suite blah")
|
70
|
+
|
71
|
+
output.gsub!(/FakeNamedTest\d+/, "FakeNamedTestXX")
|
72
|
+
output.gsub!(/ = \d+.\d\d s = /, " = 0.00 s = ")
|
73
|
+
output.gsub!(/0x[A-Fa-f0-9]+/, "0xXXX")
|
74
|
+
output.gsub!(/ +$/, "")
|
75
|
+
|
76
|
+
if windows? then
|
77
|
+
output.gsub!(/\[(?:[A-Za-z]:)?[^\]:]+:\d+\]/, "[FILE:LINE]")
|
78
|
+
output.gsub!(/^(\s+)(?:[A-Za-z]:)?[^:]+:\d+:in/, '\1FILE:LINE:in')
|
79
|
+
else
|
80
|
+
output.gsub!(/\[[^\]:]+:\d+\]/, "[FILE:LINE]")
|
81
|
+
output.gsub!(/^(\s+)[^:]+:\d+:in/, '\1FILE:LINE:in')
|
82
|
+
end
|
83
|
+
|
84
|
+
output
|
85
|
+
end
|
86
|
+
|
87
|
+
def restore_env
|
88
|
+
old_value = ENV["MT_NO_SKIP_MSG"]
|
89
|
+
ENV.delete "MT_NO_SKIP_MSG"
|
90
|
+
|
91
|
+
yield
|
92
|
+
ensure
|
93
|
+
ENV["MT_NO_SKIP_MSG"] = old_value
|
94
|
+
end
|
95
|
+
|
96
|
+
def setup
|
97
|
+
super
|
98
|
+
srand 42
|
99
|
+
Minitest::Test.reset
|
100
|
+
@tu = nil
|
101
|
+
end
|
102
|
+
end
|
@@ -0,0 +1,137 @@
|
|
1
|
+
require "minitest/autorun"
|
2
|
+
require "minitest/benchmark"
|
3
|
+
|
4
|
+
##
|
5
|
+
# Used to verify data:
|
6
|
+
# http://www.wolframalpha.com/examples/RegressionAnalysis.html
|
7
|
+
|
8
|
+
class TestMinitestBenchmark < Minitest::Test
|
9
|
+
def test_cls_bench_exp
|
10
|
+
assert_equal [2, 4, 8, 16, 32], Minitest::Benchmark.bench_exp(2, 32, 2)
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_cls_bench_linear
|
14
|
+
assert_equal [2, 4, 6, 8, 10], Minitest::Benchmark.bench_linear(2, 10, 2)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_cls_runnable_methods
|
18
|
+
assert_equal [], Minitest::Benchmark.runnable_methods
|
19
|
+
|
20
|
+
c = Class.new(Minitest::Benchmark) do
|
21
|
+
def bench_blah
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
assert_equal ["bench_blah"], c.runnable_methods
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_cls_bench_range
|
29
|
+
assert_equal [1, 10, 100, 1_000, 10_000], Minitest::Benchmark.bench_range
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_fit_exponential_clean
|
33
|
+
x = [1.0, 2.0, 3.0, 4.0, 5.0]
|
34
|
+
y = x.map { |n| 1.1 * Math.exp(2.1 * n) }
|
35
|
+
|
36
|
+
assert_fit :exponential, x, y, 1.0, 1.1, 2.1
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_fit_exponential_noisy
|
40
|
+
x = [1.0, 1.9, 2.6, 3.4, 5.0]
|
41
|
+
y = [12, 10, 8.2, 6.9, 5.9]
|
42
|
+
|
43
|
+
# verified with Numbers and R
|
44
|
+
assert_fit :exponential, x, y, 0.95, 13.81148, -0.1820
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_fit_logarithmic_clean
|
48
|
+
x = [1.0, 2.0, 3.0, 4.0, 5.0]
|
49
|
+
y = x.map { |n| 1.1 + 2.1 * Math.log(n) }
|
50
|
+
|
51
|
+
assert_fit :logarithmic, x, y, 1.0, 1.1, 2.1
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_fit_logarithmic_noisy
|
55
|
+
x = [1.0, 2.0, 3.0, 4.0, 5.0]
|
56
|
+
# Generated with
|
57
|
+
# y = x.map { |n| jitter = 0.999 + 0.002 * rand; (Math.log(n) ) * jitter }
|
58
|
+
y = [0.0, 0.6935, 1.0995, 1.3873, 1.6097]
|
59
|
+
|
60
|
+
assert_fit :logarithmic, x, y, 0.95, 0, 1
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_fit_constant_clean
|
64
|
+
x = (1..5).to_a
|
65
|
+
y = [5.0, 5.0, 5.0, 5.0, 5.0]
|
66
|
+
|
67
|
+
assert_fit :linear, x, y, nil, 5.0, 0
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_fit_constant_noisy
|
71
|
+
x = (1..5).to_a
|
72
|
+
y = [1.0, 1.2, 1.0, 0.8, 1.0]
|
73
|
+
|
74
|
+
# verified in numbers and R
|
75
|
+
assert_fit :linear, x, y, nil, 1.12, -0.04
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_fit_linear_clean
|
79
|
+
# y = m * x + b where m = 2.2, b = 3.1
|
80
|
+
x = (1..5).to_a
|
81
|
+
y = x.map { |n| 2.2 * n + 3.1 }
|
82
|
+
|
83
|
+
assert_fit :linear, x, y, 1.0, 3.1, 2.2
|
84
|
+
end
|
85
|
+
|
86
|
+
def test_fit_linear_noisy
|
87
|
+
x = [ 60, 61, 62, 63, 65]
|
88
|
+
y = [3.1, 3.6, 3.8, 4.0, 4.1]
|
89
|
+
|
90
|
+
# verified in numbers and R
|
91
|
+
assert_fit :linear, x, y, 0.8315, -7.9635, 0.1878
|
92
|
+
end
|
93
|
+
|
94
|
+
def test_fit_power_clean
|
95
|
+
# y = A x ** B, where B = b and A = e ** a
|
96
|
+
# if, A = 1, B = 2, then
|
97
|
+
|
98
|
+
x = [1.0, 2.0, 3.0, 4.0, 5.0]
|
99
|
+
y = [1.0, 4.0, 9.0, 16.0, 25.0]
|
100
|
+
|
101
|
+
assert_fit :power, x, y, 1.0, 1.0, 2.0
|
102
|
+
end
|
103
|
+
|
104
|
+
def test_fit_power_noisy
|
105
|
+
# from www.engr.uidaho.edu/thompson/courses/ME330/lecture/least_squares.html
|
106
|
+
x = [10, 12, 15, 17, 20, 22, 25, 27, 30, 32, 35]
|
107
|
+
y = [95, 105, 125, 141, 173, 200, 253, 298, 385, 459, 602]
|
108
|
+
|
109
|
+
# verified in numbers
|
110
|
+
assert_fit :power, x, y, 0.90, 2.6217, 1.4556
|
111
|
+
|
112
|
+
# income to % of households below income amount
|
113
|
+
# http://library.wolfram.com/infocenter/Conferences/6461/PowerLaws.nb
|
114
|
+
x = [15_000, 25_000, 35_000, 50_000, 75_000, 100_000]
|
115
|
+
y = [0.154, 0.283, 0.402, 0.55, 0.733, 0.843]
|
116
|
+
|
117
|
+
# verified in numbers
|
118
|
+
assert_fit :power, x, y, 0.96, 3.119e-5, 0.8959
|
119
|
+
end
|
120
|
+
|
121
|
+
def assert_fit msg, x, y, fit, exp_a, exp_b
|
122
|
+
bench = Minitest::Benchmark.new :blah
|
123
|
+
|
124
|
+
a, b, rr = bench.send "fit_#{msg}", x, y
|
125
|
+
|
126
|
+
assert_operator rr, :>=, fit if fit
|
127
|
+
assert_in_delta exp_a, a
|
128
|
+
assert_in_delta exp_b, b
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
describe "my class Bench" do
|
133
|
+
klass = self
|
134
|
+
it "should provide bench methods" do
|
135
|
+
klass.must_respond_to :bench
|
136
|
+
end
|
137
|
+
end
|