Mercurial > hgrepos > Python > libs > pygments-lexer-pseudocode2
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 52:5bfa9113d3c4 | 53:39151225fb84 |
|---|---|
| 1 # -*- coding: utf-8 -*- | |
| 2 # :- | |
| 3 # SPDX-FileCopyrightText: © 2026 Franz Glasner | |
| 4 # SPDX-License-Identifier: MIT | |
| 5 # :- | |
| 6 | |
| 7 from _tsetup import ALGLEXERFILENAME, ALGLEXERCLASS | |
| 8 | |
| 9 import unittest | |
| 10 | |
| 11 import pygments | |
| 12 import pygments.lexers | |
| 13 | |
| 14 import _testhelper | |
| 15 | |
| 16 | |
| 17 class TestSnippets(unittest.TestCase, _testhelper.TokenAssertHelper): | |
| 18 | |
| 19 def setUp(self): | |
| 20 self.lexer = pygments.lexers.load_lexer_from_file( | |
| 21 ALGLEXERFILENAME, ALGLEXERCLASS) | |
| 22 | |
| 23 def test_lf(self): | |
| 24 self.assertTokenStreamEqualComplete( | |
| 25 [("Text.Whitespace", "\n")], | |
| 26 pygments.lex("\n", self.lexer)) | |
| 27 | |
| 28 def test_protected_lf(self): | |
| 29 self.assertTokenStreamEqualComplete( | |
| 30 [("Text", "\\\n")], | |
| 31 pygments.lex("\\\n", self.lexer)) | |
| 32 | |
| 33 def test_number_int(self): | |
| 34 self.assertTokenStreamEqualComplete( | |
| 35 [("Number.Integer", "10"), | |
| 36 ("Text.Whitespace", "\n"), | |
| 37 ], | |
| 38 pygments.lex("10", self.lexer)) | |
| 39 | |
| 40 def test_number_float_1(self): | |
| 41 self.assertTokenStreamEqualComplete( | |
| 42 [("Number.Float", "3.1415926"), | |
| 43 ("Text.Whitespace", "\n"), | |
| 44 ], | |
| 45 pygments.lex("3.1415926", self.lexer)) | |
| 46 | |
| 47 def test_number_float_2(self): | |
| 48 self.assertTokenStreamEqualComplete( | |
| 49 [("Number.Float", "3.14e-12"), | |
| 50 ("Text.Whitespace", "\n"), | |
| 51 ], | |
| 52 pygments.lex("3.14e-12", self.lexer)) | |
| 53 | |
| 54 def test_string_s_1(self): | |
| 55 self.assertTokenStreamEqualComplete( | |
| 56 [("String.Single", "'"), | |
| 57 ("String.Single", "HU"), | |
| 58 ("String.Single", '"'), | |
| 59 ("String.Single", "HE HA"), | |
| 60 ("String.Escape", "\\'"), | |
| 61 ("String.Single", "HO"), | |
| 62 ("String.Single", "'"), | |
| 63 ("Text.Whitespace", "\n"), | |
| 64 ], | |
| 65 pygments.lex("""'HU"HE HA\\'HO'""", self.lexer)) | |
| 66 | |
| 67 def test_string_s_2(self): | |
| 68 self.assertTokenStreamEqual( | |
| 69 [("String.Single", "'"), | |
| 70 ("String.Single", "HUHU"), | |
| 71 ("Error", "\n"), | |
| 72 ], | |
| 73 pygments.lex("'HUHU\nHEHE'", self.lexer)) | |
| 74 | |
| 75 def test_string_ts_1(self): | |
| 76 self.assertTokenStreamEqualComplete( | |
| 77 [("String.Single", "'''"), | |
| 78 ("String.Single", "HUHU HEHE"), | |
| 79 ("String.Single", "'''"), | |
| 80 ("Text.Whitespace", "\n"), | |
| 81 ], | |
| 82 pygments.lex("'''HUHU HEHE'''", self.lexer)) | |
| 83 | |
| 84 def test_string_ts_2(self): | |
| 85 self.assertTokenStreamEqualComplete( | |
| 86 [("String.Single", "'''"), | |
| 87 ("String.Single", "HI"), | |
| 88 ("String.Single", "'"), | |
| 89 ("String.Single", "HU"), | |
| 90 ("String.Single", "\n"), | |
| 91 ("String.Single", "HE"), | |
| 92 ("String.Single", '"'), | |
| 93 ("String.Single", "HA"), | |
| 94 ("String.Single", "'''"), | |
| 95 ("Text.Whitespace", "\n"), | |
| 96 ], | |
| 97 pygments.lex("""'''HI'HU\nHE"HA'''""", self.lexer)) | |
| 98 | |
| 99 def test_string_d_1(self): | |
| 100 self.assertTokenStreamEqualComplete( | |
| 101 [("String.Double", '"'), | |
| 102 ("String.Double", 'HU'), | |
| 103 ("String.Double", "'"), | |
| 104 ("String.Double", 'HE HA'), | |
| 105 ("String.Escape", '\\"'), | |
| 106 ("String.Double", 'HO'), | |
| 107 ("String.Double", '"'), | |
| 108 ("Text.Whitespace", "\n"), | |
| 109 ], | |
| 110 pygments.lex('''"HU'HE HA\\"HO"''', self.lexer)) | |
| 111 | |
| 112 def test_string_d_2(self): | |
| 113 self.assertTokenStreamEqual( | |
| 114 [("String.Double", '"'), | |
| 115 ("String.Double", "HUHU"), | |
| 116 ("Error", "\n"), | |
| 117 ], | |
| 118 pygments.lex('"HUHU\nHEHE"', self.lexer)) | |
| 119 | |
| 120 def test_string_td_1(self): | |
| 121 self.assertTokenStreamEqualComplete( | |
| 122 [("String.Double", '"""'), | |
| 123 ("String.Double", 'HUHU HAHA'), | |
| 124 ("String.Double", '"""'), | |
| 125 ("Text.Whitespace", "\n"), | |
| 126 ], | |
| 127 pygments.lex('"""HUHU HAHA"""', self.lexer)) | |
| 128 | |
| 129 def test_string_td_2(self): | |
| 130 self.assertTokenStreamEqualComplete( | |
| 131 [("String.Double", '"""'), | |
| 132 ("String.Double", 'HU'), | |
| 133 ("String.Double", '"'), | |
| 134 ("String.Double", "HO"), | |
| 135 ("String.Double", "\n"), | |
| 136 ("String.Double", "HE"), | |
| 137 ("String.Double", "'"), | |
| 138 ("String.Double", "HA"), | |
| 139 ("String.Double", '"""'), | |
| 140 ("Text.Whitespace", "\n"), | |
| 141 ], | |
| 142 pygments.lex('''"""HU"HO\nHE'HA"""''', self.lexer)) | |
| 143 | |
| 144 def test_proc(self): | |
| 145 self.assertTokenStreamEqualComplete( | |
| 146 [("Keyword", "PROCEDURE"), | |
| 147 ("Text.Whitespace", " "), | |
| 148 ("Name.Entity", "{"), | |
| 149 ("Name.Entity", "the name"), | |
| 150 ("Name.Entity", "}"), | |
| 151 ("Text.Whitespace", "\n"), | |
| 152 ], | |
| 153 pygments.lex("\\PROC {the name}", self.lexer)) | |
| 154 | |
| 155 def test_proc_de(self): | |
| 156 lexer = pygments.lexers.load_lexer_from_file( | |
| 157 ALGLEXERFILENAME, "AlgPseudocodeLexer_DE") | |
| 158 self.assertTokenStreamEqualComplete( | |
| 159 [("Keyword", "PROZEDUR"), | |
| 160 ("Text.Whitespace", " "), | |
| 161 ("Name.Entity", "{"), | |
| 162 ("Name.Entity", " also {nichtxs"), | |
| 163 ("Name.Entity", "\\}"), | |
| 164 ("Name.Entity", " hier"), | |
| 165 ("Name.Entity", "}"), | |
| 166 ("Text.Whitespace", "\n"), | |
| 167 ], | |
| 168 pygments.lex("\\PROC { also {nichtxs\\} hier}", lexer)) | |
| 169 | |
| 170 def test_function_1(self): | |
| 171 self.assertTokenStreamEqualComplete( | |
| 172 [("Keyword", "FUNCTION"), | |
| 173 ("Name.Entity", "{"), | |
| 174 ("Name.Entity", "1"), | |
| 175 ("Name.Entity", "}"), | |
| 176 ("Text.Whitespace", "\n"), | |
| 177 ], | |
| 178 pygments.lex("\\FUNC{1}", self.lexer)) | |
| 179 | |
| 180 def test_function_2(self): | |
| 181 self.assertTokenStreamEqualComplete( | |
| 182 [("Keyword", "FUNCTION"), | |
| 183 ("Name.Entity", "{"), | |
| 184 ("Name.Entity", "line 1\nline 2\n"), | |
| 185 ("Name.Entity", "}"), | |
| 186 ("Text.Whitespace", "\n"), | |
| 187 ], | |
| 188 pygments.lex("\\FUNCTION{line 1\nline 2\n}", self.lexer)) | |
| 189 | |
| 190 def test_function_3(self): | |
| 191 self.assertTokenStreamEqualComplete( | |
| 192 [("Keyword", "FUNCTION"), | |
| 193 ("Text.Whitespace", " "), | |
| 194 ("Name.Entity", "{"), | |
| 195 ("Name.Entity", "\\"), | |
| 196 ("Name.Entity", "n"), | |
| 197 ("Name.Entity", "\\}"), | |
| 198 ("Name.Entity", "}"), | |
| 199 ("Text.Whitespace", "\n"), | |
| 200 ], | |
| 201 pygments.lex("\\FN {\\n\\}}", self.lexer)) | |
| 202 | |
| 203 def test_class(self): | |
| 204 self.assertTokenStreamEqualComplete( | |
| 205 [("Keyword", "CLASS"), | |
| 206 ("Text.Whitespace", " "), | |
| 207 ("Name.Entity", "{"), | |
| 208 ("Name.Entity", "\\"), | |
| 209 ("Name.Entity", "n"), | |
| 210 ("Name.Entity", "\\}"), | |
| 211 ("Name.Entity", "}"), | |
| 212 ("Text.Whitespace", "\n"), | |
| 213 ], | |
| 214 pygments.lex("\\CLASS {\\n\\}}", self.lexer)) | |
| 215 | |
| 216 def test_class_fr(self): | |
| 217 lexer = pygments.lexers.load_lexer_from_file( | |
| 218 ALGLEXERFILENAME, "AlgPseudocodeLexer_FR") | |
| 219 self.assertTokenStreamEqualComplete( | |
| 220 [("Keyword", "CLASSE"), | |
| 221 ("Text.Whitespace", " "), | |
| 222 ("Name.Entity", "{"), | |
| 223 ("Name.Entity", "\\"), | |
| 224 ("Name.Entity", "n"), | |
| 225 ("Name.Entity", "\\}"), | |
| 226 ("Name.Entity", "}"), | |
| 227 ("Text.Whitespace", "\n"), | |
| 228 ], | |
| 229 pygments.lex("\\CLASS {\\n\\}}", lexer)) | |
| 230 | |
| 231 def test_remark_1(self): | |
| 232 self.assertTokenStreamEqualComplete( | |
| 233 [("Comment.Single", "▷"), | |
| 234 ("Comment.Single", " the remark"), | |
| 235 ("Text.Whitespace", "\n"), | |
| 236 ], | |
| 237 pygments.lex("\\REMARK the remark\n", self.lexer)) | |
| 238 | |
| 239 def test_remark_2(self): | |
| 240 self.assertTokenStreamEqualComplete( | |
| 241 [("Comment.Single", "▷"), | |
| 242 ("Comment.Single", " the remark 1"), | |
| 243 ("Text.Whitespace", "\n"), | |
| 244 ("Comment.Single", "▷"), | |
| 245 ("Comment.Single", " the remark 2"), | |
| 246 ("Text.Whitespace", "\n"), | |
| 247 ("Comment.Single", "▷"), | |
| 248 ("Comment.Single", " the remark 3"), | |
| 249 ("Text.Whitespace", "\n"), | |
| 250 ], | |
| 251 pygments.lex( | |
| 252 """\\REMARK the remark 1 | |
| 253 \\Rem the remark 2 | |
| 254 \\r the remark 3 | |
| 255 """, self.lexer)) | |
| 256 | |
| 257 | |
| 258 if __name__ == "__main__": | |
| 259 unittest.main() |
