mutant 0.9.9 → 0.9.14

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