mutant 0.9.8 → 0.9.13

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 (335) hide show
  1. checksums.yaml +4 -4
  2. data/lib/mutant.rb +5 -2
  3. data/lib/mutant/ast.rb +0 -9
  4. data/lib/mutant/ast/find_metaclass_containing.rb +48 -0
  5. data/lib/mutant/ast/meta/send.rb +0 -6
  6. data/lib/mutant/bootstrap.rb +14 -37
  7. data/lib/mutant/cli.rb +11 -49
  8. data/lib/mutant/config.rb +0 -8
  9. data/lib/mutant/context.rb +0 -3
  10. data/lib/mutant/env.rb +0 -6
  11. data/lib/mutant/expression/method.rb +6 -6
  12. data/lib/mutant/expression/methods.rb +6 -6
  13. data/lib/mutant/expression/parser.rb +0 -6
  14. data/lib/mutant/integration.rb +0 -18
  15. data/lib/mutant/isolation.rb +1 -1
  16. data/lib/mutant/isolation/fork.rb +2 -24
  17. data/lib/mutant/isolation/none.rb +1 -1
  18. data/lib/mutant/license.rb +11 -0
  19. data/lib/mutant/matcher.rb +0 -14
  20. data/lib/mutant/matcher/config.rb +2 -11
  21. data/lib/mutant/matcher/method.rb +0 -31
  22. data/lib/mutant/matcher/method/instance.rb +0 -8
  23. data/lib/mutant/matcher/method/metaclass.rb +86 -0
  24. data/lib/mutant/matcher/method/singleton.rb +0 -25
  25. data/lib/mutant/matcher/methods.rb +17 -28
  26. data/lib/mutant/matcher/namespace.rb +0 -10
  27. data/lib/mutant/matcher/scope.rb +2 -4
  28. data/lib/mutant/meta/example/dsl.rb +0 -21
  29. data/lib/mutant/meta/example/verification.rb +0 -20
  30. data/lib/mutant/minitest/coverage.rb +53 -0
  31. data/lib/mutant/mutation.rb +0 -3
  32. data/lib/mutant/mutator.rb +1 -29
  33. data/lib/mutant/mutator/node.rb +1 -66
  34. data/lib/mutant/mutator/node/and_asgn.rb +0 -3
  35. data/lib/mutant/mutator/node/argument.rb +0 -15
  36. data/lib/mutant/mutator/node/arguments.rb +0 -20
  37. data/lib/mutant/mutator/node/begin.rb +0 -3
  38. data/lib/mutant/mutator/node/binary.rb +0 -23
  39. data/lib/mutant/mutator/node/block.rb +0 -15
  40. data/lib/mutant/mutator/node/block_pass.rb +29 -0
  41. data/lib/mutant/mutator/node/break.rb +0 -3
  42. data/lib/mutant/mutator/node/case.rb +0 -9
  43. data/lib/mutant/mutator/node/class.rb +0 -3
  44. data/lib/mutant/mutator/node/conditional_loop.rb +0 -3
  45. data/lib/mutant/mutator/node/const.rb +0 -3
  46. data/lib/mutant/mutator/node/define.rb +0 -11
  47. data/lib/mutant/mutator/node/defined.rb +0 -3
  48. data/lib/mutant/mutator/node/dstr.rb +0 -3
  49. data/lib/mutant/mutator/node/dsym.rb +0 -3
  50. data/lib/mutant/mutator/node/generic.rb +0 -3
  51. data/lib/mutant/mutator/node/if.rb +0 -12
  52. data/lib/mutant/mutator/node/index.rb +0 -27
  53. data/lib/mutant/mutator/node/kwbegin.rb +0 -3
  54. data/lib/mutant/mutator/node/literal.rb +0 -3
  55. data/lib/mutant/mutator/node/literal/array.rb +0 -6
  56. data/lib/mutant/mutator/node/literal/boolean.rb +0 -4
  57. data/lib/mutant/mutator/node/literal/float.rb +0 -9
  58. data/lib/mutant/mutator/node/literal/hash.rb +0 -9
  59. data/lib/mutant/mutator/node/literal/integer.rb +0 -9
  60. data/lib/mutant/mutator/node/literal/nil.rb +0 -3
  61. data/lib/mutant/mutator/node/literal/range.rb +4 -7
  62. data/lib/mutant/mutator/node/literal/regex.rb +0 -6
  63. data/lib/mutant/mutator/node/literal/string.rb +0 -3
  64. data/lib/mutant/mutator/node/literal/symbol.rb +0 -3
  65. data/lib/mutant/mutator/node/masgn.rb +0 -3
  66. data/lib/mutant/mutator/node/match_current_line.rb +0 -3
  67. data/lib/mutant/mutator/node/mlhs.rb +0 -3
  68. data/lib/mutant/mutator/node/named_value/access.rb +2 -14
  69. data/lib/mutant/mutator/node/named_value/constant_assignment.rb +0 -9
  70. data/lib/mutant/mutator/node/named_value/variable_assignment.rb +0 -6
  71. data/lib/mutant/mutator/node/next.rb +0 -3
  72. data/lib/mutant/mutator/node/noop.rb +1 -4
  73. data/lib/mutant/mutator/node/nthref.rb +0 -3
  74. data/lib/mutant/mutator/node/op_asgn.rb +0 -3
  75. data/lib/mutant/mutator/node/or_asgn.rb +0 -3
  76. data/lib/mutant/mutator/node/procarg_zero.rb +0 -3
  77. data/lib/mutant/mutator/node/regopt.rb +0 -6
  78. data/lib/mutant/mutator/node/resbody.rb +0 -6
  79. data/lib/mutant/mutator/node/rescue.rb +2 -19
  80. data/lib/mutant/mutator/node/return.rb +0 -3
  81. data/lib/mutant/mutator/node/sclass.rb +20 -0
  82. data/lib/mutant/mutator/node/send.rb +26 -61
  83. data/lib/mutant/mutator/node/send/attribute_assignment.rb +0 -9
  84. data/lib/mutant/mutator/node/send/binary.rb +0 -11
  85. data/lib/mutant/mutator/node/send/conditional.rb +0 -3
  86. data/lib/mutant/mutator/node/splat.rb +0 -3
  87. data/lib/mutant/mutator/node/super.rb +0 -3
  88. data/lib/mutant/mutator/node/when.rb +0 -19
  89. data/lib/mutant/mutator/node/yield.rb +0 -3
  90. data/lib/mutant/mutator/node/zsuper.rb +0 -3
  91. data/lib/mutant/mutator/util/array.rb +0 -6
  92. data/lib/mutant/mutator/util/symbol.rb +0 -3
  93. data/lib/mutant/parallel.rb +0 -13
  94. data/lib/mutant/parallel/driver.rb +0 -10
  95. data/lib/mutant/parallel/worker.rb +0 -22
  96. data/lib/mutant/reporter/cli.rb +0 -5
  97. data/lib/mutant/reporter/cli/format.rb +0 -9
  98. data/lib/mutant/reporter/cli/printer.rb +2 -42
  99. data/lib/mutant/reporter/cli/printer/env_progress.rb +0 -15
  100. data/lib/mutant/reporter/cli/printer/isolation_result.rb +9 -21
  101. data/lib/mutant/reporter/cli/printer/mutation_progress_result.rb +0 -5
  102. data/lib/mutant/reporter/cli/printer/mutation_result.rb +1 -22
  103. data/lib/mutant/reporter/cli/printer/status_progressive.rb +0 -8
  104. data/lib/mutant/reporter/cli/printer/subject_progress.rb +0 -9
  105. data/lib/mutant/repository/diff.rb +1 -13
  106. data/lib/mutant/repository/diff/ranges.rb +0 -11
  107. data/lib/mutant/result.rb +0 -3
  108. data/lib/mutant/runner.rb +0 -18
  109. data/lib/mutant/runner/sink.rb +0 -5
  110. data/lib/mutant/subject.rb +0 -8
  111. data/lib/mutant/subject/method.rb +0 -3
  112. data/lib/mutant/subject/method/instance.rb +40 -6
  113. data/lib/mutant/subject/method/metaclass.rb +30 -0
  114. data/lib/mutant/transform.rb +0 -92
  115. data/lib/mutant/version.rb +1 -1
  116. data/lib/mutant/warnings.rb +0 -6
  117. data/lib/mutant/zombifier.rb +2 -34
  118. metadata +61 -333
  119. data/.github/workflows/ci.yml +0 -121
  120. data/.gitignore +0 -38
  121. data/.rspec +0 -5
  122. data/.rubocop.yml +0 -7
  123. data/Changelog.md +0 -75
  124. data/Gemfile +0 -7
  125. data/Gemfile.lock +0 -167
  126. data/Gemfile.shared +0 -10
  127. data/README.md +0 -138
  128. data/Rakefile +0 -5
  129. data/config/devtools.yml +0 -2
  130. data/config/reek.yml +0 -138
  131. data/config/rubocop.yml +0 -205
  132. data/config/yardstick.yml +0 -2
  133. data/docs/commercial-support.md +0 -14
  134. data/docs/concurrency.md +0 -39
  135. data/docs/incremental.md +0 -76
  136. data/docs/known-problems.md +0 -30
  137. data/docs/limitations.md +0 -50
  138. data/docs/mutant-minitest.md +0 -149
  139. data/docs/mutant-rspec.md +0 -130
  140. data/docs/nomenclature.md +0 -82
  141. data/docs/reading-reports.md +0 -74
  142. data/lib/mutant/color.rb +0 -43
  143. data/lib/mutant/diff.rb +0 -114
  144. data/meta/and.rb +0 -15
  145. data/meta/and_asgn.rb +0 -14
  146. data/meta/array.rb +0 -30
  147. data/meta/begin.rb +0 -23
  148. data/meta/block.rb +0 -202
  149. data/meta/block_pass.rb +0 -8
  150. data/meta/blockarg.rb +0 -10
  151. data/meta/break.rb +0 -10
  152. data/meta/case.rb +0 -223
  153. data/meta/casgn.rb +0 -28
  154. data/meta/cbase.rb +0 -8
  155. data/meta/class.rb +0 -12
  156. data/meta/const.rb +0 -17
  157. data/meta/csend.rb +0 -10
  158. data/meta/cvar.rb +0 -7
  159. data/meta/cvasgn.rb +0 -10
  160. data/meta/date.rb +0 -59
  161. data/meta/def.rb +0 -203
  162. data/meta/defined.rb +0 -9
  163. data/meta/dstr.rb +0 -13
  164. data/meta/dsym.rb +0 -14
  165. data/meta/ensure.rb +0 -9
  166. data/meta/false.rb +0 -8
  167. data/meta/file.rb +0 -5
  168. data/meta/float.rb +0 -37
  169. data/meta/gvar.rb +0 -7
  170. data/meta/gvasgn.rb +0 -10
  171. data/meta/hash.rb +0 -24
  172. data/meta/if.rb +0 -77
  173. data/meta/index.rb +0 -133
  174. data/meta/indexasgn.rb +0 -31
  175. data/meta/int.rb +0 -18
  176. data/meta/ivar.rb +0 -8
  177. data/meta/ivasgn.rb +0 -23
  178. data/meta/kwarg.rb +0 -10
  179. data/meta/kwbegin.rb +0 -9
  180. data/meta/kwoptarg.rb +0 -13
  181. data/meta/lambda.rb +0 -23
  182. data/meta/line.rb +0 -5
  183. data/meta/lvar.rb +0 -16
  184. data/meta/lvasgn.rb +0 -25
  185. data/meta/masgn.rb +0 -7
  186. data/meta/match_current_line.rb +0 -15
  187. data/meta/next.rb +0 -11
  188. data/meta/nil.rb +0 -5
  189. data/meta/nthref.rb +0 -14
  190. data/meta/op_assgn.rb +0 -17
  191. data/meta/or.rb +0 -15
  192. data/meta/or_asgn.rb +0 -50
  193. data/meta/range.rb +0 -39
  194. data/meta/redo.rb +0 -5
  195. data/meta/regexp.rb +0 -81
  196. data/meta/regopt.rb +0 -10
  197. data/meta/rescue.rb +0 -90
  198. data/meta/return.rb +0 -16
  199. data/meta/self.rb +0 -7
  200. data/meta/send.rb +0 -604
  201. data/meta/str.rb +0 -7
  202. data/meta/super.rb +0 -27
  203. data/meta/sym.rb +0 -8
  204. data/meta/true.rb +0 -8
  205. data/meta/until.rb +0 -17
  206. data/meta/while.rb +0 -26
  207. data/meta/yield.rb +0 -10
  208. data/mutant-minitest.gemspec +0 -22
  209. data/mutant-rspec.gemspec +0 -22
  210. data/mutant.gemspec +0 -41
  211. data/mutant.yml +0 -6
  212. data/spec/integration/mutant/corpus_spec.rb +0 -15
  213. data/spec/integration/mutant/isolation/fork_spec.rb +0 -28
  214. data/spec/integration/mutant/minitest_spec.rb +0 -11
  215. data/spec/integration/mutant/null_spec.rb +0 -16
  216. data/spec/integration/mutant/rspec_spec.rb +0 -15
  217. data/spec/integration/mutant/test_mutator_handles_types_spec.rb +0 -9
  218. data/spec/integrations.yml +0 -63
  219. data/spec/shared/base_behavior.rb +0 -45
  220. data/spec/shared/framework_integration_behavior.rb +0 -70
  221. data/spec/shared/method_matcher_behavior.rb +0 -47
  222. data/spec/spec_helper.rb +0 -75
  223. data/spec/support/corpus.rb +0 -318
  224. data/spec/support/file_system.rb +0 -62
  225. data/spec/support/ice_nine_config.rb +0 -10
  226. data/spec/support/ruby_vm.rb +0 -84
  227. data/spec/support/shared_context.rb +0 -169
  228. data/spec/support/test_app.rb +0 -7
  229. data/spec/support/warnings.yml +0 -6
  230. data/spec/support/xspec.rb +0 -183
  231. data/spec/unit/mutant/ast/meta/optarg_spec.rb +0 -24
  232. data/spec/unit/mutant/ast/meta/send/proc_predicate_spec.rb +0 -30
  233. data/spec/unit/mutant/ast/meta/send/receiver_possible_top_level_const_predicate_spec.rb +0 -39
  234. data/spec/unit/mutant/ast/meta/send_spec.rb +0 -42
  235. data/spec/unit/mutant/ast/named_children_spec.rb +0 -89
  236. data/spec/unit/mutant/ast/sexp_spec.rb +0 -38
  237. data/spec/unit/mutant/ast_spec.rb +0 -57
  238. data/spec/unit/mutant/bootstrap_spec.rb +0 -216
  239. data/spec/unit/mutant/cli_spec.rb +0 -305
  240. data/spec/unit/mutant/clock_monotonic_spec.rb +0 -52
  241. data/spec/unit/mutant/config_spec.rb +0 -126
  242. data/spec/unit/mutant/context_spec.rb +0 -111
  243. data/spec/unit/mutant/diff_spec.rb +0 -189
  244. data/spec/unit/mutant/env_spec.rb +0 -229
  245. data/spec/unit/mutant/expression/method_spec.rb +0 -62
  246. data/spec/unit/mutant/expression/methods_spec.rb +0 -61
  247. data/spec/unit/mutant/expression/namespace/exact_spec.rb +0 -28
  248. data/spec/unit/mutant/expression/namespace/recursive_spec.rb +0 -66
  249. data/spec/unit/mutant/expression/parser_spec.rb +0 -65
  250. data/spec/unit/mutant/expression_spec.rb +0 -45
  251. data/spec/unit/mutant/integration/rspec_spec.rb +0 -201
  252. data/spec/unit/mutant/integration_spec.rb +0 -150
  253. data/spec/unit/mutant/isolation/fork_spec.rb +0 -309
  254. data/spec/unit/mutant/isolation/none_spec.rb +0 -23
  255. data/spec/unit/mutant/isolation/result_spec.rb +0 -73
  256. data/spec/unit/mutant/license_spec.rb +0 -293
  257. data/spec/unit/mutant/loader_spec.rb +0 -79
  258. data/spec/unit/mutant/matcher/chain_spec.rb +0 -26
  259. data/spec/unit/mutant/matcher/compiler_spec.rb +0 -0
  260. data/spec/unit/mutant/matcher/config_spec.rb +0 -47
  261. data/spec/unit/mutant/matcher/filter_spec.rb +0 -22
  262. data/spec/unit/mutant/matcher/method/instance_spec.rb +0 -164
  263. data/spec/unit/mutant/matcher/method/singleton_spec.rb +0 -90
  264. data/spec/unit/mutant/matcher/methods/instance_spec.rb +0 -54
  265. data/spec/unit/mutant/matcher/methods/singleton_spec.rb +0 -51
  266. data/spec/unit/mutant/matcher/namespace_spec.rb +0 -37
  267. data/spec/unit/mutant/matcher/null_spec.rb +0 -12
  268. data/spec/unit/mutant/matcher/scope_spec.rb +0 -35
  269. data/spec/unit/mutant/matcher/static_spec.rb +0 -13
  270. data/spec/unit/mutant/matcher_spec.rb +0 -102
  271. data/spec/unit/mutant/meta/example/dsl_spec.rb +0 -108
  272. data/spec/unit/mutant/meta/example/verification_spec.rb +0 -154
  273. data/spec/unit/mutant/meta/example_spec.rb +0 -34
  274. data/spec/unit/mutant/mutation_spec.rb +0 -140
  275. data/spec/unit/mutant/mutator/node_spec.rb +0 -52
  276. data/spec/unit/mutant/mutator_spec.rb +0 -21
  277. data/spec/unit/mutant/parallel/driver_spec.rb +0 -126
  278. data/spec/unit/mutant/parallel/source/array_spec.rb +0 -57
  279. data/spec/unit/mutant/parallel/worker_spec.rb +0 -206
  280. data/spec/unit/mutant/parallel_spec.rb +0 -115
  281. data/spec/unit/mutant/parser_spec.rb +0 -26
  282. data/spec/unit/mutant/range_spec.rb +0 -141
  283. data/spec/unit/mutant/registry_spec.rb +0 -74
  284. data/spec/unit/mutant/reporter/cli/printer/config_spec.rb +0 -17
  285. data/spec/unit/mutant/reporter/cli/printer/env_progress_spec.rb +0 -85
  286. data/spec/unit/mutant/reporter/cli/printer/env_result_spec.rb +0 -45
  287. data/spec/unit/mutant/reporter/cli/printer/isolation_result_spec.rb +0 -132
  288. data/spec/unit/mutant/reporter/cli/printer/mutation_progress_result_spec.rb +0 -25
  289. data/spec/unit/mutant/reporter/cli/printer/mutation_result_spec.rb +0 -153
  290. data/spec/unit/mutant/reporter/cli/printer/status_progressive_spec.rb +0 -45
  291. data/spec/unit/mutant/reporter/cli/printer/subject_progress_spec.rb +0 -36
  292. data/spec/unit/mutant/reporter/cli/printer/subject_result_spec.rb +0 -44
  293. data/spec/unit/mutant/reporter/cli/printer/test_result_spec.rb +0 -16
  294. data/spec/unit/mutant/reporter/cli/printer_spec.rb +0 -163
  295. data/spec/unit/mutant/reporter/cli_spec.rb +0 -137
  296. data/spec/unit/mutant/reporter/null_spec.rb +0 -14
  297. data/spec/unit/mutant/reporter/sequence_spec.rb +0 -31
  298. data/spec/unit/mutant/repository/diff/ranges_spec.rb +0 -180
  299. data/spec/unit/mutant/repository/diff_spec.rb +0 -122
  300. data/spec/unit/mutant/repository/subject_filter_spec.rb +0 -30
  301. data/spec/unit/mutant/require_highjack_spec.rb +0 -73
  302. data/spec/unit/mutant/result/class_methods_spec.rb +0 -51
  303. data/spec/unit/mutant/result/env_spec.rb +0 -161
  304. data/spec/unit/mutant/result/mutation_spec.rb +0 -70
  305. data/spec/unit/mutant/result/subject_spec.rb +0 -111
  306. data/spec/unit/mutant/result/test_spec.rb +0 -14
  307. data/spec/unit/mutant/result_spec.rb +0 -33
  308. data/spec/unit/mutant/runner/sink_spec.rb +0 -174
  309. data/spec/unit/mutant/runner_spec.rb +0 -121
  310. data/spec/unit/mutant/selector/expression_spec.rb +0 -62
  311. data/spec/unit/mutant/selector/null_spec.rb +0 -17
  312. data/spec/unit/mutant/subject/method/instance_spec.rb +0 -181
  313. data/spec/unit/mutant/subject/method/singleton_spec.rb +0 -61
  314. data/spec/unit/mutant/subject_spec.rb +0 -93
  315. data/spec/unit/mutant/transform/array_spec.rb +0 -92
  316. data/spec/unit/mutant/transform/bool_spec.rb +0 -63
  317. data/spec/unit/mutant/transform/error_spec.rb +0 -132
  318. data/spec/unit/mutant/transform/exception_spec.rb +0 -44
  319. data/spec/unit/mutant/transform/hash_spec.rb +0 -236
  320. data/spec/unit/mutant/transform/index_spec.rb +0 -92
  321. data/spec/unit/mutant/transform/named_spec.rb +0 -49
  322. data/spec/unit/mutant/transform/primitive_spec.rb +0 -56
  323. data/spec/unit/mutant/transform/sequence_spec.rb +0 -98
  324. data/spec/unit/mutant/util/one_spec.rb +0 -22
  325. data/spec/unit/mutant/warnings_spec.rb +0 -89
  326. data/spec/unit/mutant/world_spec.rb +0 -63
  327. data/spec/unit/mutant/zombifier_spec.rb +0 -122
  328. data/test_app/.rspec +0 -1
  329. data/test_app/Gemfile.minitest +0 -4
  330. data/test_app/Gemfile.rspec3.8 +0 -7
  331. data/test_app/lib/test_app.rb +0 -109
  332. data/test_app/lib/test_app/literal.rb +0 -35
  333. data/test_app/spec/spec_helper.rb +0 -9
  334. data/test_app/spec/unit/test_app/literal_spec.rb +0 -20
  335. data/test_app/test/unit/test_app/literal_test.rb +0 -16
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :block_pass do
4
- source 'foo(&bar)'
5
-
6
- singleton_mutations
7
- mutation 'foo'
8
- end
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :blockarg do
4
- source 'foo { |&bar| }'
5
-
6
- singleton_mutations
7
- mutation 'foo { |&bar| raise }'
8
- mutation 'foo {}'
9
- mutation 'foo'
10
- end
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :break do
4
- source 'break true'
5
-
6
- singleton_mutations
7
- mutation 'break false'
8
- mutation 'break nil'
9
- mutation 'break'
10
- end
@@ -1,223 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :case do
4
- source <<-RUBY
5
- case
6
- when true
7
- else
8
- end
9
- RUBY
10
-
11
- singleton_mutations
12
-
13
- mutation <<-RUBY
14
- case
15
- when true
16
- raise
17
- else
18
- end
19
- RUBY
20
- mutation <<-RUBY
21
- case
22
- when false
23
- else
24
- end
25
- RUBY
26
- mutation <<-RUBY
27
- case
28
- when nil
29
- else
30
- end
31
- RUBY
32
- end
33
-
34
- # rubocop:disable Metrics/BlockLength
35
- Mutant::Meta::Example.add :case do
36
- source <<-RUBY
37
- case condition
38
- when A
39
- when B, C
40
- C
41
- else
42
- D
43
- end
44
- RUBY
45
-
46
- singleton_mutations
47
-
48
- mutation <<-RUBY
49
- case nil
50
- when A
51
- when B, C
52
- C
53
- else
54
- D
55
- end
56
- RUBY
57
-
58
- mutation <<-RUBY
59
- case self
60
- when A
61
- when B, C
62
- C
63
- else
64
- D
65
- end
66
- RUBY
67
-
68
- mutation <<-RUBY
69
- case condition
70
- when A
71
- raise
72
- when B, C
73
- C
74
- else
75
- D
76
- end
77
- RUBY
78
-
79
- mutation <<-RUBY
80
- case condition
81
- when nil
82
- when B, C
83
- C
84
- else
85
- D
86
- end
87
- RUBY
88
-
89
- mutation <<-RUBY
90
- case condition
91
- when self
92
- when B, C
93
- C
94
- else
95
- D
96
- end
97
- RUBY
98
-
99
- mutation <<-RUBY
100
- case condition
101
- when B, C
102
- C
103
- else
104
- D
105
- end
106
- RUBY
107
-
108
- mutation <<-RUBY
109
- case condition
110
- when A
111
- when B, C
112
- nil
113
- else
114
- D
115
- end
116
- RUBY
117
-
118
- mutation <<-RUBY
119
- case condition
120
- when A
121
- when B, C
122
- self
123
- else
124
- D
125
- end
126
- RUBY
127
-
128
- mutation <<-RUBY
129
- case condition
130
- when A
131
- when C
132
- C
133
- else
134
- D
135
- end
136
- RUBY
137
-
138
- mutation <<-RUBY
139
- case condition
140
- when A
141
- when nil, C
142
- C
143
- else
144
- D
145
- end
146
- RUBY
147
-
148
- mutation <<-RUBY
149
- case condition
150
- when A
151
- when self, C
152
- C
153
- else
154
- D
155
- end
156
- RUBY
157
-
158
- mutation <<-RUBY
159
- case condition
160
- when A
161
- when B
162
- C
163
- else
164
- D
165
- end
166
- RUBY
167
-
168
- mutation <<-RUBY
169
- case condition
170
- when A
171
- when B, nil
172
- C
173
- else
174
- D
175
- end
176
- RUBY
177
-
178
- mutation <<-RUBY
179
- case condition
180
- when A
181
- when B, self
182
- C
183
- else
184
- D
185
- end
186
- RUBY
187
-
188
- mutation <<-RUBY
189
- case condition
190
- when A
191
- else
192
- D
193
- end
194
- RUBY
195
-
196
- mutation <<-RUBY
197
- case condition
198
- when A
199
- when B, C
200
- C
201
- else
202
- nil
203
- end
204
- RUBY
205
-
206
- mutation <<-RUBY
207
- case condition
208
- when A
209
- when B, C
210
- C
211
- else
212
- self
213
- end
214
- RUBY
215
-
216
- mutation <<-RUBY
217
- case condition
218
- when A
219
- when B, C
220
- C
221
- end
222
- RUBY
223
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :casgn do
4
- source 'A = true'
5
-
6
- mutation 'A__MUTANT__ = true'
7
- mutation 'A = false'
8
- mutation 'A = nil'
9
- mutation 'remove_const :A'
10
- end
11
-
12
- Mutant::Meta::Example.add :casgn do
13
- source 'self::A = true'
14
-
15
- mutation 'self::A__MUTANT__ = true'
16
- mutation 'self::A = false'
17
- mutation 'self::A = nil'
18
- mutation 'self.remove_const :A'
19
- end
20
-
21
- Mutant::Meta::Example.add :casgn do
22
- source 'A &&= true'
23
-
24
- singleton_mutations
25
- mutation 'A__MUTANT__ &&= true'
26
- mutation 'A &&= false'
27
- mutation 'A &&= nil'
28
- end
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :cbase do
4
- source '::A'
5
-
6
- singleton_mutations
7
- mutation 'A'
8
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :class do
4
- source 'class Foo; bar; end'
5
-
6
- mutation 'class Foo; nil; end'
7
- mutation 'class Foo; self; end'
8
- end
9
-
10
- Mutant::Meta::Example.add :class do
11
- source 'class Foo; end'
12
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :const do
4
- source 'A::B::C'
5
-
6
- singleton_mutations
7
- mutation 'B::C'
8
- mutation 'C'
9
- end
10
-
11
- Mutant::Meta::Example.add :const do
12
- source 'A.foo'
13
-
14
- singleton_mutations
15
- mutation 'A'
16
- mutation 'self.foo'
17
- end
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :csend do
4
- source 'a&.b'
5
-
6
- singleton_mutations
7
- mutation 'a.b'
8
- mutation 'self&.b'
9
- mutation 'a'
10
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :cvar do
4
- source '@@a'
5
-
6
- singleton_mutations
7
- end
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :cvasgn do
4
- source '@@a = true'
5
-
6
- singleton_mutations
7
- mutation '@@a__mutant__ = true'
8
- mutation '@@a = false'
9
- mutation '@@a = nil'
10
- end
@@ -1,59 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :send do
4
- source 'Date.parse(nil)'
5
-
6
- singleton_mutations
7
- mutation 'Date.parse'
8
- mutation 'self.parse(nil)'
9
- mutation 'Date'
10
- mutation 'Date.jd(nil)'
11
- mutation 'Date.civil(nil)'
12
- mutation 'Date.strptime(nil)'
13
- mutation 'Date.iso8601(nil)'
14
- mutation 'Date.rfc3339(nil)'
15
- mutation 'Date.xmlschema(nil)'
16
- mutation 'Date.rfc2822(nil)'
17
- mutation 'Date.rfc822(nil)'
18
- mutation 'Date.httpdate(nil)'
19
- mutation 'Date.jisx0301(nil)'
20
- end
21
-
22
- Mutant::Meta::Example.add :send do
23
- source '::Date.parse(nil)'
24
-
25
- singleton_mutations
26
- mutation '::Date.parse'
27
- mutation 'Date.parse(nil)'
28
- mutation 'self.parse(nil)'
29
- mutation '::Date'
30
- mutation '::Date.jd(nil)'
31
- mutation '::Date.civil(nil)'
32
- mutation '::Date.strptime(nil)'
33
- mutation '::Date.iso8601(nil)'
34
- mutation '::Date.rfc3339(nil)'
35
- mutation '::Date.xmlschema(nil)'
36
- mutation '::Date.rfc2822(nil)'
37
- mutation '::Date.rfc822(nil)'
38
- mutation '::Date.httpdate(nil)'
39
- mutation '::Date.jisx0301(nil)'
40
- end
41
-
42
- Mutant::Meta::Example.add :send do
43
- source 'Date.iso8601(nil)'
44
-
45
- singleton_mutations
46
- mutation 'Date.iso8601'
47
- mutation 'self.iso8601(nil)'
48
- mutation 'Date'
49
- end
50
-
51
- Mutant::Meta::Example.add :send do
52
- source 'Foo::Date.parse(nil)'
53
-
54
- singleton_mutations
55
- mutation 'Foo::Date.parse'
56
- mutation 'Foo::Date'
57
- mutation 'Date.parse(nil)'
58
- mutation 'self.parse(nil)'
59
- end
@@ -1,203 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :def do
4
- source 'def foo; end'
5
-
6
- mutation 'def foo; raise; end'
7
- mutation 'def foo; super; end'
8
- end
9
-
10
- Mutant::Meta::Example.add :def do
11
- source 'def foo; foo; rescue; end'
12
-
13
- mutation 'def foo; raise; end'
14
- mutation 'def foo; nil; rescue; end'
15
- mutation 'def foo; self; rescue; end'
16
- mutation 'def foo; end'
17
- mutation 'def foo; super; end'
18
-
19
- # Promote rescue resbody bodies
20
- mutation 'def foo; foo; end'
21
- end
22
-
23
- Mutant::Meta::Example.add :def do
24
- source 'def a; foo; rescue; bar; else; baz; end'
25
-
26
- # Mutate all bodies
27
- mutation 'def a; nil; rescue; bar; else; baz; end'
28
- mutation 'def a; self; rescue; bar; else; baz; end'
29
- mutation 'def a; foo; rescue; nil; else; baz; end'
30
- mutation 'def a; foo; rescue; self; else; baz; end'
31
- mutation 'def a; foo; rescue; bar; else; nil; end'
32
- mutation 'def a; foo; rescue; bar; else; self; end'
33
-
34
- # Promote and concat rescue resbody bodies
35
- mutation 'def a; foo; bar; end'
36
-
37
- # Promote and concat else body
38
- mutation 'def a; foo; baz; end'
39
-
40
- # Promote rescue body
41
- mutation 'def a; foo; end'
42
-
43
- # Empty body
44
- mutation 'def a; end'
45
-
46
- # Failing body
47
- mutation 'def a; raise; end'
48
-
49
- # Superclass implementation
50
- mutation 'def a; super; end'
51
- end
52
-
53
- Mutant::Meta::Example.add :def do
54
- source 'def foo; true; false; end'
55
-
56
- # Mutation of each statement in block
57
- mutation 'def foo; true; true; end'
58
- mutation 'def foo; false; false; end'
59
- mutation 'def foo; true; nil; end'
60
- mutation 'def foo; nil; false; end'
61
-
62
- # Remove statement in block
63
- mutation 'def foo; true; end'
64
- mutation 'def foo; false; end'
65
-
66
- # Remove all statements
67
- mutation 'def foo; end'
68
-
69
- mutation 'def foo; raise; end'
70
-
71
- mutation 'def foo; super; end'
72
- end
73
-
74
- Mutant::Meta::Example.add :def do
75
- source 'def foo(a, b); end'
76
-
77
- # Deletion of each argument
78
- mutation 'def foo(a); end'
79
- mutation 'def foo(b); end'
80
-
81
- # Deletion of all arguments
82
- mutation 'def foo; end'
83
-
84
- # Rename each argument
85
- mutation 'def foo(_a, b); end'
86
- mutation 'def foo(a, _b); end'
87
-
88
- # Mutation of body
89
- mutation 'def foo(a, b); raise; end'
90
- mutation 'def foo(a, b); super; end'
91
- end
92
-
93
- Mutant::Meta::Example.add :def do
94
- source 'def foo(a, b = nil); true; end'
95
-
96
- mutation 'def foo(_a, b = nil); true; end'
97
- mutation 'def foo(a, b = nil); end'
98
- mutation 'def foo; true; end'
99
- mutation 'def foo(a, b = nil); raise; end'
100
- mutation 'def foo(a, b = nil); nil; end'
101
- mutation 'def foo(a, b = nil); false; end'
102
- mutation 'def foo(a); true; end'
103
- mutation 'def foo(a, b = nil); b = nil; true; end'
104
- mutation 'def foo(b = nil); true; end'
105
- mutation 'def foo(a, _b = nil); true; end'
106
- mutation 'def foo(a, b); true; end'
107
- mutation 'def foo(a, b = nil); super; end'
108
- end
109
-
110
- Mutant::Meta::Example.add :def, :arg do
111
- source 'def foo(_unused); end'
112
-
113
- mutation 'def foo(_unused); raise; end'
114
- mutation 'def foo; end'
115
- mutation 'def foo(_unused); super; end'
116
- end
117
-
118
- Mutant::Meta::Example.add :def do
119
- source 'def foo(_unused = true); end'
120
-
121
- mutation 'def foo(_unused = nil); end'
122
- mutation 'def foo(_unused = false); end'
123
- mutation 'def foo(_unused = true); raise; end'
124
- mutation 'def foo(_unused); end'
125
- mutation 'def foo; end'
126
- mutation 'def foo(_unused = true); super; end'
127
- end
128
-
129
- Mutant::Meta::Example.add :def do
130
- source 'def foo(a = 0, b = 0); end'
131
- mutation 'def foo(a = 0, _b = 0); end'
132
- mutation 'def foo(_a = 0, b = 0); end'
133
- mutation 'def foo(a = 0, b = 1); end'
134
- mutation 'def foo(a = 0, b = -1); end'
135
- mutation 'def foo(a = 0, b = self); end'
136
- mutation 'def foo(a = 0, b = nil); end'
137
- mutation 'def foo(a = -1, b = 0); end'
138
- mutation 'def foo(a = self, b = 0); end'
139
- mutation 'def foo(a = nil, b = 0); end'
140
- mutation 'def foo(a = 1, b = 0); end'
141
- mutation 'def foo(a = 0); end'
142
- mutation 'def foo(b = 0); end'
143
- mutation 'def foo(a, b = 0); end'
144
- mutation 'def foo; end'
145
- mutation 'def foo(a = 0, b = 0); a = 0; end'
146
- mutation 'def foo(a = 0, b = 0); b = 0; end'
147
- mutation 'def foo(a = 0, b = 0); raise; end'
148
- mutation 'def foo(a = 0, b = 0); super; end'
149
- end
150
-
151
- Mutant::Meta::Example.add :def do
152
- source 'def foo(a = true); end'
153
-
154
- mutation 'def foo(a); end'
155
- mutation 'def foo(); end'
156
- mutation 'def foo(a = false); end'
157
- mutation 'def foo(a = nil); end'
158
- mutation 'def foo(_a = true); end'
159
- mutation 'def foo(a = true); raise; end'
160
- mutation 'def foo(a = true); a = true; end'
161
- mutation 'def foo(a = true); super; end'
162
- end
163
-
164
- Mutant::Meta::Example.add :def do
165
- source 'def self.foo; true; false; end'
166
-
167
- # Body presence mutation
168
- mutation 'def self.foo; false; false; end'
169
- mutation 'def self.foo; true; true; end'
170
- mutation 'def self.foo; true; nil; end'
171
- mutation 'def self.foo; nil; false; end'
172
-
173
- # Body presence mutation
174
- mutation 'def self.foo; true; end'
175
- mutation 'def self.foo; false; end'
176
-
177
- # Remove all statements
178
- mutation 'def self.foo; end'
179
-
180
- mutation 'def self.foo; raise; end'
181
-
182
- mutation 'def self.foo; super; end'
183
- end
184
-
185
- Mutant::Meta::Example.add :def do
186
-
187
- source 'def self.foo(a, b); end'
188
-
189
- # Deletion of each argument
190
- mutation 'def self.foo(a); end'
191
- mutation 'def self.foo(b); end'
192
-
193
- # Deletion of all arguments
194
- mutation 'def self.foo; end'
195
-
196
- # Rename each argument
197
- mutation 'def self.foo(_a, b); end'
198
- mutation 'def self.foo(a, _b); end'
199
-
200
- # Mutation of body
201
- mutation 'def self.foo(a, b); raise; end'
202
- mutation 'def self.foo(a, b); super; end'
203
- end