|
|
ddc75c0 |
# This file is part of Pyphen
|
|
|
ddc75c0 |
#
|
|
|
ddc75c0 |
# Copyright 2013 - Guillaume Ayoub <guillaume.ayoub@kozea.fr>
|
|
|
ddc75c0 |
#
|
|
|
ddc75c0 |
# This library is free software: you can redistribute it and/or modify it under
|
|
|
ddc75c0 |
# the terms of the GNU Lesser General Public License as published by the Free
|
|
|
ddc75c0 |
# Software Foundation, either version 2.1 of the License, or (at your option)
|
|
|
ddc75c0 |
# any later version.
|
|
|
ddc75c0 |
#
|
|
|
ddc75c0 |
# This library is distributed in the hope that it will be useful, but WITHOUT
|
|
|
ddc75c0 |
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
|
ddc75c0 |
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
|
|
ddc75c0 |
# details.
|
|
|
ddc75c0 |
#
|
|
|
ddc75c0 |
# You should have received a copy of the GNU Lesser General Public License
|
|
|
ddc75c0 |
# along with Pyphen. If not, see <http://www.gnu.org/licenses/>.
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
"""
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
Pyphen Tests
|
|
|
ddc75c0 |
============
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
Tests can be launched with:
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
- Pytest (``py.test test.py``).
|
|
|
ddc75c0 |
- Nose (``nosetests``).
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
"""
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
from __future__ import unicode_literals
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
import pyphen
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
def test_inserted():
|
|
|
ddc75c0 |
"""Test the ``inserted`` method."""
|
|
|
ddc75c0 |
dic = pyphen.Pyphen(lang='nl_NL')
|
|
|
ddc75c0 |
assert dic.inserted('lettergrepen') == 'let-ter-gre-pen'
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
def test_wrap():
|
|
|
ddc75c0 |
"""Test the ``wrap`` method."""
|
|
|
ddc75c0 |
dic = pyphen.Pyphen(lang='nl_NL')
|
|
|
ddc75c0 |
assert dic.wrap('autobandventieldopje', 11) == (
|
|
|
ddc75c0 |
'autoband-', 'ventieldopje')
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
def test_iterate():
|
|
|
ddc75c0 |
"""Test the ``iterate`` method."""
|
|
|
ddc75c0 |
dic = pyphen.Pyphen(lang='nl_NL')
|
|
|
ddc75c0 |
assert tuple(dic.iterate('Amsterdam')) == (
|
|
|
ddc75c0 |
('Amster', 'dam'), ('Am', 'sterdam'))
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
def test_fallback_dict():
|
|
|
ddc75c0 |
"""Test the ``iterate`` method with a fallback dict."""
|
|
|
ddc75c0 |
dic = pyphen.Pyphen(lang='nl_NL-variant')
|
|
|
ddc75c0 |
assert tuple(dic.iterate('Amsterdam')) == (
|
|
|
ddc75c0 |
('Amster', 'dam'), ('Am', 'sterdam'))
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
def test_missing_dict():
|
|
|
ddc75c0 |
"""Test a missing dict."""
|
|
|
ddc75c0 |
try:
|
|
|
ddc75c0 |
pyphen.Pyphen(lang='mi_SS')
|
|
|
ddc75c0 |
except KeyError:
|
|
|
ddc75c0 |
pass
|
|
|
ddc75c0 |
else: # pragma: no cover
|
|
|
ddc75c0 |
raise Exception('Importing a missing dict must raise a KeyError')
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
def test_personal_dict():
|
|
|
ddc75c0 |
"""Test a personal dict."""
|
|
|
ddc75c0 |
dic = pyphen.Pyphen(lang='fr')
|
|
|
ddc75c0 |
assert dic.inserted('autobandventieldopje') != 'au-to-band-ven-tiel-dop-je'
|
|
|
ddc75c0 |
pyphen.LANGUAGES['fr'] = pyphen.LANGUAGES['nl_NL']
|
|
|
ddc75c0 |
dic = pyphen.Pyphen(lang='fr')
|
|
|
ddc75c0 |
assert dic.inserted('autobandventieldopje') == 'au-to-band-ven-tiel-dop-je'
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
def test_left_right():
|
|
|
ddc75c0 |
"""Test the ``left`` and ``right`` parameters."""
|
|
|
ddc75c0 |
dic = pyphen.Pyphen(lang='nl_NL')
|
|
|
ddc75c0 |
assert dic.inserted('lettergrepen') == 'let-ter-gre-pen'
|
|
|
ddc75c0 |
dic = pyphen.Pyphen(lang='nl_NL', left=4)
|
|
|
ddc75c0 |
assert dic.inserted('lettergrepen') == 'letter-gre-pen'
|
|
|
ddc75c0 |
dic = pyphen.Pyphen(lang='nl_NL', right=4)
|
|
|
ddc75c0 |
assert dic.inserted('lettergrepen') == 'let-ter-grepen'
|
|
|
ddc75c0 |
dic = pyphen.Pyphen(lang='nl_NL', left=4, right=4)
|
|
|
ddc75c0 |
assert dic.inserted('lettergrepen') == 'letter-grepen'
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
def test_filename():
|
|
|
ddc75c0 |
"""Test the ``filename`` parameter."""
|
|
|
ddc75c0 |
dic = pyphen.Pyphen(filename=pyphen.LANGUAGES['nl_NL'])
|
|
|
ddc75c0 |
assert dic.inserted('lettergrepen') == 'let-ter-gre-pen'
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
def test_alternative():
|
|
|
ddc75c0 |
"""Test the alternative parser."""
|
|
|
ddc75c0 |
dic = pyphen.Pyphen(lang='hu', left=1, right=1)
|
|
|
ddc75c0 |
assert tuple(dic.iterate('kulissza')) == (
|
|
|
ddc75c0 |
('kulisz', 'sza'), ('ku', 'lissza'))
|
|
|
ddc75c0 |
assert dic.inserted('kulissza') == 'ku-lisz-sza'
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
def test_upper():
|
|
|
ddc75c0 |
"""Test uppercase."""
|
|
|
ddc75c0 |
dic = pyphen.Pyphen(lang='nl_NL')
|
|
|
ddc75c0 |
assert dic.inserted('LETTERGREPEN') == 'LET-TER-GRE-PEN'
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
def test_upper_alternative():
|
|
|
ddc75c0 |
"""Test uppercase with alternative parser."""
|
|
|
ddc75c0 |
dic = pyphen.Pyphen(lang='hu', left=1, right=1)
|
|
|
ddc75c0 |
assert tuple(dic.iterate('KULISSZA')) == (
|
|
|
ddc75c0 |
('KULISZ', 'SZA'), ('KU', 'LISSZA'))
|
|
|
ddc75c0 |
assert dic.inserted('KULISSZA') == 'KU-LISZ-SZA'
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
def test_all_dictionaries():
|
|
|
ddc75c0 |
"""Test that all included dictionaries can be parsed."""
|
|
|
ddc75c0 |
for lang in pyphen.LANGUAGES:
|
|
|
ddc75c0 |
pyphen.Pyphen(lang=lang)
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
|
|
|
ddc75c0 |
def test_fallback():
|
|
|
ddc75c0 |
"""Test the language fallback algorithm."""
|
|
|
ddc75c0 |
assert pyphen.language_fallback('en') == 'en'
|
|
|
ddc75c0 |
assert pyphen.language_fallback('en_US') == 'en_US'
|
|
|
ddc75c0 |
assert pyphen.language_fallback('en_FR') == 'en'
|
|
|
ddc75c0 |
assert pyphen.language_fallback('en-Latn-US') == 'en_Latn_US'
|
|
|
ddc75c0 |
assert pyphen.language_fallback('en-Cyrl-US') == 'en'
|
|
|
ddc75c0 |
assert pyphen.language_fallback('fr-Latn-FR') == 'fr'
|
|
|
ddc75c0 |
assert pyphen.language_fallback('en-US_variant1-x') == 'en_US'
|