class Mutiny::Mutants::Mutation::Method::UnaryArithmeticOperatorInsertion

Public Instance Methods

pattern() click to toggle source
# File lib/mutiny/mutants/mutation/method/unary_arithmetic_operator_insertion.rb, line 8
def pattern # rubocop:disable Metrics/AbcSize
  builder.either!(
    builder.literal!(:int, builder.VAL { |val| val.name > 0 }),
    builder.literal!(:float, builder.VAL { |val| val.name > 0 }),
    builder.literal!(:send, nil, builder.VAL { |val| !keyword?(val.name) })
  )
end
replacement() click to toggle source
# File lib/mutiny/mutants/mutation/method/unary_arithmetic_operator_insertion.rb, line 16
def replacement
  builder.derivation! :val, :& do |val, root|
    if val.name.is_a?(Numeric)
      builder.literal!(root.name, -val.name)
    else
      builder.literal!(:send, root, :-@)
    end
  end
end

Private Instance Methods

keyword?(word) click to toggle source
# File lib/mutiny/mutants/mutation/method/unary_arithmetic_operator_insertion.rb, line 28
def keyword?(word)
  %i(private protected).include?(word)
end