free_mutant/meta/send.rb
Markus Schirp 017ccc1044 Add expression => self mutation
Also reorganizes parts of meta to align filenames to node name better.

Closes #191
2014-06-05 17:48:39 +00:00

237 lines
4.3 KiB
Ruby

# encoding: utf-8
Mutant::Meta::Example.add do
source 'reverse_each'
singleton_mutations
mutation 'each'
end
Mutant::Meta::Example.add do
source 'reverse_map'
singleton_mutations
mutation 'map'
mutation 'each'
end
Mutant::Meta::Example.add do
source 'map'
singleton_mutations
mutation 'each'
end
Mutant::Meta::Example.add do
source 'foo == bar'
singleton_mutations
mutation 'foo'
mutation 'bar'
mutation 'nil == bar'
mutation 'self == bar'
mutation 'foo == nil'
mutation 'foo == self'
mutation 'foo.eql?(bar)'
mutation 'foo.equal?(bar)'
end
Mutant::Meta::Example.add do
source 'foo.gsub(a, b)'
singleton_mutations
mutation 'foo'
mutation 'foo.gsub(a)'
mutation 'foo.gsub(b)'
mutation 'foo.gsub'
mutation 'foo.sub(a, b)'
mutation 'foo.gsub(a, nil)'
mutation 'foo.gsub(a, self)'
mutation 'foo.gsub(nil, b)'
mutation 'foo.gsub(self, b)'
mutation 'nil.gsub(a, b)'
mutation 'self.gsub(a, b)'
end
Mutant::Meta::Example.add do
source 'foo.send(bar)'
singleton_mutations
mutation 'foo.send'
mutation 'foo.public_send(bar)'
mutation 'bar'
mutation 'foo'
mutation 'self.send(bar)'
mutation 'foo.send(nil)'
mutation 'foo.send(self)'
mutation 'nil.send(bar)'
end
Mutant::Meta::Example.add do
source 'self.bar = baz'
singleton_mutations
mutation 'self.bar = nil'
mutation 'self.bar = self'
mutation 'self.bar'
mutation 'baz'
# This one could probably be removed
mutation 'nil.bar=baz'
end
Mutant::Meta::Example.add do
source 'foo.bar = baz'
singleton_mutations
mutation 'foo'
mutation 'foo.bar = nil'
mutation 'foo.bar = self'
mutation 'self.bar = baz'
mutation 'foo.bar'
mutation 'baz'
# This one could probably be removed
mutation 'nil.bar = baz'
end
Mutant::Meta::Example.add do
source 'foo[bar]=baz'
singleton_mutations
mutation 'foo'
end
Mutant::Meta::Example.add do
source 'foo(*bar)'
singleton_mutations
mutation 'foo'
mutation 'foo(nil)'
mutation 'foo(bar)'
mutation 'foo(self)'
mutation 'foo(*nil)'
mutation 'foo(*self)'
end
Mutant::Meta::Example.add do
source 'foo(&bar)'
singleton_mutations
mutation 'foo'
end
Mutant::Meta::Example.add do
source 'foo[*bar]'
singleton_mutations
mutation 'foo'
end
Mutant::Meta::Example.add do
source 'foo'
singleton_mutations
end
Mutant::Meta::Example.add do
source 'self.foo'
singleton_mutations
mutation 'foo'
mutation 'nil.foo'
end
Unparser::Constants::KEYWORDS.each do |keyword|
Mutant::Meta::Example.add do
source "self.#{keyword}"
singleton_mutations
mutation "nil.#{keyword}"
end
end
Mutant::Meta::Example.add do
source 'foo.bar'
singleton_mutations
mutation 'foo'
mutation 'nil.bar'
mutation 'self.bar'
end
Mutant::Meta::Example.add do
source 'self.class.foo'
singleton_mutations
mutation 'self.class'
mutation 'self.foo'
mutation 'nil.class.foo'
mutation 'nil.foo'
end
Mutant::Meta::Example.add do
source 'foo(nil)'
singleton_mutations
mutation 'foo'
end
Mutant::Meta::Example.add do
source 'self.foo(nil)'
singleton_mutations
mutation 'self.foo'
mutation 'foo(nil)'
mutation 'nil.foo(nil)'
end
Unparser::Constants::KEYWORDS.each do |keyword|
Mutant::Meta::Example.add do
source "foo.#{keyword}(nil)"
singleton_mutations
mutation "self.#{keyword}(nil)"
mutation "foo.#{keyword}"
mutation 'foo'
mutation "nil.#{keyword}(nil)"
end
end
Mutant::Meta::Example.add do
source 'foo(nil, nil)'
singleton_mutations
mutation 'foo()'
mutation 'foo(nil)'
end
Mutant::Meta::Example.add do
source '(left - right) / foo'
singleton_mutations
mutation 'foo'
mutation '(left - right)'
mutation 'left / foo'
mutation 'right / foo'
mutation '(left - right) / nil'
mutation '(left - right) / self'
mutation '(left - nil) / foo'
mutation '(left - self) / foo'
mutation '(nil - right) / foo'
mutation '(self - right) / foo'
mutation 'nil / foo'
mutation 'self / foo'
end
(Mutant::BINARY_METHOD_OPERATORS - [:==, :eql?]).each do |operator|
Mutant::Meta::Example.add do
source "true #{operator} false"
singleton_mutations
mutation 'true'
mutation 'false'
mutation "false #{operator} false"
mutation "nil #{operator} false"
mutation "true #{operator} true"
mutation "true #{operator} nil"
end
end