2018-09-12 14:21:24 +00:00
|
|
|
# frozen_string_literal: true
|
2018-09-12 13:15:43 +00:00
|
|
|
|
2014-06-02 12:57:14 +00:00
|
|
|
module Mutant
|
|
|
|
module Meta
|
|
|
|
class Example
|
2018-12-02 00:18:10 +00:00
|
|
|
include Adamantium, Anima.new(:file, :node, :types, :expected)
|
2014-06-02 12:57:14 +00:00
|
|
|
|
2015-07-03 15:21:39 +00:00
|
|
|
# Verification instance for example
|
2014-06-02 12:57:14 +00:00
|
|
|
#
|
|
|
|
# @return [Verification]
|
|
|
|
def verification
|
|
|
|
Verification.new(self, generated)
|
|
|
|
end
|
2018-12-02 00:42:13 +00:00
|
|
|
memoize :verification
|
2014-06-02 12:57:14 +00:00
|
|
|
|
2015-07-03 15:21:39 +00:00
|
|
|
# Normalized source
|
2014-06-09 14:56:13 +00:00
|
|
|
#
|
|
|
|
# @return [String]
|
|
|
|
def source
|
|
|
|
Unparser.unparse(node)
|
|
|
|
end
|
|
|
|
memoize :source
|
|
|
|
|
2015-07-03 15:21:39 +00:00
|
|
|
# Generated mutations on example source
|
2014-06-02 12:57:14 +00:00
|
|
|
#
|
2014-08-12 16:26:03 -07:00
|
|
|
# @return [Enumerable<Mutant::Mutation>]
|
2014-06-02 12:57:14 +00:00
|
|
|
def generated
|
2016-05-05 23:36:46 -07:00
|
|
|
Mutator.mutate(node).map do |node|
|
2015-05-02 23:11:44 +00:00
|
|
|
Mutation::Evil.new(self, node)
|
2014-06-09 14:56:13 +00:00
|
|
|
end
|
2014-06-02 12:57:14 +00:00
|
|
|
end
|
|
|
|
memoize :generated
|
2016-03-19 15:13:05 +00:00
|
|
|
|
2014-06-02 12:57:14 +00:00
|
|
|
end # Example
|
|
|
|
end # Meta
|
|
|
|
end # Mutant
|