diff --git a/spacy/tests/hu/conftest.py b/spacy/tests/hu/conftest.py new file mode 100644 index 000000000..222bd1b00 --- /dev/null +++ b/spacy/tests/hu/conftest.py @@ -0,0 +1,11 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import pytest + +from ...hu import Hungarian + + +@pytest.fixture +def hu_tokenizer(): + return Hungarian.Defaults.create_tokenizer() diff --git a/spacy/tests/hu/tokenizer/test_tokenizer.py b/spacy/tests/hu/tokenizer/test_tokenizer.py index 2bfbfdf36..aea9873ee 100644 --- a/spacy/tests/hu/tokenizer/test_tokenizer.py +++ b/spacy/tests/hu/tokenizer/test_tokenizer.py @@ -2,25 +2,27 @@ from __future__ import unicode_literals import pytest -from spacy.hu import Hungarian -_DEFAULT_TESTS = [('N. kormányzósági\nszékhely.', ['N.', 'kormányzósági', 'székhely', '.']), - ('A .hu egy tld.', ['A', '.hu', 'egy', 'tld', '.']), - ('Az egy.ketto pelda.', ['Az', 'egy.ketto', 'pelda', '.']), - ('A pl. rovidites.', ['A', 'pl.', 'rovidites', '.']), - ('A S.M.A.R.T. szo.', ['A', 'S.M.A.R.T.', 'szo', '.']), - ('A .hu.', ['A', '.hu', '.']), - ('Az egy.ketto.', ['Az', 'egy.ketto', '.']), - ('A pl.', ['A', 'pl.']), - ('A S.M.A.R.T.', ['A', 'S.M.A.R.T.']), - ('Egy..ket.', ['Egy', '..', 'ket', '.']), - ('Valami... van.', ['Valami', '...', 'van', '.']), - ('Valami ...van...', ['Valami', '...', 'van', '...']), - ('Valami...', ['Valami', '...']), - ('Valami ...', ['Valami', '...']), - ('Valami ... más.', ['Valami', '...', 'más', '.'])] -_HYPHEN_TESTS = [ +DEFAULT_TESTS = [ + ('N. kormányzósági\nszékhely.', ['N.', 'kormányzósági', 'székhely', '.']), + ('A .hu egy tld.', ['A', '.hu', 'egy', 'tld', '.']), + ('Az egy.ketto pelda.', ['Az', 'egy.ketto', 'pelda', '.']), + ('A pl. rovidites.', ['A', 'pl.', 'rovidites', '.']), + ('A S.M.A.R.T. szo.', ['A', 'S.M.A.R.T.', 'szo', '.']), + ('A .hu.', ['A', '.hu', '.']), + ('Az egy.ketto.', ['Az', 'egy.ketto', '.']), + ('A pl.', ['A', 'pl.']), + ('A S.M.A.R.T.', ['A', 'S.M.A.R.T.']), + ('Egy..ket.', ['Egy', '..', 'ket', '.']), + ('Valami... van.', ['Valami', '...', 'van', '.']), + ('Valami ...van...', ['Valami', '...', 'van', '...']), + ('Valami...', ['Valami', '...']), + ('Valami ...', ['Valami', '...']), + ('Valami ... más.', ['Valami', '...', 'más', '.']) +] + +HYPHEN_TESTS = [ ('Egy -nak, -jaiért, -magyar, bel- van.', ['Egy', '-nak', ',', '-jaiért', ',', '-magyar', ',', 'bel-', 'van', '.']), ('Egy -nak.', ['Egy', '-nak', '.']), ('Egy bel-.', ['Egy', 'bel-', '.']), @@ -39,195 +41,194 @@ _HYPHEN_TESTS = [ ('A 7-es.', ['A', '7-es', '.']), ('Ez (lakik)-e?', ['Ez', '(', 'lakik', ')', '-e', '?']), ('A %-sal.', ['A', '%-sal', '.']), - ('A CD-ROM-okrol.', ['A', 'CD-ROM-okrol', '.'])] + ('A CD-ROM-okrol.', ['A', 'CD-ROM-okrol', '.']) +] -_NUMBER_TESTS = [('A 2b van.', ['A', '2b', 'van', '.']), - ('A 2b-ben van.', ['A', '2b-ben', 'van', '.']), - ('A 2b.', ['A', '2b', '.']), - ('A 2b-ben.', ['A', '2b-ben', '.']), - ('A 3.b van.', ['A', '3.b', 'van', '.']), - ('A 3.b-ben van.', ['A', '3.b-ben', 'van', '.']), - ('A 3.b.', ['A', '3.b', '.']), - ('A 3.b-ben.', ['A', '3.b-ben', '.']), - ('A 1:20:36.7 van.', ['A', '1:20:36.7', 'van', '.']), - ('A 1:20:36.7-ben van.', ['A', '1:20:36.7-ben', 'van', '.']), - ('A 1:20:36.7-ben.', ['A', '1:20:36.7-ben', '.']), - ('A 1:35 van.', ['A', '1:35', 'van', '.']), - ('A 1:35-ben van.', ['A', '1:35-ben', 'van', '.']), - ('A 1:35-ben.', ['A', '1:35-ben', '.']), - ('A 1.35 van.', ['A', '1.35', 'van', '.']), - ('A 1.35-ben van.', ['A', '1.35-ben', 'van', '.']), - ('A 1.35-ben.', ['A', '1.35-ben', '.']), - ('A 4:01,95 van.', ['A', '4:01,95', 'van', '.']), - ('A 4:01,95-ben van.', ['A', '4:01,95-ben', 'van', '.']), - ('A 4:01,95-ben.', ['A', '4:01,95-ben', '.']), - ('A 10--12 van.', ['A', '10--12', 'van', '.']), - ('A 10--12-ben van.', ['A', '10--12-ben', 'van', '.']), - ('A 10--12-ben.', ['A', '10--12-ben', '.']), - ('A 10‐12 van.', ['A', '10‐12', 'van', '.']), - ('A 10‐12-ben van.', ['A', '10‐12-ben', 'van', '.']), - ('A 10‐12-ben.', ['A', '10‐12-ben', '.']), - ('A 10‑12 van.', ['A', '10‑12', 'van', '.']), - ('A 10‑12-ben van.', ['A', '10‑12-ben', 'van', '.']), - ('A 10‑12-ben.', ['A', '10‑12-ben', '.']), - ('A 10‒12 van.', ['A', '10‒12', 'van', '.']), - ('A 10‒12-ben van.', ['A', '10‒12-ben', 'van', '.']), - ('A 10‒12-ben.', ['A', '10‒12-ben', '.']), - ('A 10–12 van.', ['A', '10–12', 'van', '.']), - ('A 10–12-ben van.', ['A', '10–12-ben', 'van', '.']), - ('A 10–12-ben.', ['A', '10–12-ben', '.']), - ('A 10—12 van.', ['A', '10—12', 'van', '.']), - ('A 10—12-ben van.', ['A', '10—12-ben', 'van', '.']), - ('A 10—12-ben.', ['A', '10—12-ben', '.']), - ('A 10―12 van.', ['A', '10―12', 'van', '.']), - ('A 10―12-ben van.', ['A', '10―12-ben', 'van', '.']), - ('A 10―12-ben.', ['A', '10―12-ben', '.']), - ('A -23,12 van.', ['A', '-23,12', 'van', '.']), - ('A -23,12-ben van.', ['A', '-23,12-ben', 'van', '.']), - ('A -23,12-ben.', ['A', '-23,12-ben', '.']), - ('A 2+3 van.', ['A', '2', '+', '3', 'van', '.']), - ('A 2 +3 van.', ['A', '2', '+', '3', 'van', '.']), - ('A 2+ 3 van.', ['A', '2', '+', '3', 'van', '.']), - ('A 2 + 3 van.', ['A', '2', '+', '3', 'van', '.']), - ('A 2*3 van.', ['A', '2', '*', '3', 'van', '.']), - ('A 2 *3 van.', ['A', '2', '*', '3', 'van', '.']), - ('A 2* 3 van.', ['A', '2', '*', '3', 'van', '.']), - ('A 2 * 3 van.', ['A', '2', '*', '3', 'van', '.']), - ('A C++ van.', ['A', 'C++', 'van', '.']), - ('A C++-ben van.', ['A', 'C++-ben', 'van', '.']), - ('A C++.', ['A', 'C++', '.']), - ('A C++-ben.', ['A', 'C++-ben', '.']), - ('A 2003. I. 06. van.', ['A', '2003.', 'I.', '06.', 'van', '.']), - ('A 2003. I. 06-ben van.', ['A', '2003.', 'I.', '06-ben', 'van', '.']), - ('A 2003. I. 06.', ['A', '2003.', 'I.', '06.']), - ('A 2003. I. 06-ben.', ['A', '2003.', 'I.', '06-ben', '.']), - ('A 2003. 01. 06. van.', ['A', '2003.', '01.', '06.', 'van', '.']), - ('A 2003. 01. 06-ben van.', ['A', '2003.', '01.', '06-ben', 'van', '.']), - ('A 2003. 01. 06.', ['A', '2003.', '01.', '06.']), - ('A 2003. 01. 06-ben.', ['A', '2003.', '01.', '06-ben', '.']), - ('A IV. 12. van.', ['A', 'IV.', '12.', 'van', '.']), - ('A IV. 12-ben van.', ['A', 'IV.', '12-ben', 'van', '.']), - ('A IV. 12.', ['A', 'IV.', '12.']), - ('A IV. 12-ben.', ['A', 'IV.', '12-ben', '.']), - ('A 2003.01.06. van.', ['A', '2003.01.06.', 'van', '.']), - ('A 2003.01.06-ben van.', ['A', '2003.01.06-ben', 'van', '.']), - ('A 2003.01.06.', ['A', '2003.01.06.']), - ('A 2003.01.06-ben.', ['A', '2003.01.06-ben', '.']), - ('A IV.12. van.', ['A', 'IV.12.', 'van', '.']), - ('A IV.12-ben van.', ['A', 'IV.12-ben', 'van', '.']), - ('A IV.12.', ['A', 'IV.12.']), - ('A IV.12-ben.', ['A', 'IV.12-ben', '.']), - ('A 1.1.2. van.', ['A', '1.1.2.', 'van', '.']), - ('A 1.1.2-ben van.', ['A', '1.1.2-ben', 'van', '.']), - ('A 1.1.2.', ['A', '1.1.2.']), - ('A 1.1.2-ben.', ['A', '1.1.2-ben', '.']), - ('A 1,5--2,5 van.', ['A', '1,5--2,5', 'van', '.']), - ('A 1,5--2,5-ben van.', ['A', '1,5--2,5-ben', 'van', '.']), - ('A 1,5--2,5-ben.', ['A', '1,5--2,5-ben', '.']), - ('A 3,14 van.', ['A', '3,14', 'van', '.']), - ('A 3,14-ben van.', ['A', '3,14-ben', 'van', '.']), - ('A 3,14-ben.', ['A', '3,14-ben', '.']), - ('A 3.14 van.', ['A', '3.14', 'van', '.']), - ('A 3.14-ben van.', ['A', '3.14-ben', 'van', '.']), - ('A 3.14-ben.', ['A', '3.14-ben', '.']), - ('A 15. van.', ['A', '15.', 'van', '.']), - ('A 15-ben van.', ['A', '15-ben', 'van', '.']), - ('A 15-ben.', ['A', '15-ben', '.']), - ('A 15.-ben van.', ['A', '15.-ben', 'van', '.']), - ('A 15.-ben.', ['A', '15.-ben', '.']), - ('A 2002--2003. van.', ['A', '2002--2003.', 'van', '.']), - ('A 2002--2003-ben van.', ['A', '2002--2003-ben', 'van', '.']), - ('A 2002--2003-ben.', ['A', '2002--2003-ben', '.']), - ('A -0,99% van.', ['A', '-0,99%', 'van', '.']), - ('A -0,99%-ben van.', ['A', '-0,99%-ben', 'van', '.']), - ('A -0,99%.', ['A', '-0,99%', '.']), - ('A -0,99%-ben.', ['A', '-0,99%-ben', '.']), - ('A 10--20% van.', ['A', '10--20%', 'van', '.']), - ('A 10--20%-ben van.', ['A', '10--20%-ben', 'van', '.']), - ('A 10--20%.', ['A', '10--20%', '.']), - ('A 10--20%-ben.', ['A', '10--20%-ben', '.']), - ('A 99§ van.', ['A', '99§', 'van', '.']), - ('A 99§-ben van.', ['A', '99§-ben', 'van', '.']), - ('A 99§-ben.', ['A', '99§-ben', '.']), - ('A 10--20§ van.', ['A', '10--20§', 'van', '.']), - ('A 10--20§-ben van.', ['A', '10--20§-ben', 'van', '.']), - ('A 10--20§-ben.', ['A', '10--20§-ben', '.']), - ('A 99° van.', ['A', '99°', 'van', '.']), - ('A 99°-ben van.', ['A', '99°-ben', 'van', '.']), - ('A 99°-ben.', ['A', '99°-ben', '.']), - ('A 10--20° van.', ['A', '10--20°', 'van', '.']), - ('A 10--20°-ben van.', ['A', '10--20°-ben', 'van', '.']), - ('A 10--20°-ben.', ['A', '10--20°-ben', '.']), - ('A °C van.', ['A', '°C', 'van', '.']), - ('A °C-ben van.', ['A', '°C-ben', 'van', '.']), - ('A °C.', ['A', '°C', '.']), - ('A °C-ben.', ['A', '°C-ben', '.']), - ('A 100°C van.', ['A', '100°C', 'van', '.']), - ('A 100°C-ben van.', ['A', '100°C-ben', 'van', '.']), - ('A 100°C.', ['A', '100°C', '.']), - ('A 100°C-ben.', ['A', '100°C-ben', '.']), - ('A 800x600 van.', ['A', '800x600', 'van', '.']), - ('A 800x600-ben van.', ['A', '800x600-ben', 'van', '.']), - ('A 800x600-ben.', ['A', '800x600-ben', '.']), - ('A 1x2x3x4 van.', ['A', '1x2x3x4', 'van', '.']), - ('A 1x2x3x4-ben van.', ['A', '1x2x3x4-ben', 'van', '.']), - ('A 1x2x3x4-ben.', ['A', '1x2x3x4-ben', '.']), - ('A 5/J van.', ['A', '5/J', 'van', '.']), - ('A 5/J-ben van.', ['A', '5/J-ben', 'van', '.']), - ('A 5/J-ben.', ['A', '5/J-ben', '.']), - ('A 5/J. van.', ['A', '5/J.', 'van', '.']), - ('A 5/J.-ben van.', ['A', '5/J.-ben', 'van', '.']), - ('A 5/J.-ben.', ['A', '5/J.-ben', '.']), - ('A III/1 van.', ['A', 'III/1', 'van', '.']), - ('A III/1-ben van.', ['A', 'III/1-ben', 'van', '.']), - ('A III/1-ben.', ['A', 'III/1-ben', '.']), - ('A III/1. van.', ['A', 'III/1.', 'van', '.']), - ('A III/1.-ben van.', ['A', 'III/1.-ben', 'van', '.']), - ('A III/1.-ben.', ['A', 'III/1.-ben', '.']), - ('A III/c van.', ['A', 'III/c', 'van', '.']), - ('A III/c-ben van.', ['A', 'III/c-ben', 'van', '.']), - ('A III/c.', ['A', 'III/c', '.']), - ('A III/c-ben.', ['A', 'III/c-ben', '.']), - ('A TU–154 van.', ['A', 'TU–154', 'van', '.']), - ('A TU–154-ben van.', ['A', 'TU–154-ben', 'van', '.']), - ('A TU–154-ben.', ['A', 'TU–154-ben', '.'])] +NUMBER_TESTS = [ + ('A 2b van.', ['A', '2b', 'van', '.']), + ('A 2b-ben van.', ['A', '2b-ben', 'van', '.']), + ('A 2b.', ['A', '2b', '.']), + ('A 2b-ben.', ['A', '2b-ben', '.']), + ('A 3.b van.', ['A', '3.b', 'van', '.']), + ('A 3.b-ben van.', ['A', '3.b-ben', 'van', '.']), + ('A 3.b.', ['A', '3.b', '.']), + ('A 3.b-ben.', ['A', '3.b-ben', '.']), + ('A 1:20:36.7 van.', ['A', '1:20:36.7', 'van', '.']), + ('A 1:20:36.7-ben van.', ['A', '1:20:36.7-ben', 'van', '.']), + ('A 1:20:36.7-ben.', ['A', '1:20:36.7-ben', '.']), + ('A 1:35 van.', ['A', '1:35', 'van', '.']), + ('A 1:35-ben van.', ['A', '1:35-ben', 'van', '.']), + ('A 1:35-ben.', ['A', '1:35-ben', '.']), + ('A 1.35 van.', ['A', '1.35', 'van', '.']), + ('A 1.35-ben van.', ['A', '1.35-ben', 'van', '.']), + ('A 1.35-ben.', ['A', '1.35-ben', '.']), + ('A 4:01,95 van.', ['A', '4:01,95', 'van', '.']), + ('A 4:01,95-ben van.', ['A', '4:01,95-ben', 'van', '.']), + ('A 4:01,95-ben.', ['A', '4:01,95-ben', '.']), + ('A 10--12 van.', ['A', '10--12', 'van', '.']), + ('A 10--12-ben van.', ['A', '10--12-ben', 'van', '.']), + ('A 10--12-ben.', ['A', '10--12-ben', '.']), + ('A 10‐12 van.', ['A', '10‐12', 'van', '.']), + ('A 10‐12-ben van.', ['A', '10‐12-ben', 'van', '.']), + ('A 10‐12-ben.', ['A', '10‐12-ben', '.']), + ('A 10‑12 van.', ['A', '10‑12', 'van', '.']), + ('A 10‑12-ben van.', ['A', '10‑12-ben', 'van', '.']), + ('A 10‑12-ben.', ['A', '10‑12-ben', '.']), + ('A 10‒12 van.', ['A', '10‒12', 'van', '.']), + ('A 10‒12-ben van.', ['A', '10‒12-ben', 'van', '.']), + ('A 10‒12-ben.', ['A', '10‒12-ben', '.']), + ('A 10–12 van.', ['A', '10–12', 'van', '.']), + ('A 10–12-ben van.', ['A', '10–12-ben', 'van', '.']), + ('A 10–12-ben.', ['A', '10–12-ben', '.']), + ('A 10—12 van.', ['A', '10—12', 'van', '.']), + ('A 10—12-ben van.', ['A', '10—12-ben', 'van', '.']), + ('A 10—12-ben.', ['A', '10—12-ben', '.']), + ('A 10―12 van.', ['A', '10―12', 'van', '.']), + ('A 10―12-ben van.', ['A', '10―12-ben', 'van', '.']), + ('A 10―12-ben.', ['A', '10―12-ben', '.']), + ('A -23,12 van.', ['A', '-23,12', 'van', '.']), + ('A -23,12-ben van.', ['A', '-23,12-ben', 'van', '.']), + ('A -23,12-ben.', ['A', '-23,12-ben', '.']), + ('A 2+3 van.', ['A', '2', '+', '3', 'van', '.']), + ('A 2 +3 van.', ['A', '2', '+', '3', 'van', '.']), + ('A 2+ 3 van.', ['A', '2', '+', '3', 'van', '.']), + ('A 2 + 3 van.', ['A', '2', '+', '3', 'van', '.']), + ('A 2*3 van.', ['A', '2', '*', '3', 'van', '.']), + ('A 2 *3 van.', ['A', '2', '*', '3', 'van', '.']), + ('A 2* 3 van.', ['A', '2', '*', '3', 'van', '.']), + ('A 2 * 3 van.', ['A', '2', '*', '3', 'van', '.']), + ('A C++ van.', ['A', 'C++', 'van', '.']), + ('A C++-ben van.', ['A', 'C++-ben', 'van', '.']), + ('A C++.', ['A', 'C++', '.']), + ('A C++-ben.', ['A', 'C++-ben', '.']), + ('A 2003. I. 06. van.', ['A', '2003.', 'I.', '06.', 'van', '.']), + ('A 2003. I. 06-ben van.', ['A', '2003.', 'I.', '06-ben', 'van', '.']), + ('A 2003. I. 06.', ['A', '2003.', 'I.', '06.']), + ('A 2003. I. 06-ben.', ['A', '2003.', 'I.', '06-ben', '.']), + ('A 2003. 01. 06. van.', ['A', '2003.', '01.', '06.', 'van', '.']), + ('A 2003. 01. 06-ben van.', ['A', '2003.', '01.', '06-ben', 'van', '.']), + ('A 2003. 01. 06.', ['A', '2003.', '01.', '06.']), + ('A 2003. 01. 06-ben.', ['A', '2003.', '01.', '06-ben', '.']), + ('A IV. 12. van.', ['A', 'IV.', '12.', 'van', '.']), + ('A IV. 12-ben van.', ['A', 'IV.', '12-ben', 'van', '.']), + ('A IV. 12.', ['A', 'IV.', '12.']), + ('A IV. 12-ben.', ['A', 'IV.', '12-ben', '.']), + ('A 2003.01.06. van.', ['A', '2003.01.06.', 'van', '.']), + ('A 2003.01.06-ben van.', ['A', '2003.01.06-ben', 'van', '.']), + ('A 2003.01.06.', ['A', '2003.01.06.']), + ('A 2003.01.06-ben.', ['A', '2003.01.06-ben', '.']), + ('A IV.12. van.', ['A', 'IV.12.', 'van', '.']), + ('A IV.12-ben van.', ['A', 'IV.12-ben', 'van', '.']), + ('A IV.12.', ['A', 'IV.12.']), + ('A IV.12-ben.', ['A', 'IV.12-ben', '.']), + ('A 1.1.2. van.', ['A', '1.1.2.', 'van', '.']), + ('A 1.1.2-ben van.', ['A', '1.1.2-ben', 'van', '.']), + ('A 1.1.2.', ['A', '1.1.2.']), + ('A 1.1.2-ben.', ['A', '1.1.2-ben', '.']), + ('A 1,5--2,5 van.', ['A', '1,5--2,5', 'van', '.']), + ('A 1,5--2,5-ben van.', ['A', '1,5--2,5-ben', 'van', '.']), + ('A 1,5--2,5-ben.', ['A', '1,5--2,5-ben', '.']), + ('A 3,14 van.', ['A', '3,14', 'van', '.']), + ('A 3,14-ben van.', ['A', '3,14-ben', 'van', '.']), + ('A 3,14-ben.', ['A', '3,14-ben', '.']), + ('A 3.14 van.', ['A', '3.14', 'van', '.']), + ('A 3.14-ben van.', ['A', '3.14-ben', 'van', '.']), + ('A 3.14-ben.', ['A', '3.14-ben', '.']), + ('A 15. van.', ['A', '15.', 'van', '.']), + ('A 15-ben van.', ['A', '15-ben', 'van', '.']), + ('A 15-ben.', ['A', '15-ben', '.']), + ('A 15.-ben van.', ['A', '15.-ben', 'van', '.']), + ('A 15.-ben.', ['A', '15.-ben', '.']), + ('A 2002--2003. van.', ['A', '2002--2003.', 'van', '.']), + ('A 2002--2003-ben van.', ['A', '2002--2003-ben', 'van', '.']), + ('A 2002--2003-ben.', ['A', '2002--2003-ben', '.']), + ('A -0,99% van.', ['A', '-0,99%', 'van', '.']), + ('A -0,99%-ben van.', ['A', '-0,99%-ben', 'van', '.']), + ('A -0,99%.', ['A', '-0,99%', '.']), + ('A -0,99%-ben.', ['A', '-0,99%-ben', '.']), + ('A 10--20% van.', ['A', '10--20%', 'van', '.']), + ('A 10--20%-ben van.', ['A', '10--20%-ben', 'van', '.']), + ('A 10--20%.', ['A', '10--20%', '.']), + ('A 10--20%-ben.', ['A', '10--20%-ben', '.']), + ('A 99§ van.', ['A', '99§', 'van', '.']), + ('A 99§-ben van.', ['A', '99§-ben', 'van', '.']), + ('A 99§-ben.', ['A', '99§-ben', '.']), + ('A 10--20§ van.', ['A', '10--20§', 'van', '.']), + ('A 10--20§-ben van.', ['A', '10--20§-ben', 'van', '.']), + ('A 10--20§-ben.', ['A', '10--20§-ben', '.']), + ('A 99° van.', ['A', '99°', 'van', '.']), + ('A 99°-ben van.', ['A', '99°-ben', 'van', '.']), + ('A 99°-ben.', ['A', '99°-ben', '.']), + ('A 10--20° van.', ['A', '10--20°', 'van', '.']), + ('A 10--20°-ben van.', ['A', '10--20°-ben', 'van', '.']), + ('A 10--20°-ben.', ['A', '10--20°-ben', '.']), + ('A °C van.', ['A', '°C', 'van', '.']), + ('A °C-ben van.', ['A', '°C-ben', 'van', '.']), + ('A °C.', ['A', '°C', '.']), + ('A °C-ben.', ['A', '°C-ben', '.']), + ('A 100°C van.', ['A', '100°C', 'van', '.']), + ('A 100°C-ben van.', ['A', '100°C-ben', 'van', '.']), + ('A 100°C.', ['A', '100°C', '.']), + ('A 100°C-ben.', ['A', '100°C-ben', '.']), + ('A 800x600 van.', ['A', '800x600', 'van', '.']), + ('A 800x600-ben van.', ['A', '800x600-ben', 'van', '.']), + ('A 800x600-ben.', ['A', '800x600-ben', '.']), + ('A 1x2x3x4 van.', ['A', '1x2x3x4', 'van', '.']), + ('A 1x2x3x4-ben van.', ['A', '1x2x3x4-ben', 'van', '.']), + ('A 1x2x3x4-ben.', ['A', '1x2x3x4-ben', '.']), + ('A 5/J van.', ['A', '5/J', 'van', '.']), + ('A 5/J-ben van.', ['A', '5/J-ben', 'van', '.']), + ('A 5/J-ben.', ['A', '5/J-ben', '.']), + ('A 5/J. van.', ['A', '5/J.', 'van', '.']), + ('A 5/J.-ben van.', ['A', '5/J.-ben', 'van', '.']), + ('A 5/J.-ben.', ['A', '5/J.-ben', '.']), + ('A III/1 van.', ['A', 'III/1', 'van', '.']), + ('A III/1-ben van.', ['A', 'III/1-ben', 'van', '.']), + ('A III/1-ben.', ['A', 'III/1-ben', '.']), + ('A III/1. van.', ['A', 'III/1.', 'van', '.']), + ('A III/1.-ben van.', ['A', 'III/1.-ben', 'van', '.']), + ('A III/1.-ben.', ['A', 'III/1.-ben', '.']), + ('A III/c van.', ['A', 'III/c', 'van', '.']), + ('A III/c-ben van.', ['A', 'III/c-ben', 'van', '.']), + ('A III/c.', ['A', 'III/c', '.']), + ('A III/c-ben.', ['A', 'III/c-ben', '.']), + ('A TU–154 van.', ['A', 'TU–154', 'van', '.']), + ('A TU–154-ben van.', ['A', 'TU–154-ben', 'van', '.']), + ('A TU–154-ben.', ['A', 'TU–154-ben', '.']) +] -_QUOTE_TESTS = [('Az "Ime, hat"-ban irja.', ['Az', '"', 'Ime', ',', 'hat', '"', '-ban', 'irja', '.']), - ('"Ime, hat"-ban irja.', ['"', 'Ime', ',', 'hat', '"', '-ban', 'irja', '.']), - ('Az "Ime, hat".', ['Az', '"', 'Ime', ',', 'hat', '"', '.']), - ('Egy 24"-os monitor.', ['Egy', '24', '"', '-os', 'monitor', '.']), - ("A don't van.", ['A', "don't", 'van', '.'])] +QUOTE_TESTS = [ + ('Az "Ime, hat"-ban irja.', ['Az', '"', 'Ime', ',', 'hat', '"', '-ban', 'irja', '.']), + ('"Ime, hat"-ban irja.', ['"', 'Ime', ',', 'hat', '"', '-ban', 'irja', '.']), + ('Az "Ime, hat".', ['Az', '"', 'Ime', ',', 'hat', '"', '.']), + ('Egy 24"-os monitor.', ['Egy', '24', '"', '-os', 'monitor', '.']), + ("A don't van.", ['A', "don't", 'van', '.']) +] -_DOT_TESTS = [('N. kormányzósági\nszékhely.', ['N.', 'kormányzósági', 'székhely', '.']), - ('A .hu egy tld.', ['A', '.hu', 'egy', 'tld', '.']), - ('Az egy.ketto pelda.', ['Az', 'egy.ketto', 'pelda', '.']), - ('A pl. rovidites.', ['A', 'pl.', 'rovidites', '.']), - ('A S.M.A.R.T. szo.', ['A', 'S.M.A.R.T.', 'szo', '.']), - ('A .hu.', ['A', '.hu', '.']), - ('Az egy.ketto.', ['Az', 'egy.ketto', '.']), - ('A pl.', ['A', 'pl.']), - ('A S.M.A.R.T.', ['A', 'S.M.A.R.T.']), - ('Egy..ket.', ['Egy', '..', 'ket', '.']), - ('Valami... van.', ['Valami', '...', 'van', '.']), - ('Valami ...van...', ['Valami', '...', 'van', '...']), - ('Valami...', ['Valami', '...']), - ('Valami ...', ['Valami', '...']), - ('Valami ... más.', ['Valami', '...', 'más', '.'])] +DOT_TESTS = [ + ('N. kormányzósági\nszékhely.', ['N.', 'kormányzósági', 'székhely', '.']), + ('A .hu egy tld.', ['A', '.hu', 'egy', 'tld', '.']), + ('Az egy.ketto pelda.', ['Az', 'egy.ketto', 'pelda', '.']), + ('A pl. rovidites.', ['A', 'pl.', 'rovidites', '.']), + ('A S.M.A.R.T. szo.', ['A', 'S.M.A.R.T.', 'szo', '.']), + ('A .hu.', ['A', '.hu', '.']), + ('Az egy.ketto.', ['Az', 'egy.ketto', '.']), + ('A pl.', ['A', 'pl.']), + ('A S.M.A.R.T.', ['A', 'S.M.A.R.T.']), + ('Egy..ket.', ['Egy', '..', 'ket', '.']), + ('Valami... van.', ['Valami', '...', 'van', '.']), + ('Valami ...van...', ['Valami', '...', 'van', '...']), + ('Valami...', ['Valami', '...']), + ('Valami ...', ['Valami', '...']), + ('Valami ... más.', ['Valami', '...', 'más', '.']) +] -@pytest.fixture(scope="session") -def HU(): - return Hungarian() +TESTCASES = DEFAULT_TESTS + HYPHEN_TESTS + NUMBER_TESTS + DOT_TESTS + QUOTE_TESTS -@pytest.fixture(scope="module") -def hu_tokenizer(HU): - return HU.tokenizer - - -@pytest.mark.parametrize(("input", "expected_tokens"), - _DEFAULT_TESTS + _HYPHEN_TESTS + _NUMBER_TESTS + _DOT_TESTS + _QUOTE_TESTS) -def test_testcases(hu_tokenizer, input, expected_tokens): - tokens = hu_tokenizer(input) - token_list = [token.orth_ for token in tokens if not token.is_space] +@pytest.mark.parametrize('text,expected_tokens', TESTCASES) +def test_tokenizer_handles_testcases(hu_tokenizer, text, expected_tokens): + tokens = hu_tokenizer(text) + token_list = [token.text for token in tokens if not token.is_space] assert expected_tokens == token_list