Mercurial > hgrepos > Python > libs > pygments-lexer-pseudocode2
diff tests/test_pseudo.py @ 34:1f741934205e
Begin a new Pseudocode lexer using numbers and strings from Python
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Tue, 21 Apr 2026 19:40:08 +0200 |
| parents | |
| children | d9a3551a1038 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test_pseudo.py Tue Apr 21 19:40:08 2026 +0200 @@ -0,0 +1,148 @@ +# -*- coding: utf-8 -*- +# :- +# SPDX-FileCopyrightText: © 2026 Franz Glasner +# SPDX-License-Identifier: MIT +# :- + +from _tsetup import LEXERFILENAME, LEXERCLASS + +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( + LEXERFILENAME, LEXERCLASS) + + 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"), + ("Text.Whitespace", "\n"), + ("Error", "H"), + ], + 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"), + ("Text.Whitespace", "\n"), + ("Error", "H"), + ], + 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)) + + +if __name__ == "__main__": + unittest.main()
