class Mutest::Mutator::Node::Case

Mutator for case nodes

Private Instance Methods

dispatch() click to toggle source

Emit mutations

@return [undefined]

# File lib/mutest/mutator/node/case.rb, line 15
def dispatch
  emit_singletons
  emit_condition_mutations if condition
  emit_when_mutations
  emit_else_mutations
end
emit_else_mutations() click to toggle source

Emit else mutations

@return [undefined]

# File lib/mutest/mutator/node/case.rb, line 37
def emit_else_mutations
  else_branch = children.last
  else_index = children.length - 1

  return unless else_branch

  mutate_child(else_index)
  emit_child_update(else_index, nil)
end
emit_when_mutations() click to toggle source

Emit when mutations

@return [undefined]

# File lib/mutest/mutator/node/case.rb, line 25
def emit_when_mutations
  indices = children.each_index.drop(1).take(children.length - 2)
  one = indices.one?
  indices.each do |index|
    mutate_child(index)
    delete_child(index) unless one
  end
end