# frozen_string_literal: true

require 'date'
module Rumanu
  def digit_sum(n)
    return 0 if n.zero?

    1 + (n - 1) % 9
  end

  def reduce_list(lst, alphabet)
    digit_sum(lst.map { |value| alphabet[value] }.compact.sum)
  end

  def valid_date?(str)
    valid_formats = [/\d{2}\.\d{2}\.\d{4}/, %r{\d{2}/\d{2}/\d{4}}, /\d{2}-\d{2}-\d{4}/, /\d{4}-\d{2}-\d{2}/]
    check_format = valid_formats.map { |f| f.match?(str) && 1 || 0 }.reduce(0, :+)
    raise ArgumentError, 'Incorrect date format' if check_format.zero?
  end

  def valid_hash?(h)
    raise ArgumentError, 'Object must me a Hash' unless h.is_a? Hash
    raise ArgumentError, 'Hash can not be empty' unless h.empty? true
  end
end