Sha256: feafeaed0779c5923ba2830e2a3ab8e4fe9385d307ffbb5dbb93461a84ee7fd0
Contents?: true
Size: 1.75 KB
Versions: 7
Compression:
Stored size: 1.75 KB
Contents
class MutationVerifier include Adamantium::Flat, Concord.new(:original_node, :expected, :generated) # Test if mutation was verified successfully # # @return [Boolean] # # @api private # def success? unparser.success? && missing.empty? && unexpected.empty? end # Return error report # # @return [String] # # @api private # def error_report unless unparser.success? return unparser.report end mutation_report end private # Return unexpected mutations # # @return [Array<Parser::AST::Node>] # # @api private # def unexpected generated - expected end memoize :unexpected # Return mutation report # # @return [String] # # @api private # # rubocop:disable AbcSize # def mutation_report message = ['Original-AST:', original_node.inspect, 'Original-Source:', Unparser.unparse(original_node)] if missing.any? message << 'Missing mutations:' message << missing.map(&method(:format_mutation)).join("\n-----\n") end if unexpected.any? message << 'Unexpected mutations:' message << unexpected.map(&method(:format_mutation)).join("\n-----\n") end message.join("\n======\n") end # Format mutation # # @return [String] # # @api private # def format_mutation(node) [ node.inspect, Unparser.unparse(node) ].join("\n") end # Return missing mutations # # @return [Array<Parser::AST::Node>] # # @api private # def missing expected - generated end memoize :missing # Return unparser verifier # # @return [Unparser::CLI::Source] # # @api private # def unparser Unparser::CLI::Source::Node.new(Unparser::Preprocessor.run(original_node)) end memoize :unparser end # MutationVerifier
Version data entries
7 entries across 7 versions & 1 rubygems