import pytest
from renderer.document import Document
from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
from renderer.fifty_ohm_latex_renderer import FiftyOhmLaTeXRenderer
@pytest.mark.html
def test_table_html():
assertions = {
"| l: a |": '
\n', # noqa: E501
"| r: a |": '\n', # noqa: E501
"| c: a |": '\n', # noqa: E501
"| l: a |\n| b |": '\n', # noqa: E501
"| l: a |\n| b |\n| c |": '\n\n\n| a | \n
\n\n\n\n| b | \n
\n\n| c | \n
\n\n
\n', # noqa: E501
"| a |\n| b |\n| c |": '\n\n\n| a | \n
\n\n\n\n| b | \n
\n\n| c | \n
\n\n
\n', # noqa: E501
"| l: a |\n| *b* |": '\n', # noqa: E501
"| l: a |\n| b |\n[table:n_ab:A och B]": '\n\n\n| a | \n
\n\n\n\n| b | \n
\n\nTabell 1: A och B\n
\n', # noqa: E501
"| l: *a* |": '\n', # noqa: E501
"| l: a |\n| [morse:a] |": '\n\n\n| a | \n
\n\n\n\n| \n\nā\n\nāāā\n\n | \n
\n\n
\n', # noqa: E501
"| l: abc | r: abc | X: abc |\n| 123 | 456 | 789 | \n | 987 | 654 | 321 | ": '\n\n\n| abc | \nabc | \nabc | \n
\n\n\n\n| 123 | \n456 | \n789 | \n
\n\n| 987 | \n654 | \n321 | \n
\n\n
\n', # noqa: E501
}
with FiftyOhmHtmlRenderer() as renderer:
for assertion in assertions:
assert renderer.render(Document(assertion)) == assertions[assertion]
@pytest.mark.latex
def test_thematic_break_latex():
assertions = {
"| l: a |": "\\begin{DARCtabular}{l}\na\\\\\n\\end{DARCtabular}",
"| l: a |\n| *b* |": "\\begin{DARCtabular}{l}\na\\\\\n\\emph{b}\\\\\n\\end{DARCtabular}",
"| l: a | X: b |\n| c | d |": "\\begin{DARCtabular}{lX}\na & b\\\\\nc & d\\\\\n\\end{DARCtabular}",
}
with FiftyOhmLaTeXRenderer() as renderer:
for assertion in assertions:
assert renderer.render(Document(assertion)) == assertions[assertion]