1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
# frozen_string_literal: true
require_relative '../../test_helper'
class TestFakerCode < Test::Unit::TestCase
def setup
@tester = Faker::Code
end
def test_npi_regexp
assert @tester.npi.match(/[0-9]{10}/)
end
def test_deterministic_npi
Faker::Config.random = Random.new(42)
v = @tester.npi
Faker::Config.random = Random.new(42)
assert v == @tester.npi
end
def test_default_isbn_regexp
assert @tester.isbn.match(/^\d{9}-[\d|X]$/)
end
def test_default_isbn13_regexp
assert @tester.isbn(base: 13).match(/^\d{12}-\d$/)
end
def test_default_ean_regexp
assert @tester.ean.match(/^\d{13}$/)
end
def test_default_ean8_regexp
assert @tester.ean(base: 8).match(/^\d{8}$/)
end
def test_rut
assert @tester.rut.match(/^\d{1,8}-(\d|k)$/)
end
def test_asin
assert @tester.asin.match(/^B000([A-Z]|\d){6}$/)
end
def test_nric
assert @tester.nric.match(/^(S|T)\d{7}[A-JZ]$/)
end
def test_imei_regexp
assert @tester.imei.match(/\A[\d.:\-\s]+\z/i)
end
def test_imei_luhn_value
assert luhn_checksum_valid(@tester.imei)
end
def test_sin
assert @tester.sin.match(/\d{9}/)
assert @tester.sin.length == 9
assert luhn_checksum_valid(@tester.sin)
end
def luhn_checksum_valid(numbers)
sum = 0
i = 0
numbers.each_char do |ch|
n = ch.to_i
n *= 2 if i.odd?
n = 1 + (n - 10) if n >= 10
sum += n
i += 1
end
(sum % 10).zero?
end
end
|