mutant 0.9.7 → 0.9.12

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 (336) 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 +0 -36
  7. data/lib/mutant/cli.rb +5 -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 +0 -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 -74
  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/registry.rb +2 -7
  97. data/lib/mutant/reporter/cli.rb +0 -5
  98. data/lib/mutant/reporter/cli/format.rb +0 -9
  99. data/lib/mutant/reporter/cli/printer.rb +2 -42
  100. data/lib/mutant/reporter/cli/printer/env_progress.rb +0 -15
  101. data/lib/mutant/reporter/cli/printer/isolation_result.rb +0 -18
  102. data/lib/mutant/reporter/cli/printer/mutation_progress_result.rb +0 -5
  103. data/lib/mutant/reporter/cli/printer/mutation_result.rb +1 -22
  104. data/lib/mutant/reporter/cli/printer/status_progressive.rb +0 -8
  105. data/lib/mutant/reporter/cli/printer/subject_progress.rb +0 -9
  106. data/lib/mutant/repository/diff.rb +1 -13
  107. data/lib/mutant/repository/diff/ranges.rb +0 -11
  108. data/lib/mutant/result.rb +0 -3
  109. data/lib/mutant/runner.rb +0 -18
  110. data/lib/mutant/runner/sink.rb +0 -5
  111. data/lib/mutant/subject.rb +0 -8
  112. data/lib/mutant/subject/method.rb +0 -3
  113. data/lib/mutant/subject/method/instance.rb +40 -6
  114. data/lib/mutant/subject/method/metaclass.rb +30 -0
  115. data/lib/mutant/transform.rb +0 -92
  116. data/lib/mutant/version.rb +1 -1
  117. data/lib/mutant/warnings.rb +0 -6
  118. data/lib/mutant/zombifier.rb +2 -34
  119. metadata +61 -333
  120. data/.circleci/config.yml +0 -53
  121. data/.gitignore +0 -38
  122. data/.rspec +0 -5
  123. data/.rubocop.yml +0 -7
  124. data/Changelog.md +0 -71
  125. data/Gemfile +0 -14
  126. data/Gemfile.lock +0 -167
  127. data/Gemfile.shared +0 -3
  128. data/README.md +0 -138
  129. data/Rakefile +0 -5
  130. data/config/devtools.yml +0 -2
  131. data/config/reek.yml +0 -138
  132. data/config/rubocop.yml +0 -205
  133. data/config/yardstick.yml +0 -2
  134. data/docs/commercial-support.md +0 -14
  135. data/docs/concurrency.md +0 -39
  136. data/docs/incremental.md +0 -76
  137. data/docs/known-problems.md +0 -30
  138. data/docs/limitations.md +0 -50
  139. data/docs/mutant-minitest.md +0 -149
  140. data/docs/mutant-rspec.md +0 -130
  141. data/docs/nomenclature.md +0 -82
  142. data/docs/reading-reports.md +0 -74
  143. data/lib/mutant/color.rb +0 -43
  144. data/lib/mutant/diff.rb +0 -114
  145. data/meta/and.rb +0 -15
  146. data/meta/and_asgn.rb +0 -14
  147. data/meta/array.rb +0 -30
  148. data/meta/begin.rb +0 -23
  149. data/meta/block.rb +0 -202
  150. data/meta/block_pass.rb +0 -8
  151. data/meta/blockarg.rb +0 -10
  152. data/meta/break.rb +0 -10
  153. data/meta/case.rb +0 -223
  154. data/meta/casgn.rb +0 -28
  155. data/meta/cbase.rb +0 -8
  156. data/meta/class.rb +0 -12
  157. data/meta/const.rb +0 -17
  158. data/meta/csend.rb +0 -10
  159. data/meta/cvar.rb +0 -7
  160. data/meta/cvasgn.rb +0 -10
  161. data/meta/date.rb +0 -59
  162. data/meta/def.rb +0 -203
  163. data/meta/defined.rb +0 -9
  164. data/meta/dstr.rb +0 -13
  165. data/meta/dsym.rb +0 -14
  166. data/meta/ensure.rb +0 -9
  167. data/meta/false.rb +0 -8
  168. data/meta/file.rb +0 -5
  169. data/meta/float.rb +0 -37
  170. data/meta/gvar.rb +0 -7
  171. data/meta/gvasgn.rb +0 -10
  172. data/meta/hash.rb +0 -24
  173. data/meta/if.rb +0 -77
  174. data/meta/index.rb +0 -133
  175. data/meta/indexasgn.rb +0 -31
  176. data/meta/int.rb +0 -18
  177. data/meta/ivar.rb +0 -8
  178. data/meta/ivasgn.rb +0 -23
  179. data/meta/kwarg.rb +0 -10
  180. data/meta/kwbegin.rb +0 -9
  181. data/meta/kwoptarg.rb +0 -13
  182. data/meta/lambda.rb +0 -23
  183. data/meta/line.rb +0 -5
  184. data/meta/lvar.rb +0 -16
  185. data/meta/lvasgn.rb +0 -25
  186. data/meta/masgn.rb +0 -7
  187. data/meta/match_current_line.rb +0 -15
  188. data/meta/next.rb +0 -11
  189. data/meta/nil.rb +0 -5
  190. data/meta/nthref.rb +0 -14
  191. data/meta/op_assgn.rb +0 -17
  192. data/meta/or.rb +0 -15
  193. data/meta/or_asgn.rb +0 -50
  194. data/meta/range.rb +0 -39
  195. data/meta/redo.rb +0 -5
  196. data/meta/regexp.rb +0 -81
  197. data/meta/regopt.rb +0 -10
  198. data/meta/rescue.rb +0 -90
  199. data/meta/return.rb +0 -16
  200. data/meta/self.rb +0 -7
  201. data/meta/send.rb +0 -604
  202. data/meta/str.rb +0 -7
  203. data/meta/super.rb +0 -27
  204. data/meta/sym.rb +0 -8
  205. data/meta/true.rb +0 -8
  206. data/meta/until.rb +0 -17
  207. data/meta/while.rb +0 -26
  208. data/meta/yield.rb +0 -10
  209. data/mutant-minitest.gemspec +0 -22
  210. data/mutant-rspec.gemspec +0 -22
  211. data/mutant.gemspec +0 -41
  212. data/mutant.yml +0 -6
  213. data/spec/integration/mutant/corpus_spec.rb +0 -15
  214. data/spec/integration/mutant/isolation/fork_spec.rb +0 -28
  215. data/spec/integration/mutant/minitest_spec.rb +0 -11
  216. data/spec/integration/mutant/null_spec.rb +0 -16
  217. data/spec/integration/mutant/rspec_spec.rb +0 -15
  218. data/spec/integration/mutant/test_mutator_handles_types_spec.rb +0 -9
  219. data/spec/integrations.yml +0 -63
  220. data/spec/shared/base_behavior.rb +0 -45
  221. data/spec/shared/framework_integration_behavior.rb +0 -70
  222. data/spec/shared/method_matcher_behavior.rb +0 -47
  223. data/spec/spec_helper.rb +0 -75
  224. data/spec/support/corpus.rb +0 -318
  225. data/spec/support/file_system.rb +0 -62
  226. data/spec/support/ice_nine_config.rb +0 -10
  227. data/spec/support/ruby_vm.rb +0 -84
  228. data/spec/support/shared_context.rb +0 -169
  229. data/spec/support/test_app.rb +0 -7
  230. data/spec/support/warnings.yml +0 -6
  231. data/spec/support/xspec.rb +0 -183
  232. data/spec/unit/mutant/ast/meta/optarg_spec.rb +0 -24
  233. data/spec/unit/mutant/ast/meta/send/proc_predicate_spec.rb +0 -30
  234. data/spec/unit/mutant/ast/meta/send/receiver_possible_top_level_const_predicate_spec.rb +0 -39
  235. data/spec/unit/mutant/ast/meta/send_spec.rb +0 -42
  236. data/spec/unit/mutant/ast/named_children_spec.rb +0 -89
  237. data/spec/unit/mutant/ast/sexp_spec.rb +0 -38
  238. data/spec/unit/mutant/ast_spec.rb +0 -57
  239. data/spec/unit/mutant/bootstrap_spec.rb +0 -216
  240. data/spec/unit/mutant/cli_spec.rb +0 -305
  241. data/spec/unit/mutant/clock_monotonic_spec.rb +0 -52
  242. data/spec/unit/mutant/config_spec.rb +0 -126
  243. data/spec/unit/mutant/context_spec.rb +0 -111
  244. data/spec/unit/mutant/diff_spec.rb +0 -189
  245. data/spec/unit/mutant/env_spec.rb +0 -229
  246. data/spec/unit/mutant/expression/method_spec.rb +0 -62
  247. data/spec/unit/mutant/expression/methods_spec.rb +0 -61
  248. data/spec/unit/mutant/expression/namespace/exact_spec.rb +0 -28
  249. data/spec/unit/mutant/expression/namespace/recursive_spec.rb +0 -66
  250. data/spec/unit/mutant/expression/parser_spec.rb +0 -65
  251. data/spec/unit/mutant/expression_spec.rb +0 -45
  252. data/spec/unit/mutant/integration/rspec_spec.rb +0 -201
  253. data/spec/unit/mutant/integration_spec.rb +0 -150
  254. data/spec/unit/mutant/isolation/fork_spec.rb +0 -309
  255. data/spec/unit/mutant/isolation/none_spec.rb +0 -23
  256. data/spec/unit/mutant/isolation/result_spec.rb +0 -73
  257. data/spec/unit/mutant/license_spec.rb +0 -293
  258. data/spec/unit/mutant/loader_spec.rb +0 -79
  259. data/spec/unit/mutant/matcher/chain_spec.rb +0 -26
  260. data/spec/unit/mutant/matcher/compiler_spec.rb +0 -0
  261. data/spec/unit/mutant/matcher/config_spec.rb +0 -47
  262. data/spec/unit/mutant/matcher/filter_spec.rb +0 -22
  263. data/spec/unit/mutant/matcher/method/instance_spec.rb +0 -164
  264. data/spec/unit/mutant/matcher/method/singleton_spec.rb +0 -90
  265. data/spec/unit/mutant/matcher/methods/instance_spec.rb +0 -54
  266. data/spec/unit/mutant/matcher/methods/singleton_spec.rb +0 -51
  267. data/spec/unit/mutant/matcher/namespace_spec.rb +0 -37
  268. data/spec/unit/mutant/matcher/null_spec.rb +0 -12
  269. data/spec/unit/mutant/matcher/scope_spec.rb +0 -35
  270. data/spec/unit/mutant/matcher/static_spec.rb +0 -13
  271. data/spec/unit/mutant/matcher_spec.rb +0 -102
  272. data/spec/unit/mutant/meta/example/dsl_spec.rb +0 -108
  273. data/spec/unit/mutant/meta/example/verification_spec.rb +0 -154
  274. data/spec/unit/mutant/meta/example_spec.rb +0 -34
  275. data/spec/unit/mutant/mutation_spec.rb +0 -140
  276. data/spec/unit/mutant/mutator/node_spec.rb +0 -52
  277. data/spec/unit/mutant/mutator_spec.rb +0 -21
  278. data/spec/unit/mutant/parallel/driver_spec.rb +0 -126
  279. data/spec/unit/mutant/parallel/source/array_spec.rb +0 -57
  280. data/spec/unit/mutant/parallel/worker_spec.rb +0 -206
  281. data/spec/unit/mutant/parallel_spec.rb +0 -115
  282. data/spec/unit/mutant/parser_spec.rb +0 -26
  283. data/spec/unit/mutant/range_spec.rb +0 -141
  284. data/spec/unit/mutant/registry_spec.rb +0 -47
  285. data/spec/unit/mutant/reporter/cli/printer/config_spec.rb +0 -17
  286. data/spec/unit/mutant/reporter/cli/printer/env_progress_spec.rb +0 -85
  287. data/spec/unit/mutant/reporter/cli/printer/env_result_spec.rb +0 -45
  288. data/spec/unit/mutant/reporter/cli/printer/isolation_result_spec.rb +0 -132
  289. data/spec/unit/mutant/reporter/cli/printer/mutation_progress_result_spec.rb +0 -25
  290. data/spec/unit/mutant/reporter/cli/printer/mutation_result_spec.rb +0 -153
  291. data/spec/unit/mutant/reporter/cli/printer/status_progressive_spec.rb +0 -45
  292. data/spec/unit/mutant/reporter/cli/printer/subject_progress_spec.rb +0 -36
  293. data/spec/unit/mutant/reporter/cli/printer/subject_result_spec.rb +0 -44
  294. data/spec/unit/mutant/reporter/cli/printer/test_result_spec.rb +0 -16
  295. data/spec/unit/mutant/reporter/cli/printer_spec.rb +0 -163
  296. data/spec/unit/mutant/reporter/cli_spec.rb +0 -137
  297. data/spec/unit/mutant/reporter/null_spec.rb +0 -14
  298. data/spec/unit/mutant/reporter/sequence_spec.rb +0 -31
  299. data/spec/unit/mutant/repository/diff/ranges_spec.rb +0 -180
  300. data/spec/unit/mutant/repository/diff_spec.rb +0 -122
  301. data/spec/unit/mutant/repository/subject_filter_spec.rb +0 -30
  302. data/spec/unit/mutant/require_highjack_spec.rb +0 -73
  303. data/spec/unit/mutant/result/class_methods_spec.rb +0 -51
  304. data/spec/unit/mutant/result/env_spec.rb +0 -161
  305. data/spec/unit/mutant/result/mutation_spec.rb +0 -70
  306. data/spec/unit/mutant/result/subject_spec.rb +0 -111
  307. data/spec/unit/mutant/result/test_spec.rb +0 -14
  308. data/spec/unit/mutant/result_spec.rb +0 -33
  309. data/spec/unit/mutant/runner/sink_spec.rb +0 -174
  310. data/spec/unit/mutant/runner_spec.rb +0 -121
  311. data/spec/unit/mutant/selector/expression_spec.rb +0 -62
  312. data/spec/unit/mutant/selector/null_spec.rb +0 -17
  313. data/spec/unit/mutant/subject/method/instance_spec.rb +0 -181
  314. data/spec/unit/mutant/subject/method/singleton_spec.rb +0 -61
  315. data/spec/unit/mutant/subject_spec.rb +0 -93
  316. data/spec/unit/mutant/transform/array_spec.rb +0 -92
  317. data/spec/unit/mutant/transform/bool_spec.rb +0 -63
  318. data/spec/unit/mutant/transform/error_spec.rb +0 -132
  319. data/spec/unit/mutant/transform/exception_spec.rb +0 -44
  320. data/spec/unit/mutant/transform/hash_spec.rb +0 -236
  321. data/spec/unit/mutant/transform/index_spec.rb +0 -92
  322. data/spec/unit/mutant/transform/named_spec.rb +0 -49
  323. data/spec/unit/mutant/transform/primitive_spec.rb +0 -56
  324. data/spec/unit/mutant/transform/sequence_spec.rb +0 -98
  325. data/spec/unit/mutant/util/one_spec.rb +0 -22
  326. data/spec/unit/mutant/warnings_spec.rb +0 -89
  327. data/spec/unit/mutant/world_spec.rb +0 -63
  328. data/spec/unit/mutant/zombifier_spec.rb +0 -122
  329. data/test_app/.rspec +0 -1
  330. data/test_app/Gemfile.minitest +0 -4
  331. data/test_app/Gemfile.rspec3.8 +0 -7
  332. data/test_app/lib/test_app.rb +0 -109
  333. data/test_app/lib/test_app/literal.rb +0 -35
  334. data/test_app/spec/spec_helper.rb +0 -9
  335. data/test_app/spec/unit/test_app/literal_spec.rb +0 -20
  336. data/test_app/test/unit/test_app/literal_test.rb +0 -16
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :return do
4
- source 'return'
5
-
6
- singleton_mutations
7
- end
8
-
9
- Mutant::Meta::Example.add :return do
10
- source 'return foo'
11
-
12
- singleton_mutations
13
- mutation 'foo'
14
- mutation 'return nil'
15
- mutation 'return self'
16
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :self do
4
- source 'self'
5
-
6
- mutation 'nil'
7
- end
@@ -1,604 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Mutant::Meta::Example.add :send do
4
- source 'a > b'
5
-
6
- singleton_mutations
7
- mutation 'a == b'
8
- mutation 'a >= b'
9
- mutation 'a.eql?(b)'
10
- mutation 'a.equal?(b)'
11
- mutation 'nil > b'
12
- mutation 'self > b'
13
- mutation 'a > nil'
14
- mutation 'a > self'
15
- mutation 'a'
16
- mutation 'b'
17
- end
18
-
19
- Mutant::Meta::Example.add :send do
20
- source 'A.const_get(:B)'
21
-
22
- singleton_mutations
23
- mutation 'A::B'
24
- mutation 'A.const_get'
25
- mutation 'A'
26
- mutation ':B'
27
- mutation 'A.const_get(nil)'
28
- mutation 'A.const_get(self)'
29
- mutation 'A.const_get(:B__mutant__)'
30
- mutation 'self.const_get(:B)'
31
- end
32
-
33
- Mutant::Meta::Example.add :send do
34
- source 'A.const_get(bar)'
35
-
36
- singleton_mutations
37
- mutation 'A.const_get'
38
- mutation 'A'
39
- mutation 'bar'
40
- mutation 'A.const_get(nil)'
41
- mutation 'A.const_get(self)'
42
- mutation 'self.const_get(bar)'
43
- end
44
-
45
- Mutant::Meta::Example.add :send do
46
- source 'method(bar)'
47
-
48
- singleton_mutations
49
- mutation 'public_method(bar)'
50
- mutation 'method'
51
- mutation 'bar'
52
- mutation 'method(nil)'
53
- mutation 'method(self)'
54
- end
55
-
56
- Mutant::Meta::Example.add :send do
57
- source 'a >= b'
58
-
59
- singleton_mutations
60
- mutation 'a > b'
61
- mutation 'a == b'
62
- mutation 'a.eql?(b)'
63
- mutation 'a.equal?(b)'
64
- mutation 'nil >= b'
65
- mutation 'self >= b'
66
- mutation 'a >= nil'
67
- mutation 'a >= self'
68
- mutation 'a'
69
- mutation 'b'
70
- end
71
-
72
- Mutant::Meta::Example.add :send do
73
- source 'a <= b'
74
-
75
- singleton_mutations
76
- mutation 'a < b'
77
- mutation 'a == b'
78
- mutation 'a.eql?(b)'
79
- mutation 'a.equal?(b)'
80
- mutation 'nil <= b'
81
- mutation 'self <= b'
82
- mutation 'a <= nil'
83
- mutation 'a <= self'
84
- mutation 'a'
85
- mutation 'b'
86
- end
87
-
88
- Mutant::Meta::Example.add :send do
89
- source 'a < b'
90
-
91
- singleton_mutations
92
- mutation 'a == b'
93
- mutation 'a <= b'
94
- mutation 'a.eql?(b)'
95
- mutation 'a.equal?(b)'
96
- mutation 'nil < b'
97
- mutation 'self < b'
98
- mutation 'a < nil'
99
- mutation 'a < self'
100
- mutation 'a'
101
- mutation 'b'
102
- end
103
-
104
- Mutant::Meta::Example.add :send do
105
- source 'reverse_each'
106
-
107
- singleton_mutations
108
- mutation 'each'
109
- end
110
-
111
- Mutant::Meta::Example.add :send do
112
- source 'reverse_merge'
113
-
114
- singleton_mutations
115
- mutation 'merge'
116
- end
117
-
118
- Mutant::Meta::Example.add :send do
119
- source 'reverse_map'
120
-
121
- singleton_mutations
122
- mutation 'map'
123
- mutation 'each'
124
- end
125
-
126
- Mutant::Meta::Example.add :send do
127
- source 'map'
128
-
129
- singleton_mutations
130
- mutation 'each'
131
- end
132
-
133
- Mutant::Meta::Example.add :send do
134
- source 'flat_map'
135
-
136
- singleton_mutations
137
- mutation 'map'
138
- end
139
-
140
- Mutant::Meta::Example.add :send do
141
- source 'foo.to_s'
142
-
143
- singleton_mutations
144
- mutation 'foo'
145
- mutation 'self.to_s'
146
- mutation 'foo.to_str'
147
- end
148
-
149
- Mutant::Meta::Example.add :send do
150
- source 'foo.to_a'
151
-
152
- singleton_mutations
153
- mutation 'foo'
154
- mutation 'self.to_a'
155
- mutation 'foo.to_ary'
156
- end
157
-
158
- Mutant::Meta::Example.add :send do
159
- source 'foo.to_i'
160
-
161
- singleton_mutations
162
- mutation 'foo'
163
- mutation 'self.to_i'
164
- mutation 'foo.to_int'
165
- mutation 'Integer(foo)'
166
- end
167
-
168
- Mutant::Meta::Example.add :send do
169
- source 'foo.to_h'
170
-
171
- singleton_mutations
172
- mutation 'foo'
173
- mutation 'self.to_h'
174
- mutation 'foo.to_hash'
175
- end
176
-
177
- Mutant::Meta::Example.add :send do
178
- source 'foo == bar'
179
-
180
- singleton_mutations
181
- mutation 'foo'
182
- mutation 'bar'
183
- mutation 'nil == bar'
184
- mutation 'self == bar'
185
- mutation 'foo == nil'
186
- mutation 'foo == self'
187
- mutation 'foo.eql?(bar)'
188
- mutation 'foo.equal?(bar)'
189
- end
190
-
191
- Mutant::Meta::Example.add :send do
192
- source 'foo.is_a?(bar)'
193
-
194
- singleton_mutations
195
- mutation 'foo'
196
- mutation 'bar'
197
- mutation 'foo.is_a?'
198
- mutation 'foo.is_a?(nil)'
199
- mutation 'foo.is_a?(self)'
200
- mutation 'self.is_a?(bar)'
201
- mutation 'foo.instance_of?(bar)'
202
- end
203
-
204
- Mutant::Meta::Example.add :send do
205
- source 'foo.is_a?(bar)'
206
-
207
- singleton_mutations
208
- mutation 'foo'
209
- mutation 'bar'
210
- mutation 'foo.is_a?'
211
- mutation 'foo.is_a?(nil)'
212
- mutation 'foo.is_a?(self)'
213
- mutation 'self.is_a?(bar)'
214
- mutation 'foo.instance_of?(bar)'
215
- end
216
-
217
- Mutant::Meta::Example.add :send do
218
- source 'foo.kind_of?(bar)'
219
-
220
- singleton_mutations
221
- mutation 'foo'
222
- mutation 'bar'
223
- mutation 'foo.kind_of?'
224
- mutation 'foo.kind_of?(nil)'
225
- mutation 'foo.kind_of?(self)'
226
- mutation 'self.kind_of?(bar)'
227
- mutation 'foo.instance_of?(bar)'
228
- end
229
-
230
- Mutant::Meta::Example.add :send do
231
- source 'foo.gsub(a, b)'
232
-
233
- singleton_mutations
234
- mutation 'foo'
235
- mutation 'foo.gsub(a)'
236
- mutation 'foo.gsub(b)'
237
- mutation 'foo.gsub'
238
- mutation 'foo.sub(a, b)'
239
- mutation 'foo.gsub(a, nil)'
240
- mutation 'foo.gsub(a, self)'
241
- mutation 'foo.gsub(nil, b)'
242
- mutation 'foo.gsub(self, b)'
243
- mutation 'self.gsub(a, b)'
244
- end
245
-
246
- Mutant::Meta::Example.add :send do
247
- source 'foo.values_at(a, b)'
248
-
249
- singleton_mutations
250
- mutation 'foo.fetch_values(a, b)'
251
- mutation 'foo'
252
- mutation 'self.values_at(a, b)'
253
- mutation 'foo.values_at(a)'
254
- mutation 'foo.values_at(b)'
255
- mutation 'foo.values_at(nil, b)'
256
- mutation 'foo.values_at(self, b)'
257
- mutation 'foo.values_at(a, nil)'
258
- mutation 'foo.values_at(a, self)'
259
- mutation 'foo.values_at'
260
- end
261
-
262
- Mutant::Meta::Example.add :send do
263
- source 'foo.dig(a, b)'
264
-
265
- singleton_mutations
266
- mutation 'foo.fetch(a).dig(b)'
267
- mutation 'foo'
268
- mutation 'self.dig(a, b)'
269
- mutation 'foo.dig(a)'
270
- mutation 'foo.dig(b)'
271
- mutation 'foo.dig(nil, b)'
272
- mutation 'foo.dig(self, b)'
273
- mutation 'foo.dig(a, nil)'
274
- mutation 'foo.dig(a, self)'
275
- mutation 'foo.dig'
276
- end
277
-
278
- Mutant::Meta::Example.add :send do
279
- source 'foo.dig(a)'
280
-
281
- singleton_mutations
282
- mutation 'foo.fetch(a)'
283
- mutation 'foo'
284
- mutation 'self.dig(a)'
285
- mutation 'foo.dig(nil)'
286
- mutation 'foo.dig(self)'
287
- mutation 'foo.dig'
288
- mutation 'a'
289
- end
290
-
291
- Mutant::Meta::Example.add :send do
292
- source 'foo.dig'
293
-
294
- singleton_mutations
295
- mutation 'foo'
296
- mutation 'self.dig'
297
- end
298
-
299
- Mutant::Meta::Example.add :send do
300
- source 'foo.__send__(bar)'
301
-
302
- singleton_mutations
303
- mutation 'foo.__send__'
304
- mutation 'foo.public_send(bar)'
305
- mutation 'bar'
306
- mutation 'foo'
307
- mutation 'self.__send__(bar)'
308
- mutation 'foo.__send__(nil)'
309
- mutation 'foo.__send__(self)'
310
- end
311
-
312
- Mutant::Meta::Example.add :send do
313
- source 'foo.send(bar)'
314
-
315
- singleton_mutations
316
- mutation 'foo.send'
317
- mutation 'foo.public_send(bar)'
318
- mutation 'foo.__send__(bar)'
319
- mutation 'bar'
320
- mutation 'foo'
321
- mutation 'self.send(bar)'
322
- mutation 'foo.send(nil)'
323
- mutation 'foo.send(self)'
324
- end
325
-
326
- Mutant::Meta::Example.add :send do
327
- source 'self.booz = baz'
328
-
329
- singleton_mutations
330
- mutation 'self.booz = nil'
331
- mutation 'self.booz = self'
332
- mutation 'self.booz'
333
- mutation 'baz'
334
- end
335
-
336
- Mutant::Meta::Example.add :send do
337
- source 'foo.booz = baz'
338
-
339
- singleton_mutations
340
- mutation 'foo'
341
- mutation 'foo.booz = nil'
342
- mutation 'foo.booz = self'
343
- mutation 'self.booz = baz'
344
- mutation 'foo.booz'
345
- mutation 'baz'
346
- end
347
-
348
- Mutant::Meta::Example.add :send do
349
- source 'foo(*bar)'
350
-
351
- singleton_mutations
352
- mutation 'foo'
353
- mutation 'foo(nil)'
354
- mutation 'foo(bar)'
355
- mutation 'foo(self)'
356
- mutation 'foo(*nil)'
357
- mutation 'foo(*self)'
358
- end
359
-
360
- Mutant::Meta::Example.add :send do
361
- source 'foo(&bar)'
362
-
363
- singleton_mutations
364
- mutation 'foo'
365
- end
366
-
367
- Mutant::Meta::Example.add :send do
368
- source 'foo'
369
-
370
- singleton_mutations
371
- end
372
-
373
- Mutant::Meta::Example.add :send do
374
- source 'self.foo'
375
-
376
- singleton_mutations
377
- mutation 'foo'
378
- end
379
-
380
- Unparser::Constants::KEYWORDS.each do |keyword|
381
- Mutant::Meta::Example.add :send do
382
- source "self.#{keyword}"
383
-
384
- singleton_mutations
385
- end
386
- end
387
-
388
- Mutant::Meta::Example.add :send do
389
- source 'foo.bar'
390
-
391
- singleton_mutations
392
- mutation 'foo'
393
- mutation 'self.bar'
394
- end
395
-
396
- Mutant::Meta::Example.add :send do
397
- source 'self.class.foo'
398
-
399
- singleton_mutations
400
- mutation 'self.class'
401
- mutation 'self.foo'
402
- end
403
-
404
- Mutant::Meta::Example.add :send do
405
- source 'foo(nil)'
406
-
407
- singleton_mutations
408
- mutation 'foo'
409
- end
410
-
411
- Mutant::Meta::Example.add :send do
412
- source 'self.foo(nil)'
413
-
414
- singleton_mutations
415
- mutation 'self.foo'
416
- mutation 'foo(nil)'
417
- end
418
-
419
- Mutant::Meta::Example.add :send do
420
- source 'self.fetch(nil)'
421
-
422
- singleton_mutations
423
- mutation 'self.fetch'
424
- mutation 'fetch(nil)'
425
- mutation 'self.key?(nil)'
426
- end
427
-
428
- Unparser::Constants::KEYWORDS.each do |keyword|
429
- Mutant::Meta::Example.add :send do
430
- source "foo.#{keyword}(nil)"
431
-
432
- singleton_mutations
433
- mutation "self.#{keyword}(nil)"
434
- mutation "foo.#{keyword}"
435
- mutation 'foo'
436
- end
437
- end
438
-
439
- Mutant::Meta::Example.add :send do
440
- source 'foo(nil, nil)'
441
-
442
- singleton_mutations
443
- mutation 'foo()'
444
- mutation 'foo(nil)'
445
- end
446
-
447
- Mutant::Meta::Example.add :send do
448
- source '(left - right) / foo'
449
-
450
- singleton_mutations
451
- mutation 'foo'
452
- mutation '(left - right)'
453
- mutation 'left / foo'
454
- mutation 'right / foo'
455
- mutation '(left - right) / nil'
456
- mutation '(left - right) / self'
457
- mutation '(left - nil) / foo'
458
- mutation '(left - self) / foo'
459
- mutation '(nil - right) / foo'
460
- mutation '(self - right) / foo'
461
- mutation 'nil / foo'
462
- mutation 'self / foo'
463
- end
464
-
465
- Mutant::Meta::Example.add :send do
466
- source 'foo(n..-1)'
467
-
468
- singleton_mutations
469
- mutation 'foo'
470
- mutation 'n..-1'
471
- mutation 'foo(nil)'
472
- mutation 'foo(self)'
473
- mutation 'foo(n...-1)'
474
- mutation 'foo(nil..-1)'
475
- mutation 'foo(self..-1)'
476
- mutation 'foo(n..nil)'
477
- mutation 'foo(n..self)'
478
- mutation 'foo(n..0)'
479
- mutation 'foo(n..1)'
480
- mutation 'foo(n..-2)'
481
- end
482
-
483
- (Mutant::AST::Types::BINARY_METHOD_OPERATORS - %i[=~ <= >= < > == != eql?]).each do |operator|
484
- Mutant::Meta::Example.add :send do
485
- source "true #{operator} false"
486
-
487
- singleton_mutations
488
- mutation 'true'
489
- mutation 'false'
490
- mutation "false #{operator} false"
491
- mutation "nil #{operator} false"
492
- mutation "true #{operator} true"
493
- mutation "true #{operator} nil"
494
- end
495
- end
496
-
497
- Mutant::Meta::Example.add :send do
498
- source 'a != b'
499
-
500
- singleton_mutations
501
- mutation 'nil != b'
502
- mutation 'self != b'
503
- mutation 'a'
504
- mutation 'b'
505
- mutation 'a != nil'
506
- mutation 'a != self'
507
- mutation '!a.eql?(b)'
508
- mutation '!a.equal?(b)'
509
- end
510
-
511
- Mutant::Meta::Example.add :send do
512
- source '!!foo'
513
-
514
- singleton_mutations
515
- mutation '!foo'
516
- mutation '!self'
517
- mutation '!!self'
518
- mutation 'foo'
519
- end
520
-
521
- Mutant::Meta::Example.add :send do
522
- source '!foo'
523
-
524
- singleton_mutations
525
- mutation 'foo'
526
- mutation '!self'
527
- end
528
-
529
- Mutant::Meta::Example.add :send do
530
- source '!foo&.!'
531
-
532
- singleton_mutations
533
- mutation 'foo&.!'
534
- mutation '!self'
535
- mutation '!foo'
536
- mutation '!self&.!'
537
- mutation '!(!foo)'
538
- end
539
-
540
- Mutant::Meta::Example.add :send do
541
- source 'custom.proc { }'
542
-
543
- singleton_mutations
544
- mutation 'custom.proc'
545
- mutation 'custom { }'
546
- mutation 'self.proc { }'
547
- mutation 'custom.proc { raise }'
548
- end
549
-
550
- Mutant::Meta::Example.add :send do
551
- source 'proc { }'
552
-
553
- singleton_mutations
554
- mutation 'proc'
555
- mutation 'proc { raise }'
556
- mutation 'lambda { }'
557
- end
558
-
559
- Mutant::Meta::Example.add :send do
560
- source 'Proc.new { }'
561
-
562
- singleton_mutations
563
- mutation 'Proc.new'
564
- mutation 'self.new { }'
565
- mutation 'Proc.new { raise }'
566
- mutation 'lambda { }'
567
- end
568
-
569
- Mutant::Meta::Example.add :send do
570
- source 'a =~ //'
571
-
572
- singleton_mutations
573
- mutation 'a'
574
- mutation 'nil =~ //'
575
- mutation 'self =~ //'
576
- mutation '//'
577
- mutation 'a =~ /nomatch\A/'
578
- end
579
-
580
- Mutant::Meta::Example.add :send do
581
- source '//.match(a)'
582
-
583
- singleton_mutations
584
- mutation 'a'
585
- mutation '//.match'
586
- mutation '//.match(nil)'
587
- mutation '//.match(self)'
588
- mutation '//'
589
- mutation '/nomatch\A/.match(a)'
590
- end
591
-
592
- Mutant::Meta::Example.add :send do
593
- source 'foo(bar { nil; nil })'
594
-
595
- singleton_mutations
596
- mutation 'bar { nil; nil }'
597
- mutation 'foo'
598
- mutation 'foo(bar { nil })'
599
- mutation 'foo(bar { raise })'
600
- mutation 'foo(bar {})'
601
- mutation 'foo(bar)'
602
- mutation 'foo(self)'
603
- mutation 'foo(nil)'
604
- end