示例#1
0
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
示例#2
0
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
示例#3
0
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
示例#4
0
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
示例#5
0
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
示例#6
0
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
示例#7
0
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
示例#8
0
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
示例#9
0
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
示例#10
0
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
示例#11
0
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
示例#12
0
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
示例#13
0
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
示例#14
0
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
示例#15
0
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
示例#16
0
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
示例#17
0
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
示例#18
0
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
示例#19
0
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
示例#20
0
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
示例#21
0
#
#   - 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
示例#22
0
def test_2():
    p = parser.Parser(parameters.Parameters())
    toks = p.parse(latex_2)
    plain, pos = utils.get_txt_pos(toks)
    assert plain_2 == plain
示例#23
0
def test_figure():
    p = parser.Parser(parameters.Parameters())
    toks = p.parse(latex_figure)
    plain, pos = utils.get_txt_pos(toks)
    assert plain_figure == plain
示例#24
0
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
示例#25
0
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
示例#26
0
def test_5():
    p = parser.Parser(parms)
    toks = p.parse(latex_5)
    plain, pos = utils.get_txt_pos(toks)
    assert plain_5 == plain
示例#27
0
文件: issues.py 项目: torik42/YaLafi
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