Mercurial > hgrepos > Python > libs > pygments-lexer-pseudocode2
view tests/test_algpseudo.py @ 53:39151225fb84
Rename the new pseudocode implementation to AlgPseudocode.
Because it is modelled after CTAN's algpseudocode(x).
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Sun, 26 Apr 2026 19:16:23 +0200 |
| parents | tests/test_pseudo.py@bbef0ac6cfcf |
| children | e8f4af9e20a8 |
line wrap: on
line source
# -*- coding: utf-8 -*- # :- # SPDX-FileCopyrightText: © 2026 Franz Glasner # SPDX-License-Identifier: MIT # :- from _tsetup import ALGLEXERFILENAME, ALGLEXERCLASS import unittest import pygments import pygments.lexers import _testhelper class TestSnippets(unittest.TestCase, _testhelper.TokenAssertHelper): def setUp(self): self.lexer = pygments.lexers.load_lexer_from_file( ALGLEXERFILENAME, ALGLEXERCLASS) def test_lf(self): self.assertTokenStreamEqualComplete( [("Text.Whitespace", "\n")], pygments.lex("\n", self.lexer)) def test_protected_lf(self): self.assertTokenStreamEqualComplete( [("Text", "\\\n")], pygments.lex("\\\n", self.lexer)) def test_number_int(self): self.assertTokenStreamEqualComplete( [("Number.Integer", "10"), ("Text.Whitespace", "\n"), ], pygments.lex("10", self.lexer)) def test_number_float_1(self): self.assertTokenStreamEqualComplete( [("Number.Float", "3.1415926"), ("Text.Whitespace", "\n"), ], pygments.lex("3.1415926", self.lexer)) def test_number_float_2(self): self.assertTokenStreamEqualComplete( [("Number.Float", "3.14e-12"), ("Text.Whitespace", "\n"), ], pygments.lex("3.14e-12", self.lexer)) def test_string_s_1(self): self.assertTokenStreamEqualComplete( [("String.Single", "'"), ("String.Single", "HU"), ("String.Single", '"'), ("String.Single", "HE HA"), ("String.Escape", "\\'"), ("String.Single", "HO"), ("String.Single", "'"), ("Text.Whitespace", "\n"), ], pygments.lex("""'HU"HE HA\\'HO'""", self.lexer)) def test_string_s_2(self): self.assertTokenStreamEqual( [("String.Single", "'"), ("String.Single", "HUHU"), ("Error", "\n"), ], pygments.lex("'HUHU\nHEHE'", self.lexer)) def test_string_ts_1(self): self.assertTokenStreamEqualComplete( [("String.Single", "'''"), ("String.Single", "HUHU HEHE"), ("String.Single", "'''"), ("Text.Whitespace", "\n"), ], pygments.lex("'''HUHU HEHE'''", self.lexer)) def test_string_ts_2(self): self.assertTokenStreamEqualComplete( [("String.Single", "'''"), ("String.Single", "HI"), ("String.Single", "'"), ("String.Single", "HU"), ("String.Single", "\n"), ("String.Single", "HE"), ("String.Single", '"'), ("String.Single", "HA"), ("String.Single", "'''"), ("Text.Whitespace", "\n"), ], pygments.lex("""'''HI'HU\nHE"HA'''""", self.lexer)) def test_string_d_1(self): self.assertTokenStreamEqualComplete( [("String.Double", '"'), ("String.Double", 'HU'), ("String.Double", "'"), ("String.Double", 'HE HA'), ("String.Escape", '\\"'), ("String.Double", 'HO'), ("String.Double", '"'), ("Text.Whitespace", "\n"), ], pygments.lex('''"HU'HE HA\\"HO"''', self.lexer)) def test_string_d_2(self): self.assertTokenStreamEqual( [("String.Double", '"'), ("String.Double", "HUHU"), ("Error", "\n"), ], pygments.lex('"HUHU\nHEHE"', self.lexer)) def test_string_td_1(self): self.assertTokenStreamEqualComplete( [("String.Double", '"""'), ("String.Double", 'HUHU HAHA'), ("String.Double", '"""'), ("Text.Whitespace", "\n"), ], pygments.lex('"""HUHU HAHA"""', self.lexer)) def test_string_td_2(self): self.assertTokenStreamEqualComplete( [("String.Double", '"""'), ("String.Double", 'HU'), ("String.Double", '"'), ("String.Double", "HO"), ("String.Double", "\n"), ("String.Double", "HE"), ("String.Double", "'"), ("String.Double", "HA"), ("String.Double", '"""'), ("Text.Whitespace", "\n"), ], pygments.lex('''"""HU"HO\nHE'HA"""''', self.lexer)) def test_proc(self): self.assertTokenStreamEqualComplete( [("Keyword", "PROCEDURE"), ("Text.Whitespace", " "), ("Name.Entity", "{"), ("Name.Entity", "the name"), ("Name.Entity", "}"), ("Text.Whitespace", "\n"), ], pygments.lex("\\PROC {the name}", self.lexer)) def test_proc_de(self): lexer = pygments.lexers.load_lexer_from_file( ALGLEXERFILENAME, "AlgPseudocodeLexer_DE") self.assertTokenStreamEqualComplete( [("Keyword", "PROZEDUR"), ("Text.Whitespace", " "), ("Name.Entity", "{"), ("Name.Entity", " also {nichtxs"), ("Name.Entity", "\\}"), ("Name.Entity", " hier"), ("Name.Entity", "}"), ("Text.Whitespace", "\n"), ], pygments.lex("\\PROC { also {nichtxs\\} hier}", lexer)) def test_function_1(self): self.assertTokenStreamEqualComplete( [("Keyword", "FUNCTION"), ("Name.Entity", "{"), ("Name.Entity", "1"), ("Name.Entity", "}"), ("Text.Whitespace", "\n"), ], pygments.lex("\\FUNC{1}", self.lexer)) def test_function_2(self): self.assertTokenStreamEqualComplete( [("Keyword", "FUNCTION"), ("Name.Entity", "{"), ("Name.Entity", "line 1\nline 2\n"), ("Name.Entity", "}"), ("Text.Whitespace", "\n"), ], pygments.lex("\\FUNCTION{line 1\nline 2\n}", self.lexer)) def test_function_3(self): self.assertTokenStreamEqualComplete( [("Keyword", "FUNCTION"), ("Text.Whitespace", " "), ("Name.Entity", "{"), ("Name.Entity", "\\"), ("Name.Entity", "n"), ("Name.Entity", "\\}"), ("Name.Entity", "}"), ("Text.Whitespace", "\n"), ], pygments.lex("\\FN {\\n\\}}", self.lexer)) def test_class(self): self.assertTokenStreamEqualComplete( [("Keyword", "CLASS"), ("Text.Whitespace", " "), ("Name.Entity", "{"), ("Name.Entity", "\\"), ("Name.Entity", "n"), ("Name.Entity", "\\}"), ("Name.Entity", "}"), ("Text.Whitespace", "\n"), ], pygments.lex("\\CLASS {\\n\\}}", self.lexer)) def test_class_fr(self): lexer = pygments.lexers.load_lexer_from_file( ALGLEXERFILENAME, "AlgPseudocodeLexer_FR") self.assertTokenStreamEqualComplete( [("Keyword", "CLASSE"), ("Text.Whitespace", " "), ("Name.Entity", "{"), ("Name.Entity", "\\"), ("Name.Entity", "n"), ("Name.Entity", "\\}"), ("Name.Entity", "}"), ("Text.Whitespace", "\n"), ], pygments.lex("\\CLASS {\\n\\}}", lexer)) def test_remark_1(self): self.assertTokenStreamEqualComplete( [("Comment.Single", "▷"), ("Comment.Single", " the remark"), ("Text.Whitespace", "\n"), ], pygments.lex("\\REMARK the remark\n", self.lexer)) def test_remark_2(self): self.assertTokenStreamEqualComplete( [("Comment.Single", "▷"), ("Comment.Single", " the remark 1"), ("Text.Whitespace", "\n"), ("Comment.Single", "▷"), ("Comment.Single", " the remark 2"), ("Text.Whitespace", "\n"), ("Comment.Single", "▷"), ("Comment.Single", " the remark 3"), ("Text.Whitespace", "\n"), ], pygments.lex( """\\REMARK the remark 1 \\Rem the remark 2 \\r the remark 3 """, self.lexer)) if __name__ == "__main__": unittest.main()
