diff tests/test_algpseudo.py @ 84:3ac1c4502ad0

Implement "\tt-XXX" and "ttx-XXX" for explicit token types. Overwrite defaults or implement tokens that are not yet handled by default.
author Franz Glasner <fzglas.hg@dom66.de>
date Thu, 30 Apr 2026 19:37:24 +0200
parents c14e5fd4d193
children d8ca835c74ea
line wrap: on
line diff
--- a/tests/test_algpseudo.py	Thu Apr 30 13:21:38 2026 +0200
+++ b/tests/test_algpseudo.py	Thu Apr 30 19:37:24 2026 +0200
@@ -451,6 +451,78 @@
              ],
             pygments.lex(r"\tstate{a 1.2 \\expr{x in X\} c}", self.lexer))
 
+    def test_explicit_extended_single_tokentype_1(self):
+        self.assertTokenStreamEqualComplete(
+            [("Operator", "%"),
+             ("Text.Whitespace", "\n"),
+             ],
+            pygments.lex(r"\ttx-o:%:", self.lexer))
+
+    def test_explicit_extended_single_tokentype_2(self):
+        self.assertTokenStreamEqualComplete(
+            [("Operator", "{"),
+             ("Text.Whitespace", "\n"),
+             ],
+            pygments.lex(r"\ttx-o{{}", self.lexer))
+
+    def test_explicit_extended_single_tokentype_3(self):
+        self.assertTokenStreamEqualComplete(
+            [("Operator", "<"),
+             ("Text.Whitespace", "\n"),
+             ],
+            pygments.lex(r"\ttx-o<<>", self.lexer))
+
+    def test_explicit_extended_single_tokentype_4(self):
+        self.assertTokenStreamEqualComplete(
+            [("Operator", "("),
+             ("Text.Whitespace", "\n"),
+             ],
+            pygments.lex(r"\ttx-o(()", self.lexer))
+
+    def test_explicit_extended_multi_tokentype_1(self):
+        self.assertTokenStreamEqualComplete(
+            [("Operator", "xxx in A"),
+             ("Text.Whitespace", "\n"),
+             ],
+            pygments.lex(r"\ttx-o/xxx in A/", self.lexer))
+
+    def test_explicit_extended_multi_tokentype_2(self):
+        self.assertTokenStreamEqualComplete(
+            [("Operator", "xxx in B"),
+             ("Text.Whitespace", "\n"),
+             ],
+            pygments.lex(r"\ttx-o{xxx in B}", self.lexer))
+
+    def test_explicit_extended_multi_tokentype_3(self):
+        self.assertTokenStreamEqualComplete(
+            [("Operator", "xxx in C"),
+             ("Text.Whitespace", "\n"),
+             ],
+            pygments.lex(r"\ttx-o<xxx in C>", self.lexer))
+
+    def test_explicit_extended_multi_tokentype_4(self):
+        self.assertTokenStreamEqualComplete(
+            [("Operator", "xxx in D"),
+             ("Text.Whitespace", "\n"),
+             ],
+            pygments.lex(r"\ttx-o(xxx in D)", self.lexer))
+
+    def test_explicit_tokentype_simple_1(self):
+        self.assertTokenStreamEqualComplete(
+            [("Operator", "}"),
+             ("Operator", "/"),
+             ("Text.Whitespace", "\n"),
+             ],
+            pygments.lex(r"\tt-o/}\tt-o//", self.lexer))
+
+    def test_explicit_tokentype_simple_2(self):
+        self.assertTokenStreamEqualComplete(
+            [("Operator", "\n"),
+             ("Operator", "/"),
+             ("Text", " \n"),    # because of r"\s+", Text for expressions
+             ],
+            pygments.lex("\\tt-o/\n\\tt-o// ", self.lexer))
+
 
 class PygmentizeCompletely(unittest.TestCase):