mutant 0.9.9 → 0.9.14

Sign up to get free protection for your applications and to get access to all the features.
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