Skip to content

Commit

Permalink
core: added tests for #98
Browse files Browse the repository at this point in the history
  • Loading branch information
matze-dd authored Nov 6, 2020
1 parent a5acf78 commit b831814
Show file tree
Hide file tree
Showing 3 changed files with 165 additions and 9 deletions.
4 changes: 2 additions & 2 deletions tests/test_environments.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,15 +107,15 @@ def test_unknown():

latex_macro_in_arg = r"""
\usepackage{xcolor}
X\begin{XXX}{\textcolor}
X\begin{XYZ}{\textcolor}
{red}{blue}
"""
plain_macro_in_arg = r"""
Xblue
"""
def test_macro_in_arg():
parms = parameters.Parameters()
parms.environment_defs.append(defs.Environ(parms, 'XXX',
parms.environment_defs.append(defs.Environ(parms, 'XYZ',
args='A', repl='#1', add_pars=False))
p = parser.Parser(parms)
toks = p.parse(latex_macro_in_arg)
Expand Down
14 changes: 7 additions & 7 deletions tests/test_error.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

latex_1 = r"""
$
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
"""
plain_1 = r"""
LATEXXXERROR (missing end of maths) C-C-C"""
Expand All @@ -24,12 +24,12 @@ def test_1():
latex_2 = r"""
\verb?
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
"""
plain_2 = r"""
LATEXXXERROR (bad \verb argument)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
"""
def test_2():
p = parser.Parser(parms)
Expand All @@ -39,11 +39,11 @@ def test_2():

latex_3 = r"""
\begin{verbatim}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
"""
plain_3 = r"""
LATEXXXERROR (missing end of verbatim) verbatim
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
"""
def test_3():
p = parser.Parser(parms)
Expand All @@ -54,11 +54,11 @@ def test_3():
latex_4 = r"""
\usepackage{xcolor}
\textcolor{red}{
XXX
YYY
"""
plain_4 = r"""
LATEXXXERROR LATEXXXERROR (cannot find closing "}")
XXX
YYY
"""
def test_4():
p = parser.Parser(parms)
Expand Down
156 changes: 156 additions & 0 deletions tests/test_multi_lang.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@

#
# splitting of multi-language texts into several parts
#

from yalafi import parameters, parser, utils
from yalafi.packages import babel

prefix = '\\usepackage{babel}\n'

def get_ml(latex):
parms = parameters.Parameters(language='de-DE')
parms.multi_language = True

babel.modify_language_map('lang1', 'de-DE')
babel.modify_language_map('lang2', 'en-GB')
babel.modify_language_map('lang3', 'ru-RU')

p = parser.Parser(parms)
toks = p.parse(prefix + latex)
return utils.get_txt_pos_ml(toks, 'de-DE', parms)

def get_ml_txt(latex):
ml = get_ml(latex)
return {k: [tp[0] for tp in v] for (k,v) in ml.items()}

latex_1 = r"""
A
"""
plain_1 = {
'de-DE': [
"""
A
"""
]
}
def test_1():
plain = get_ml_txt(latex_1)
assert plain == plain_1

latex_2 = r"""
\newcommand{\xxx}{lang2}
\selectlanguage{\xxx}
A
"""
plain_2 = {
# NB: the initial line break is for de-DE
'en-GB': [
"""A
"""
],
'de-DE': [
"""
"""
]
}
def test_2():
plain = get_ml_txt(latex_2)
assert plain == plain_2

latex_3 = r"""
G \foreignlanguage{lang2}{E E E}
G
"""
plain_3 = {
'de-DE': [
"""
G L-L-L
G
"""
],
'en-GB': [
"""E E E"""
]
}
def test_3():
plain = get_ml_txt(latex_3)
assert plain == plain_3

# Here, the intermediate text is too long.
# cf. utils.ml_check_lang_section()
#
latex_4 = r"""
G \foreignlanguage{lang2}{E E E E} G
"""
plain_4 = {
'de-DE': [
"""
G """, # note the space
""" G
"""
],
'en-GB': [
"""E E E E"""
]
}
def test_4():
plain = get_ml_txt(latex_4)
assert plain == plain_4

# footnote should have original language
#
latex_5 = r"""
A\footnote{F} B
\selectlanguage{lang2}
C
"""
plain_5 = {
'de-DE': [
"""
A B
"""
,
"""F
"""
],
'en-GB': [
"""
C
"""
]
}
def test_5():
plain = get_ml_txt(latex_5)
assert plain == plain_5

# test multi-lang in \text{...}
#
latex_6 = r"""
\usepackage{amsmath}
A
\begin{align}
x &= y \text{ \foreignlanguage{lang2}{for all} } y
\end{align}
B
"""
plain_6 = {
'de-DE': [
"""
A
V-V-V gleich W-W-W L-L-L X-X-X
B
"""
],
'en-GB': [
"""for all"""
]
}
def test_6():
plain = get_ml_txt(latex_6)
assert plain == plain_6

0 comments on commit b831814

Please sign in to comment.