Sha256: 1e5868469167bea87d1eff4b137f09ee7cfea97f5dc704e23a2a729a6926d6ce
Contents?: true
Size: 1.18 KB
Versions: 2
Compression:
Stored size: 1.18 KB
Contents
# encoding: utf-8 module Mutant class Mutator class Node module Connective # Mutation emitter to handle binary connectives class Binary < Node INVERSE = { :and => :or, :or => :and, }.freeze handle(*INVERSE.keys) children :left, :right private # Emit mutations # # @return [undefined] # # @api private # def dispatch emit_nil 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 # Connective end # Node end # Mutator end # Mutant
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mutant-0.3.0.rc1 | lib/mutant/mutator/node/connective/binary.rb |
mutant-0.3.0.beta22 | lib/mutant/mutator/node/connective/binary.rb |