require 'date'
module Rumanu

  def digit_sum(n)
    cum = n.digits.sum
    cum = digit_sum(cum) unless cum.to_s.length == 1
    return cum
  end

  def reduce_list(l,alphabet)
    init = 0
    l.each do |c|
        alphabet.each do |k,v|
            init += v if c == k
        end
    end
    digit_sum(init)
  end

  def valid_date?(str)
    valid_formats = [/\d{2}\.\d{2}\.\d{4}/, /\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.new("Incorrect date format") if check_format.zero?
  end

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

  end

end