-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathtest_namecase.rb
63 lines (57 loc) · 1.95 KB
/
test_namecase.rb
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
# -*- coding: utf-8 -*-
#
require 'namecase'
require 'minitest/autorun'
class TestNameCase < Minitest::Test
def setup
@proper_names = [
"Keith", "Leigh-Williams", "McCarthy",
"O'Callaghan", "St. John", "von Streit",
"van Dyke", "Van", "ap Llwyd Dafydd",
"al Fahd", "Al",
"el Grecco",
"ben Gurion", "Ben",
"da Vinci",
"di Caprio", "du Pont", "de Legate",
"del Crond", "der Sind", "van der Post",
"von Trapp", "la Poisson", "le Figaro",
"Mack Knife", "Dougal MacDonald",
"Ruiz y Picasso", "Dato e Iradier", "Mas i Gavarró",
# Mac exceptions
"Machin", "Machlin", "Machar",
"Mackle", "Macklin", "Mackie",
"Macquarie", "Machado", "Macevicius",
"Maciulis", "Macias", "MacMurdo",
# Roman numerals
"Henry VIII", "Louis III", "Louis XIV",
"Charles II", "Fred XLIX", "Yusof bin Ishak",
]
end
def test_namecase
@proper_names.each do |name|
assert_equal(name, NameCase(name.downcase))
n = name.dup
n.extend(NameCase)
assert_equal(name, n.nc)
assert_equal(name, NameCase(name))
end
end
def test_namecase_modify
@proper_names.each do |name|
nc_name = NameCase!(name.downcase)
assert_equal(name, nc_name)
end
end
def test_namecase_multibyte
proper_cased = 'Iñtërnâtiônàlizætiøn'
nc_name = NameCase(proper_cased.downcase)
assert_equal(proper_cased, nc_name)
end
def test_that_it_skips_son_or_daughter_of_formatting
names = ["De Shawn", "Da'Quan", "Le'Andre", "La Tonya"]
names.each do |name|
nc_name = NameCase(name.downcase, son_or_daughter_of: false)
assert_equal(name, nc_name)
end
end
end