mutest 0.0.9 → 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.circleci/config.yml +38 -0
- data/{config/rubocop.yml → .rubocop.yml} +80 -183
- data/CHANGELOG.md +8 -0
- data/Gemfile +2 -3
- data/Gemfile.lock +41 -52
- data/README.md +16 -0
- data/Rakefile +1 -1
- data/lib/mutest.rb +5 -4
- data/lib/mutest/actor.rb +7 -6
- data/lib/mutest/actor/env.rb +3 -3
- data/lib/mutest/actor/mailbox.rb +5 -4
- data/lib/mutest/actor/receiver.rb +6 -5
- data/lib/mutest/actor/sender.rb +5 -4
- data/lib/mutest/ast.rb +4 -3
- data/lib/mutest/ast/meta.rb +3 -3
- data/lib/mutest/ast/meta/const.rb +7 -5
- data/lib/mutest/ast/meta/optarg.rb +6 -5
- data/lib/mutest/ast/meta/resbody.rb +6 -5
- data/lib/mutest/ast/meta/restarg.rb +6 -5
- data/lib/mutest/ast/meta/send.rb +8 -20
- data/lib/mutest/ast/meta/symbol.rb +6 -5
- data/lib/mutest/ast/named_children.rb +5 -5
- data/lib/mutest/ast/node_predicates.rb +4 -4
- data/lib/mutest/ast/nodes.rb +3 -3
- data/lib/mutest/ast/regexp.rb +3 -3
- data/lib/mutest/ast/regexp/transformer.rb +19 -11
- data/lib/mutest/ast/regexp/transformer/alternative.rb +6 -6
- data/lib/mutest/ast/regexp/transformer/character_set.rb +7 -7
- data/lib/mutest/ast/regexp/transformer/direct.rb +7 -7
- data/lib/mutest/ast/regexp/transformer/options_group.rb +7 -7
- data/lib/mutest/ast/regexp/transformer/quantifier.rb +11 -13
- data/lib/mutest/ast/regexp/transformer/recursive.rb +7 -7
- data/lib/mutest/ast/regexp/transformer/root.rb +6 -6
- data/lib/mutest/ast/regexp/transformer/text.rb +7 -7
- data/lib/mutest/ast/sexp.rb +3 -3
- data/lib/mutest/ast/types.rb +8 -6
- data/lib/mutest/cli.rb +5 -3
- data/lib/mutest/color.rb +4 -3
- data/lib/mutest/config.rb +4 -3
- data/lib/mutest/context.rb +4 -3
- data/lib/mutest/diff.rb +5 -3
- data/lib/mutest/env.rb +5 -5
- data/lib/mutest/env/bootstrap.rb +7 -5
- data/lib/mutest/expression.rb +7 -5
- data/lib/mutest/expression/method.rb +4 -4
- data/lib/mutest/expression/methods.rb +4 -4
- data/lib/mutest/expression/namespace.rb +9 -8
- data/lib/mutest/expression/parser.rb +9 -8
- data/lib/mutest/integration.rb +5 -3
- data/lib/mutest/integration/null.rb +3 -3
- data/lib/mutest/isolation.rb +2 -2
- data/lib/mutest/isolation/fork.rb +4 -4
- data/lib/mutest/isolation/none.rb +4 -4
- data/lib/mutest/loader.rb +2 -2
- data/lib/mutest/matcher.rb +4 -3
- data/lib/mutest/matcher/chain.rb +3 -3
- data/lib/mutest/matcher/compiler.rb +7 -5
- data/lib/mutest/matcher/config.rb +5 -4
- data/lib/mutest/matcher/filter.rb +3 -3
- data/lib/mutest/matcher/method.rb +13 -13
- data/lib/mutest/matcher/method/instance.rb +6 -6
- data/lib/mutest/matcher/method/singleton.rb +5 -5
- data/lib/mutest/matcher/methods.rb +7 -6
- data/lib/mutest/matcher/namespace.rb +3 -3
- data/lib/mutest/matcher/null.rb +3 -3
- data/lib/mutest/matcher/scope.rb +3 -3
- data/lib/mutest/matcher/static.rb +3 -3
- data/lib/mutest/meta.rb +4 -4
- data/lib/mutest/meta/example.rb +5 -4
- data/lib/mutest/meta/example/dsl.rb +12 -11
- data/lib/mutest/meta/example/verification.rb +7 -6
- data/lib/mutest/mutation.rb +7 -6
- data/lib/mutest/mutator.rb +6 -6
- data/lib/mutest/mutator/node.rb +19 -7
- data/lib/mutest/mutator/node/and_asgn.rb +4 -4
- data/lib/mutest/mutator/node/argument.rb +6 -5
- data/lib/mutest/mutator/node/arguments.rb +18 -5
- data/lib/mutest/mutator/node/begin.rb +4 -4
- data/lib/mutest/mutator/node/binary.rb +4 -4
- data/lib/mutest/mutator/node/block.rb +6 -5
- data/lib/mutest/mutator/node/block_pass.rb +4 -4
- data/lib/mutest/mutator/node/break.rb +4 -4
- data/lib/mutest/mutator/node/case.rb +6 -4
- data/lib/mutest/mutator/node/class.rb +4 -4
- data/lib/mutest/mutator/node/conditional_loop.rb +4 -4
- data/lib/mutest/mutator/node/const.rb +4 -4
- data/lib/mutest/mutator/node/define.rb +6 -6
- data/lib/mutest/mutator/node/defined.rb +4 -4
- data/lib/mutest/mutator/node/dstr.rb +4 -4
- data/lib/mutest/mutator/node/dsym.rb +4 -4
- data/lib/mutest/mutator/node/generic.rb +5 -4
- data/lib/mutest/mutator/node/if.rb +6 -4
- data/lib/mutest/mutator/node/index.rb +128 -0
- data/lib/mutest/mutator/node/kwbegin.rb +4 -4
- data/lib/mutest/mutator/node/literal.rb +4 -4
- data/lib/mutest/mutator/node/literal/array.rb +8 -6
- data/lib/mutest/mutator/node/literal/boolean.rb +5 -5
- data/lib/mutest/mutator/node/literal/fixnum.rb +5 -5
- data/lib/mutest/mutator/node/literal/float.rb +5 -5
- data/lib/mutest/mutator/node/literal/hash.rb +6 -6
- data/lib/mutest/mutator/node/literal/nil.rb +5 -5
- data/lib/mutest/mutator/node/literal/range.rb +5 -5
- data/lib/mutest/mutator/node/literal/regex.rb +5 -5
- data/lib/mutest/mutator/node/literal/string.rb +5 -5
- data/lib/mutest/mutator/node/literal/symbol.rb +5 -5
- data/lib/mutest/mutator/node/masgn.rb +4 -4
- data/lib/mutest/mutator/node/match_current_line.rb +4 -4
- data/lib/mutest/mutator/node/mlhs.rb +4 -4
- data/lib/mutest/mutator/node/named_value/access.rb +6 -6
- data/lib/mutest/mutator/node/named_value/constant_assignment.rb +6 -5
- data/lib/mutest/mutator/node/named_value/variable_assignment.rb +5 -5
- data/lib/mutest/mutator/node/next.rb +4 -4
- data/lib/mutest/mutator/node/nthref.rb +4 -4
- data/lib/mutest/mutator/node/op_asgn.rb +4 -4
- data/lib/mutest/mutator/node/or_asgn.rb +5 -4
- data/lib/mutest/mutator/node/procarg_zero.rb +45 -0
- data/lib/mutest/mutator/node/regexp.rb +6 -6
- data/lib/mutest/mutator/node/regexp/alternation_meta.rb +5 -5
- data/lib/mutest/mutator/node/regexp/capture_group.rb +5 -5
- data/lib/mutest/mutator/node/regexp/character_type.rb +5 -5
- data/lib/mutest/mutator/node/regexp/end_of_line_anchor.rb +5 -5
- data/lib/mutest/mutator/node/regexp/end_of_string_or_before_end_of_line_anchor.rb +5 -5
- data/lib/mutest/mutator/node/regexp/one_or_more.rb +5 -5
- data/lib/mutest/mutator/node/regexp/zero_or_more.rb +5 -5
- data/lib/mutest/mutator/node/regopt.rb +4 -4
- data/lib/mutest/mutator/node/resbody.rb +6 -4
- data/lib/mutest/mutator/node/rescue.rb +6 -4
- data/lib/mutest/mutator/node/return.rb +5 -4
- data/lib/mutest/mutator/node/send.rb +6 -34
- data/lib/mutest/mutator/node/send/attribute_assignment.rb +5 -5
- data/lib/mutest/mutator/node/send/binary.rb +5 -5
- data/lib/mutest/mutator/node/send/conditional.rb +5 -5
- data/lib/mutest/mutator/node/splat.rb +4 -4
- data/lib/mutest/mutator/node/super.rb +4 -4
- data/lib/mutest/mutator/node/when.rb +4 -4
- data/lib/mutest/mutator/node/yield.rb +4 -4
- data/lib/mutest/mutator/node/zsuper.rb +4 -4
- data/lib/mutest/mutator/util.rb +3 -3
- data/lib/mutest/mutator/util/array.rb +6 -6
- data/lib/mutest/mutator/util/symbol.rb +4 -4
- data/lib/mutest/parallel.rb +16 -12
- data/lib/mutest/parallel/master.rb +4 -4
- data/lib/mutest/parallel/source.rb +6 -5
- data/lib/mutest/parallel/worker.rb +6 -5
- data/lib/mutest/parser.rb +4 -3
- data/lib/mutest/registry.rb +6 -5
- data/lib/mutest/reporter.rb +2 -2
- data/lib/mutest/reporter/cli.rb +3 -3
- data/lib/mutest/reporter/cli/format.rb +9 -8
- data/lib/mutest/reporter/cli/printer.rb +8 -8
- data/lib/mutest/reporter/cli/printer/config.rb +5 -5
- data/lib/mutest/reporter/cli/printer/env_progress.rb +16 -16
- data/lib/mutest/reporter/cli/printer/env_result.rb +5 -5
- data/lib/mutest/reporter/cli/printer/mutation_progress_result.rb +5 -5
- data/lib/mutest/reporter/cli/printer/mutation_result.rb +5 -5
- data/lib/mutest/reporter/cli/printer/status.rb +6 -5
- data/lib/mutest/reporter/cli/printer/status_progressive.rb +5 -5
- data/lib/mutest/reporter/cli/printer/subject_progress.rb +5 -5
- data/lib/mutest/reporter/cli/printer/subject_result.rb +5 -5
- data/lib/mutest/reporter/cli/printer/test_result.rb +5 -5
- data/lib/mutest/reporter/cli/tput.rb +6 -5
- data/lib/mutest/reporter/null.rb +3 -3
- data/lib/mutest/reporter/sequence.rb +3 -3
- data/lib/mutest/repository.rb +9 -7
- data/lib/mutest/require_highjack.rb +2 -2
- data/lib/mutest/requirer.rb +2 -2
- data/lib/mutest/result.rb +18 -12
- data/lib/mutest/runner.rb +6 -3
- data/lib/mutest/runner/sink.rb +3 -3
- data/lib/mutest/scope.rb +2 -2
- data/lib/mutest/selector.rb +4 -3
- data/lib/mutest/selector/expression.rb +3 -3
- data/lib/mutest/source_file.rb +6 -5
- data/lib/mutest/subject.rb +5 -3
- data/lib/mutest/subject/method.rb +3 -3
- data/lib/mutest/subject/method/instance.rb +5 -5
- data/lib/mutest/subject/method/singleton.rb +4 -4
- data/lib/mutest/test.rb +4 -3
- data/lib/mutest/util.rb +3 -3
- data/lib/mutest/version.rb +2 -2
- data/lib/mutest/warning_filter.rb +3 -3
- data/lib/mutest/zombifier.rb +5 -4
- data/meta/block.rb +22 -3
- data/meta/case.rb +29 -1
- data/meta/index.rb +132 -0
- data/meta/indexasgn.rb +42 -0
- data/meta/lambda.rb +17 -0
- data/meta/send.rb +5 -139
- data/mutest-rspec.gemspec +1 -1
- data/mutest.gemspec +11 -12
- data/spec/integration/mutest/rspec_spec.rb +1 -1
- data/spec/shared/framework_integration_behavior.rb +1 -1
- data/spec/shared/idempotent_method_behavior.rb +2 -1
- data/spec/spec_helper.rb +5 -5
- data/spec/support/compress_helper.rb +2 -1
- data/spec/support/corpus.rb +12 -8
- data/spec/support/fake_actor.rb +19 -14
- data/spec/support/file_system.rb +10 -7
- data/spec/support/ice_nine_config.rb +3 -3
- data/spec/support/ruby_vm.rb +10 -11
- data/spec/support/shared_context.rb +1 -1
- data/spec/support/test_app.rb +1 -1
- data/spec/support/warning.rb +8 -7
- data/spec/support/xspec.rb +18 -17
- data/spec/unit/mutest/actor/binding_spec.rb +1 -0
- data/spec/unit/mutest/ast/meta/optarg_spec.rb +1 -0
- data/spec/unit/mutest/ast/meta/send/proc_predicate_spec.rb +1 -1
- data/spec/unit/mutest/ast/meta/send/receiver_possible_top_level_const_predicate_spec.rb +1 -1
- data/spec/unit/mutest/ast/meta/send_spec.rb +14 -18
- data/spec/unit/mutest/ast/regexp_spec.rb +4 -3
- data/spec/unit/mutest/ast_spec.rb +1 -1
- data/spec/unit/mutest/cli_spec.rb +15 -15
- data/spec/unit/mutest/env/bootstrap_spec.rb +1 -1
- data/spec/unit/mutest/integration_spec.rb +1 -0
- data/spec/unit/mutest/isolation/none_spec.rb +1 -1
- data/spec/unit/mutest/matcher/config_spec.rb +1 -0
- data/spec/unit/mutest/mutator/node_spec.rb +1 -1
- data/spec/unit/mutest/parallel/master_spec.rb +3 -3
- data/spec/unit/mutest/reporter/cli/printer_spec.rb +2 -0
- data/spec/unit/mutest/reporter/cli/tput_spec.rb +2 -0
- data/spec/unit/mutest/reporter/cli_spec.rb +2 -0
- data/spec/unit/mutest/repository/diff_spec.rb +1 -1
- data/spec/unit/mutest/runner_spec.rb +1 -1
- data/spec/unit/mutest/subject_spec.rb +1 -1
- data/spec/unit/mutest/warning_filter_spec.rb +2 -3
- data/spec/unit/mutest/zombifier_spec.rb +1 -1
- data/test_app/Gemfile.rspec3.8 +7 -0
- metadata +67 -68
- data/.buildkite/hooks/pre-command +0 -3
- data/.buildkite/pipeline.yml +0 -38
- data/.gitmodules +0 -3
- data/circle.yml +0 -10
- data/config/triage.yml +0 -2
- data/config/yardstick.yml +0 -2
- data/lib/mutest/mutator/node/send/index.rb +0 -47
@@ -26,6 +26,7 @@ module Mutest
|
|
26
26
|
# @return [undefined]
|
27
27
|
def job_status
|
28
28
|
return if active_jobs.empty?
|
29
|
+
|
29
30
|
info(ACTIVE_JOB_HEADER)
|
30
31
|
active_jobs.sort_by(&:index).each do |job|
|
31
32
|
info(ACTIVE_JOB_FORMAT, job.index, job.payload.identification)
|
@@ -42,8 +43,8 @@ module Mutest
|
|
42
43
|
active_subjects.include?(subject_result.subject)
|
43
44
|
end
|
44
45
|
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -3,7 +3,8 @@ module Mutest
|
|
3
3
|
class CLI
|
4
4
|
# Interface to the optionally present tput binary
|
5
5
|
class Tput
|
6
|
-
include
|
6
|
+
include Concord::Public.new(:prepare, :restore)
|
7
|
+
include Adamantium
|
7
8
|
|
8
9
|
private_class_method :new
|
9
10
|
|
@@ -37,7 +38,7 @@ module Mutest
|
|
37
38
|
stdout if exitstatus.success?
|
38
39
|
end
|
39
40
|
private_class_method :capture
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/lib/mutest/reporter/null.rb
CHANGED
data/lib/mutest/repository.rb
CHANGED
@@ -5,7 +5,8 @@ module Mutest
|
|
5
5
|
|
6
6
|
# Subject filter based on repository diff
|
7
7
|
class SubjectFilter
|
8
|
-
include
|
8
|
+
include Concord.new(:diff)
|
9
|
+
include Adamantium
|
9
10
|
|
10
11
|
# Test if subject was touched in diff
|
11
12
|
#
|
@@ -15,11 +16,12 @@ module Mutest
|
|
15
16
|
def call(subject)
|
16
17
|
diff.touches?(subject.source_path, subject.source_lines)
|
17
18
|
end
|
18
|
-
end
|
19
|
+
end
|
19
20
|
|
20
21
|
# Diff between two objects in repository
|
21
22
|
class Diff
|
22
|
-
include
|
23
|
+
include Anima.new(:config, :from, :to)
|
24
|
+
include Adamantium
|
23
25
|
|
24
26
|
HEAD = 'HEAD'.freeze
|
25
27
|
|
@@ -43,7 +45,7 @@ module Mutest
|
|
43
45
|
|
44
46
|
stdout, status = config.open3.capture2(*command, binmode: true)
|
45
47
|
|
46
|
-
|
48
|
+
raise RepositoryError, "Command #{command} failed!" unless status.success?
|
47
49
|
|
48
50
|
!stdout.empty?
|
49
51
|
end
|
@@ -75,6 +77,6 @@ module Mutest
|
|
75
77
|
working_directory = config.pathname.pwd
|
76
78
|
path.ascend { |parent| return true if working_directory.eql?(parent) }
|
77
79
|
end
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
data/lib/mutest/requirer.rb
CHANGED
data/lib/mutest/result.rb
CHANGED
@@ -16,7 +16,7 @@ module Mutest
|
|
16
16
|
Rational(amount_mutations_killed, amount_mutation_results)
|
17
17
|
end
|
18
18
|
end
|
19
|
-
end
|
19
|
+
end
|
20
20
|
|
21
21
|
# Class level mixin
|
22
22
|
module ClassMethods
|
@@ -35,7 +35,7 @@ module Mutest
|
|
35
35
|
end
|
36
36
|
memoize(name)
|
37
37
|
end
|
38
|
-
end
|
38
|
+
end
|
39
39
|
|
40
40
|
private_constant(*constants(false))
|
41
41
|
|
@@ -64,11 +64,13 @@ module Mutest
|
|
64
64
|
|
65
65
|
# Env result object
|
66
66
|
class Env
|
67
|
-
include
|
67
|
+
include Anima.new(
|
68
68
|
:env,
|
69
69
|
:runtime,
|
70
70
|
:subject_results
|
71
71
|
)
|
72
|
+
include Result
|
73
|
+
include Coverage
|
72
74
|
|
73
75
|
# Test if run is successful
|
74
76
|
#
|
@@ -103,25 +105,28 @@ module Mutest
|
|
103
105
|
def amount_subjects
|
104
106
|
env.subjects.length
|
105
107
|
end
|
106
|
-
end
|
108
|
+
end
|
107
109
|
|
108
110
|
# Test result
|
109
111
|
class Test
|
110
|
-
include
|
112
|
+
include Anima.new(
|
111
113
|
:output,
|
112
114
|
:passed,
|
113
115
|
:runtime,
|
114
116
|
:tests
|
115
117
|
)
|
116
|
-
|
118
|
+
include Result
|
119
|
+
end
|
117
120
|
|
118
121
|
# Subject result
|
119
122
|
class Subject
|
120
|
-
include
|
123
|
+
include Anima.new(
|
121
124
|
:mutation_results,
|
122
125
|
:subject,
|
123
126
|
:tests
|
124
127
|
)
|
128
|
+
include Result
|
129
|
+
include Coverage
|
125
130
|
|
126
131
|
sum :killtime, :mutation_results
|
127
132
|
sum :runtime, :mutation_results
|
@@ -178,14 +183,15 @@ module Mutest
|
|
178
183
|
mutation_results.select(&:success?)
|
179
184
|
end
|
180
185
|
memoize :killed_mutation_results
|
181
|
-
end
|
186
|
+
end
|
182
187
|
|
183
188
|
# Mutation result
|
184
189
|
class Mutation
|
185
|
-
include
|
190
|
+
include Anima.new(
|
186
191
|
:mutation,
|
187
192
|
:test_result
|
188
193
|
)
|
194
|
+
include Result
|
189
195
|
|
190
196
|
# The runtime
|
191
197
|
#
|
@@ -207,6 +213,6 @@ module Mutest
|
|
207
213
|
def success?
|
208
214
|
mutation.class.success?(test_result)
|
209
215
|
end
|
210
|
-
end
|
211
|
-
end
|
212
|
-
end
|
216
|
+
end
|
217
|
+
end
|
218
|
+
end
|
data/lib/mutest/runner.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
module Mutest
|
2
2
|
# Runner baseclass
|
3
3
|
class Runner
|
4
|
-
include
|
4
|
+
include Procto.call(:result)
|
5
|
+
include Concord.new(:env)
|
6
|
+
include Adamantium::Flat
|
5
7
|
|
6
8
|
# Initialize object
|
7
9
|
#
|
@@ -43,6 +45,7 @@ module Mutest
|
|
43
45
|
status = driver.status
|
44
46
|
reporter.progress(status)
|
45
47
|
break if status.done
|
48
|
+
|
46
49
|
sleep.call(reporter.delay)
|
47
50
|
end
|
48
51
|
|
@@ -77,5 +80,5 @@ module Mutest
|
|
77
80
|
def config
|
78
81
|
env.config
|
79
82
|
end
|
80
|
-
end
|
81
|
-
end
|
83
|
+
end
|
84
|
+
end
|
data/lib/mutest/runner/sink.rb
CHANGED
data/lib/mutest/scope.rb
CHANGED
data/lib/mutest/selector.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
module Mutest
|
2
2
|
# Abstract base class for test selectors
|
3
3
|
class Selector
|
4
|
-
include
|
4
|
+
include Adamantium::Flat
|
5
|
+
include AbstractType
|
5
6
|
|
6
7
|
# Tests for subject
|
7
8
|
#
|
@@ -9,5 +10,5 @@ module Mutest
|
|
9
10
|
#
|
10
11
|
# @return [Enumerable<Test>]
|
11
12
|
abstract_method :call
|
12
|
-
end
|
13
|
-
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/mutest/source_file.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
module Mutest
|
2
2
|
# A source file representation
|
3
3
|
class SourceFile
|
4
|
-
include
|
4
|
+
include Adamantium
|
5
|
+
include Concord::Public.new(:path, :ast)
|
5
6
|
|
6
7
|
COMMENT_TEXT = '# mutest:disable'.freeze
|
7
8
|
|
@@ -9,7 +10,7 @@ module Mutest
|
|
9
10
|
#
|
10
11
|
# @return [undefined]
|
11
12
|
def self.read(path)
|
12
|
-
new(path,
|
13
|
+
new(path, *Unparser.parse_with_comments(path.read))
|
13
14
|
end
|
14
15
|
|
15
16
|
def initialize(path, ast, comments)
|
@@ -22,7 +23,7 @@ module Mutest
|
|
22
23
|
# TODO: Support inline comment disable
|
23
24
|
def ignore?(node)
|
24
25
|
location = node.location
|
25
|
-
return false unless location
|
26
|
+
return false unless location&.expression
|
26
27
|
|
27
28
|
disable_lines.include?(location.line)
|
28
29
|
end
|
@@ -43,5 +44,5 @@ module Mutest
|
|
43
44
|
comment.text.eql?(COMMENT_TEXT)
|
44
45
|
end
|
45
46
|
end
|
46
|
-
end
|
47
|
-
end
|
47
|
+
end
|
48
|
+
end
|
data/lib/mutest/subject.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
module Mutest
|
2
2
|
# Subject of a mutation
|
3
3
|
class Subject
|
4
|
-
include
|
4
|
+
include Enumerable
|
5
|
+
include Adamantium::Flat
|
6
|
+
include AbstractType
|
5
7
|
include Concord::Public.new(:context, :node)
|
6
8
|
|
7
9
|
# Mutations for this subject
|
@@ -90,5 +92,5 @@ module Mutest
|
|
90
92
|
def wrap_node(node)
|
91
93
|
node
|
92
94
|
end
|
93
|
-
end
|
94
|
-
end
|
95
|
+
end
|
96
|
+
end
|