debian-pyphen/debian/patches/0002-Add-tests-from-github....

152 lines
4.7 KiB
Diff

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