module RuboCop::Cop::InDeltaMixin

def assertion_method

def assertion_method
  class_name = self.class.name.split('::').last
  class_name[/\A[[:upper:]][[:lower:]]+/].downcase
end

def build_good_method(expected, actual, message)

def build_good_method(expected, actual, message)
  if message
    "#{assertion_method}_in_delta(#{expected.source}, #{actual.source}, 0.001, #{message.source})"
  else
    "#{assertion_method}_in_delta(#{expected.source}, #{actual.source})"
  end
end

def on_send(node)

def on_send(node)
  equal_floats_call(node) do |expected, actual, message|
    message = message.first
    good_method = build_good_method(expected, actual, message)
    if expected.float_type? || actual.float_type?
      message = format(MSG, good_method: good_method)
      add_offense(node, message: message) do |corrector|
        corrector.replace(node, good_method)
      end
    end
  end
end