def test_10(): parms = parameters.Parameters() parms.math_displayed_simple = True p = parser.Parser(parms) toks = p.parse(latex_10) plain, pos = utils.get_txt_pos(toks) assert plain_10 == plain
def test_1(): # keep verbatim parms = parameters.Parameters() p = parser.Parser(parms) toks = p.parse(latex_1) plain, pos = utils.get_txt_pos(toks) assert plain == plain_1
def test_6(): parms = parameters.Parameters() parms.no_specials() p = parser.Parser(parms) toks = p.parse(latex_6) plain, pos = utils.get_txt_pos(toks) assert plain_6 == plain
def test_comment(): parms = parameters.Parameters() p = parser.Parser(parms) toks = p.parse(latex_comment) plain_comment, pos = utils.get_txt_pos(toks) assert plain_comment_should_be == plain_comment
def test_3(): parms = parameters.Parameters() parms.item_default_label = ['*'] p = parser.Parser(parms) toks = p.parse(latex_3) plain, pos = utils.get_txt_pos(toks) assert plain_3 == plain
def test_4(capsys): capsys.readouterr() p = parser.Parser(parameters.Parameters()) toks = p.parse(latex_4, source='t.tex') plain, pos = utils.get_txt_pos(toks) cap = capsys.readouterr() assert plain_4 == plain assert cap.err == stderr_4
def test_macro_in_arg(): parms = parameters.Parameters() 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) plain, pos = utils.get_txt_pos(toks) assert plain_macro_in_arg == plain
def test_2(): parms = parameters.Parameters() parms.item_default_label = ['*'] parms.item_punctuation = [] p = parser.Parser(parms) toks = p.parse(latex_2) plain, pos = utils.get_txt_pos(toks) assert plain_2 == plain
def test_5(): def read(file): return True, r'\usepackage{amsmath}' parms = parameters.Parameters() p = parser.Parser(parms, read_macros=read) toks = p.parse(latex_5) plain, pos = utils.get_txt_pos(toks) assert plain_5 == plain
def test_3(): # replace verbatim parms = parameters.Parameters() parms.environment_defs.append( defs.Environ(parms, 'verbatim', repl='[verbatim]', remove=True)) p = parser.Parser(parms) toks = p.parse(latex_1) plain, pos = utils.get_txt_pos(toks) assert plain == plain_3
def test_3(): def read(file): return True, sed_3 parms = parameters.Parameters() p = parser.Parser(parms, read_macros=read) toks = p.parse(latex_3) plain, pos = utils.get_txt_pos(toks) assert plain_3 == plain
def test_2(): def read(file): return True, r'\usepackage{xcolor}\newcommand{\xxx}[1]{ #1 #1}' parms = parameters.Parameters() p = parser.Parser(parms, read_macros=read) toks = p.parse(latex_2) plain, pos = utils.get_txt_pos(toks) assert plain_2 == plain
def test_6(capsys): def read(file): return True, sed_6 capsys.readouterr() parms = parameters.Parameters() p = parser.Parser(parms, read_macros=read) toks = p.parse(latex_6, source='t.tex') plain, pos = utils.get_txt_pos(toks) captured = capsys.readouterr() assert plain_6 == plain assert stderr_6 == captured.err
def get_plain(latex): def read(file): try: with open(file) as f: return True, f.read() except: return False, '' parms = parameters.Parameters() p = parser.Parser(parms, read_macros=read) plain, nums = utils.get_txt_pos(p.parse(preamble + latex)) assert len(plain) == len(nums) return plain
def test_1(): parms = parameters.Parameters() parms.macro_defs_python.append( defs.Macro(parms, '\\xxx', args='*OA', repl='#3')) p = parser.Parser(parms) toks = p.parse(latex_1) plain, pos = utils.get_txt_pos(toks) assert plain_1_1 == plain toks = p.parse(latex_1, extract=['\\xxx']) plain, pos = utils.get_txt_pos(toks) assert plain_1_2 == plain
def test_2(): parms = parameters.Parameters() parms.macro_defs_python.append( defs.Macro(parms, '\\xxx', args='OA', repl='a#1b', defaults=['X'], extract='a#1b#2')) p = parser.Parser(parms) toks = p.parse(latex_2) plain, pos = utils.get_txt_pos(toks) assert plain_2 == plain
def test_8(capsys): capsys.readouterr() def read(file): return False, '' parms = parameters.Parameters() p = parser.Parser(parms, read_macros=read) toks = p.parse(latex_8, source='t.tex') plain, pos = utils.get_txt_pos(toks) captured = capsys.readouterr() assert plain_8 == plain assert stderr_8 == captured.err
def get_ml(latex, lang='de-DE'): parms = parameters.Parameters(language=lang) 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) ml = utils.get_txt_pos_ml(toks, lang, parms) for lang in ml: for part in ml[lang]: assert len(part[0]) == len(part[1]) return ml
def test_7(capsys): capsys.readouterr() def read(file): return True, '\\LTinput{t.tex}\n' try: parms = parameters.Parameters() p = parser.Parser(parms, read_macros=read) toks = p.parse(latex_7) except SystemExit: # catch exit() in the error routine utils.fatal() pass captured = capsys.readouterr() # remove first message line: it contains the name of Python err = '\n'.join(captured.err.split('\n')[1:]) assert stderr_7 == err
def get_plain(latex): parms = parameters.Parameters() p = parser.Parser(parms) plain, nums = utils.get_txt_pos(p.parse(preamble + latex)) assert len(plain) == len(nums) return plain
# # - test of \newcommand with default value for optional argument # - test of \def # from yalafi import parameters, parser, utils p = parser.Parser(parameters.Parameters()) latex1 = r""" \newcommand{\xxx}[1][X]{#1Z} \xxx \xxx [A] """ plain1_should_be = r""" XZAZ """ def test_1(): toks = p.parse(latex1) plain1, pos1 = utils.get_txt_pos(toks) assert plain1_should_be == plain1 latex2 = r""" \newcommand{\xxx}[2][X]{#2#1} \xxx{ A } \xxx[B]C
def test_2(): p = parser.Parser(parameters.Parameters()) toks = p.parse(latex_2) plain, pos = utils.get_txt_pos(toks) assert plain_2 == plain
def test_figure(): p = parser.Parser(parameters.Parameters()) toks = p.parse(latex_figure) plain, pos = utils.get_txt_pos(toks) assert plain_figure == plain
from yalafi import parameters, parser, utils add_macros = r""" \newcommand{\swap}[2]{#2#1} """ parms = parameters.Parameters() parms.macro_defs_latex += add_macros p = parser.Parser(parms) latex1 = r""" \swap {12} \textbackslash """ plain1_should_be = r""" \12 """ def test_1(): toks = p.parse(latex1) plain1, pos1 = utils.get_txt_pos(toks) assert plain1_should_be == plain1 assert pos1[0] == 0 # initial '\n' in plain assert pos1[1] == 12 # \, position of \textbackslash assert pos1[2] == 8 # 1 of 12 assert pos1[3] == 9 # 2 of 12
def test_4(): p = parser.Parser(parameters.Parameters(language='ru')) toks = p.parse(latex_4) plain, pos = utils.get_txt_pos(toks) assert plain_4 == plain
def test_5(): p = parser.Parser(parms) toks = p.parse(latex_5) plain, pos = utils.get_txt_pos(toks) assert plain_5 == plain
def get_plain_pos(latex, preamble='', lang='en-GB'): parms = parameters.Parameters(language=lang) p = parser.Parser(parms) plain, nums = utils.get_txt_pos(p.parse(preamble + latex)) assert len(plain) == len(nums) return plain, nums