Skip to content

Commit 258f121

Browse files
author
boraxpr
committed
bite 157 - Unicode
1 parent b04e580 commit 258f121

File tree

2 files changed

+61
-0
lines changed

2 files changed

+61
-0
lines changed

157/accents.py

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
texts = "Denominada en Euskera como Donostia, está "
2+
3+
4+
def filter_accents(text):
5+
"""Return a sequence of accented characters found in
6+
the passed in lowercased text string
7+
"""
8+
# 32-127 Basic Latin (The range of a-zA-Z
9+
# 128-591 = [Latin-1 Supplement, Latin Extended-A, Latin Extended-B]
10+
return [char for char in text.lower() if ord(char) in range(128, 592)]

157/test_accents.py

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import pytest
2+
3+
from accents import filter_accents
4+
5+
# texts taken from:
6+
# https://losviajesdedomi.com/las-15-ciudades-mas-bonitas-de-espana/
7+
# and:
8+
# https://www2.rocketlanguages.com/french/lessons/french-accents/
9+
texts = (
10+
("Denominada en Euskera como Donostia, está "
11+
"situada en el Golfo de Vizcaya en la provincia "
12+
"de Guipúzcoa. San Sebastián no es solo conocida "
13+
"por su afamado festival de cine, sino también "
14+
"por la belleza de sus calles, las cuales tienen "
15+
"un corte francés y aburguesado que atraen cada "
16+
"año a centenares de turistas."),
17+
("La capital de Cataluña, es la ciudad más visitada "
18+
"de España y la segunda más poblada. Barcelona es "
19+
"también una de las ciudades europeas más "
20+
"cosmopolitas y todo un símbolo cultural, "
21+
"financiero, comercial y turístico. Para muchos "
22+
"Barcelona es la ciudad más atractiva de España y "
23+
"una de las más bonitas."),
24+
("Sevilla es la capital de Andalucía, y para muchos, "
25+
"la ciudad más bonita de España. Pasear por sus calles, "
26+
"contemplar la Giralda, la Catedral o la Torre del Oro "
27+
"es una auténtica gozada. En primavera el olor a azahar "
28+
"lo envuelve todo. Al igual que Granada, toda la ciudad "
29+
"es una auténtica delicia. Su clima hace propensa la "
30+
"visita en casi cualquier época del año."),
31+
("The 5 French accents;"
32+
"The cédille (cedilla) Ç ..."
33+
"The accent aigu (acute accent) é ..."
34+
"The accent circonflexe (circumflex) â, ê, î, ô, û ..."
35+
"The accent grave (grave accent) à, è, ù ..."
36+
"The accent tréma (dieresis/umlaut) ë, ï, ü"),
37+
)
38+
expected = (
39+
['á', 'é', 'ñ', 'ú'],
40+
['á', 'é', 'í', 'ñ'],
41+
['á', 'é', 'í', 'ñ'],
42+
['à', 'â', 'ç', 'è', 'é', 'ê', 'ë', 'î', 'ï', 'ô', 'ù', 'û', 'ü'],
43+
)
44+
45+
46+
@pytest.mark.parametrize("text, expected", zip(texts, expected))
47+
def test_filter_accents(text, expected):
48+
# get rid of duplicates and sort results
49+
result = filter_accents(text)
50+
actual = sorted(list(set(result)))
51+
assert actual == expected

0 commit comments

Comments
 (0)