Sha256: b75458cda71765f10203f25cc1dae6f73b28319eec70ea685be5189ae15b59f7
Contents?: true
Size: 1.03 KB
Versions: 12
Compression:
Stored size: 1.03 KB
Contents
module Mutant class Mutator class Node # Mutation emitter to handle binary connectives class Binary < self INVERSE = { and: :or, or: :and }.freeze handle(*INVERSE.keys) children :left, :right private # Emit mutations # # @return [undefined] # # @api private # def dispatch emit_singletons emit(left) emit(right) mutate_operator mutate_operands end # Emit operator mutations # # @return [undefined] # # @api private # def mutate_operator emit(s(INVERSE.fetch(node.type), left, right)) end # Emit condition mutations # # @return [undefined] # # @api private # def mutate_operands emit(s(node.type, n_not(left), right)) emit(n_not(node)) end end # Binary end # Node end # Mutator end # Mutant
Version data entries
12 entries across 12 versions & 1 rubygems