Skip to content

Commit

Permalink
Taking indentation into own hands (#54)
Browse files Browse the repository at this point in the history
  • Loading branch information
tdegeus authored Mar 14, 2023
1 parent 9ba7d67 commit dae4e21
Show file tree
Hide file tree
Showing 9 changed files with 4,447 additions and 598 deletions.
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ repos:
rev: 6.0.0
hooks:
- id: flake8
args: [--max-line-length=100]
args: [--max-line-length=100, --ignore=E203, --per-file-ignore=tests/test_one_sentence_per_line.py:E501, --per-file-ignore=tests/test_indent_long.py:E501]
- repo: https://github.com/asottile/setup-cfg-fmt
rev: v2.2.0
hooks:
Expand Down
2 changes: 0 additions & 2 deletions environment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,8 @@ channels:
dependencies:
- click
- furo
- latexindent.pl
- numpy
- python
- pyyaml
- setuptools_scm
- sphinx
- sphinx-argparse
Expand Down
8 changes: 4 additions & 4 deletions tests/test_classify.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def test_equation(self):

tex = texplain.TeX(text)
tex.format_labels()
self.assertEqual(tex.get(), text)
self.assertEqual(str(tex).strip(), text.strip())

# --

Expand All @@ -34,7 +34,7 @@ def test_equation(self):

tex = texplain.TeX(text)
tex.format_labels()
self.assertEqual(tex.get(), text)
self.assertEqual(str(tex).strip(), text.strip())

def test_section(self):
text = r"""
Expand All @@ -46,7 +46,7 @@ def test_section(self):

tex = texplain.TeX(text)
tex.format_labels()
self.assertEqual(tex.get(), text)
self.assertEqual(str(tex).strip(), text.strip())

def test_figure(self):
text = r"""
Expand All @@ -60,7 +60,7 @@ def test_figure(self):

tex = texplain.TeX(text)
tex.format_labels()
self.assertEqual(tex.get(), text)
self.assertEqual(str(tex).strip(), text.strip())


if __name__ == "__main__":
Expand Down
115 changes: 115 additions & 0 deletions tests/test_find_command.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
import unittest

import texplain


class MyTests(unittest.TestCase):
"""
Tests
"""

def test_basic(self):
text = r"This is some \foo \bar"
ret = texplain.find_command(text)

self.assertEqual(r"\foo", text[ret[0][0][0] : ret[0][0][1]])

def test_argument(self):
text = r"This is some \foo{fooarg} \bar{[bararg} {bararg2}"
ret = texplain.find_command(text)

self.assertEqual(text[ret[0][0][0] : ret[0][0][1]], r"\foo")
self.assertEqual(text[ret[0][1][0] : ret[0][1][1]], r"{fooarg}")

self.assertEqual(text[ret[1][0][0] : ret[1][0][1]], r"\bar")
self.assertEqual(text[ret[1][1][0] : ret[1][1][1]], r"{[bararg}")
self.assertEqual(text[ret[1][2][0] : ret[1][2][1]], r"{bararg2}")

def test_argument_comment(self):
text = r"This is some \foo{fooarg} \bar{[bararg} {bararg2} % some } nonsense"
ret = texplain.find_command(text)

self.assertEqual(text[ret[0][0][0] : ret[0][0][1]], r"\foo")
self.assertEqual(text[ret[0][1][0] : ret[0][1][1]], r"{fooarg}")

self.assertEqual(text[ret[1][0][0] : ret[1][0][1]], r"\bar")
self.assertEqual(text[ret[1][1][0] : ret[1][1][1]], r"{[bararg}")
self.assertEqual(text[ret[1][2][0] : ret[1][2][1]], r"{bararg2}")

def test_argument_comment_a(self):
text = r"""
This is a text with a \command%
% first comment
[
option1
]%
% second comment
{
argument1
}
\bar
[
option2
]
% comment
{
argument2
}
"""
ret = texplain.find_command(text)

self.assertEqual(text[ret[0][0][0] : ret[0][0][1]], r"\command")
self.assertEqual(
text[ret[0][1][0] : ret[0][1][1]].replace(" ", "").replace("\n", ""), r"[option1]"
)
self.assertEqual(
text[ret[0][2][0] : ret[0][2][1]].replace(" ", "").replace("\n", ""), r"{argument1}"
)

self.assertEqual(text[ret[1][0][0] : ret[1][0][1]], r"\bar")
self.assertEqual(
text[ret[1][1][0] : ret[1][1][1]].replace(" ", "").replace("\n", ""), r"[option2]"
)
self.assertEqual(
text[ret[1][2][0] : ret[1][2][1]].replace(" ", "").replace("\n", ""), r"{argument2}"
)

def test_option_argument(self):
text = r"This is some \foo[fooopt]{fooarg} \bar [baropt] [{baropt2}] {[bararg} {bararg2}"
ret = texplain.find_command(text)

self.assertEqual(text[ret[0][0][0] : ret[0][0][1]], r"\foo")
self.assertEqual(text[ret[0][1][0] : ret[0][1][1]], r"[fooopt]")
self.assertEqual(text[ret[0][2][0] : ret[0][2][1]], r"{fooarg}")

self.assertEqual(text[ret[1][0][0] : ret[1][0][1]], r"\bar")
self.assertEqual(text[ret[1][1][0] : ret[1][1][1]], r"[baropt]")
self.assertEqual(text[ret[1][2][0] : ret[1][2][1]], r"[{baropt2}]")
self.assertEqual(text[ret[1][3][0] : ret[1][3][1]], r"{[bararg}")
self.assertEqual(text[ret[1][4][0] : ret[1][4][1]], r"{bararg2}")

def test_nested_command(self):
text = r"""
\begin{figure}
\subfloat{\label{fig:foo}}
\end{figure}
"""

ret = texplain.find_command(text)

self.assertEqual(text[ret[0][0][0] : ret[0][0][1]], r"\begin")
self.assertEqual(text[ret[0][1][0] : ret[0][1][1]], r"{figure}")

self.assertEqual(text[ret[1][0][0] : ret[1][0][1]], r"\subfloat")
self.assertEqual(text[ret[1][1][0] : ret[1][1][1]], r"{\label{fig:foo}}")

self.assertEqual(text[ret[2][0][0] : ret[2][0][1]], r"\label")
self.assertEqual(text[ret[2][1][0] : ret[2][1][1]], r"{fig:foo}")

self.assertEqual(text[ret[3][0][0] : ret[3][0][1]], r"\end")
self.assertEqual(text[ret[3][1][0] : ret[3][1][1]], r"{figure}")


if __name__ == "__main__":
unittest.main()
Loading

0 comments on commit dae4e21

Please sign in to comment.