module FFaker::IdentificationTW

def id

https://en.wikipedia.org/wiki/National_identification_card_(Taiwan)#Identity_card_number
Identity Card Number
def id
  letter = FFaker.letterify('?')
  code = AREA_CODE[letter.to_sym]
  gender = fetch_sample([1, 2])
  serial = FFaker.numerify('#######')
  a, b, c, d, e, f, g, h, i, j = "#{code}#{gender}#{serial}".chars.map(&:to_i)
  checksum = (9 * a + b + 2 * c + 3 * d + 4 * e + 5 * f + 6 * g + 7 * h + 8 * i + 9 * j) % 10
  "#{letter.upcase}#{gender}#{serial}#{checksum}"
end