comparison tests/test_algpseudo.py @ 62:7153e945a3d6

Implement ignoring of \ENDxxx including its optional name parts
author Franz Glasner <fzglas.hg@dom66.de>
date Tue, 28 Apr 2026 10:09:17 +0200
parents e8f4af9e20a8
children 05c53e431c88
comparison
equal deleted inserted replaced
61:392745b66969 62:7153e945a3d6
143 143
144 def test_proc(self): 144 def test_proc(self):
145 self.assertTokenStreamEqualComplete( 145 self.assertTokenStreamEqualComplete(
146 [("Keyword", "PROCEDURE"), 146 [("Keyword", "PROCEDURE"),
147 ("Text.Whitespace", " "), 147 ("Text.Whitespace", " "),
148 ("Name.Entity", "{"),
149 ("Name.Entity", "the name"), 148 ("Name.Entity", "the name"),
150 ("Name.Entity", "}"),
151 ("Text.Whitespace", "\n"), 149 ("Text.Whitespace", "\n"),
152 ], 150 ],
153 pygments.lex("\\PROC {the name}", self.lexer)) 151 pygments.lex("\\PROC {the name}", self.lexer))
154 152
155 def test_endproc(self): 153 def test_endproc(self):
161 159
162 def test_endproc_with_entityname(self): 160 def test_endproc_with_entityname(self):
163 self.assertTokenStreamEqualComplete( 161 self.assertTokenStreamEqualComplete(
164 [("Keyword", "END OF PROCEDURE"), 162 [("Keyword", "END OF PROCEDURE"),
165 ("Text.Whitespace", " "), 163 ("Text.Whitespace", " "),
166 ("Name.Entity", "{"),
167 ("Name.Entity", "the procedure name"), 164 ("Name.Entity", "the procedure name"),
168 ("Name.Entity", "}"),
169 ("Text.Whitespace", "\n"), 165 ("Text.Whitespace", "\n"),
170 ], 166 ],
171 pygments.lex("\\ENDPROCEDURE {the procedure name}", self.lexer)) 167 pygments.lex("\\ENDPROCEDURE {the procedure name}", self.lexer))
172 168
173 def test_proc_de(self): 169 def test_proc_de(self):
174 lexer = pygments.lexers.load_lexer_from_file( 170 lexer = pygments.lexers.load_lexer_from_file(
175 ALGLEXERFILENAME, "AlgPseudocodeLexer_DE") 171 ALGLEXERFILENAME, "AlgPseudocodeLexer_DE")
176 self.assertTokenStreamEqualComplete( 172 self.assertTokenStreamEqualComplete(
177 [("Keyword", "PROZEDUR"), 173 [("Keyword", "PROZEDUR"),
178 ("Text.Whitespace", " "), 174 ("Text.Whitespace", " "),
179 ("Name.Entity", "{"),
180 ("Name.Entity", " also {nichtxs"), 175 ("Name.Entity", " also {nichtxs"),
181 ("Name.Entity", "\\}"), 176 ("Name.Entity", "\\}"),
182 ("Name.Entity", " hier"), 177 ("Name.Entity", " hier"),
183 ("Name.Entity", "}"),
184 ("Text.Whitespace", "\n"), 178 ("Text.Whitespace", "\n"),
185 ], 179 ],
186 pygments.lex("\\PROC { also {nichtxs\\} hier}", lexer)) 180 pygments.lex("\\PROC { also {nichtxs\\} hier}", lexer))
187 181
188 def test_function_1(self): 182 def test_function_1(self):
189 self.assertTokenStreamEqualComplete( 183 self.assertTokenStreamEqualComplete(
190 [("Keyword", "FUNCTION"), 184 [("Keyword", "FUNCTION"),
191 ("Name.Entity", "{"),
192 ("Name.Entity", "1"), 185 ("Name.Entity", "1"),
193 ("Name.Entity", "}"),
194 ("Text.Whitespace", "\n"), 186 ("Text.Whitespace", "\n"),
195 ], 187 ],
196 pygments.lex("\\FUNC{1}", self.lexer)) 188 pygments.lex("\\FUNC{1}", self.lexer))
197 189
198 def test_function_2(self): 190 def test_function_2(self):
199 self.assertTokenStreamEqualComplete( 191 self.assertTokenStreamEqualComplete(
200 [("Keyword", "FUNCTION"), 192 [("Keyword", "FUNCTION"),
201 ("Name.Entity", "{"),
202 ("Name.Entity", "line 1\nline 2\n"), 193 ("Name.Entity", "line 1\nline 2\n"),
203 ("Name.Entity", "}"),
204 ("Text.Whitespace", "\n"), 194 ("Text.Whitespace", "\n"),
205 ], 195 ],
206 pygments.lex("\\FUNCTION{line 1\nline 2\n}", self.lexer)) 196 pygments.lex("\\FUNCTION{line 1\nline 2\n}", self.lexer))
207 197
208 def test_function_3(self): 198 def test_function_3(self):
209 self.assertTokenStreamEqualComplete( 199 self.assertTokenStreamEqualComplete(
210 [("Keyword", "FUNCTION"), 200 [("Keyword", "FUNCTION"),
211 ("Text.Whitespace", " "), 201 ("Text.Whitespace", " "),
212 ("Name.Entity", "{"), 202 ("Name.Entity", "\\"),
213 ("Name.Entity", "\\"), 203 ("Name.Entity", "n"),
214 ("Name.Entity", "n"), 204 ("Name.Entity", "\\}"),
215 ("Name.Entity", "\\}"),
216 ("Name.Entity", "}"),
217 ("Text.Whitespace", "\n"), 205 ("Text.Whitespace", "\n"),
218 ], 206 ],
219 pygments.lex("\\FN {\\n\\}}", self.lexer)) 207 pygments.lex("\\FN {\\n\\}}", self.lexer))
220 208
221 def test_class(self): 209 def test_class(self):
222 self.assertTokenStreamEqualComplete( 210 self.assertTokenStreamEqualComplete(
223 [("Keyword", "CLASS"), 211 [("Keyword", "CLASS"),
224 ("Text.Whitespace", " "), 212 ("Text.Whitespace", " "),
225 ("Name.Entity", "{"), 213 ("Name.Entity", "\\"),
226 ("Name.Entity", "\\"), 214 ("Name.Entity", "n"),
227 ("Name.Entity", "n"), 215 ("Name.Entity", "\\}"),
228 ("Name.Entity", "\\}"),
229 ("Name.Entity", "}"),
230 ("Text.Whitespace", "\n"), 216 ("Text.Whitespace", "\n"),
231 ], 217 ],
232 pygments.lex("\\CLASS {\\n\\}}", self.lexer)) 218 pygments.lex("\\CLASS {\\n\\}}", self.lexer))
233 219
234 def test_class_fr(self): 220 def test_class_fr(self):
235 lexer = pygments.lexers.load_lexer_from_file( 221 lexer = pygments.lexers.load_lexer_from_file(
236 ALGLEXERFILENAME, "AlgPseudocodeLexer_FR") 222 ALGLEXERFILENAME, "AlgPseudocodeLexer_FR")
237 self.assertTokenStreamEqualComplete( 223 self.assertTokenStreamEqualComplete(
238 [("Keyword", "CLASSE"), 224 [("Keyword", "CLASSE"),
239 ("Text.Whitespace", " "), 225 ("Text.Whitespace", " "),
240 ("Name.Entity", "{"), 226 ("Name.Entity", "\\"),
241 ("Name.Entity", "\\"), 227 ("Name.Entity", "n"),
242 ("Name.Entity", "n"), 228 ("Name.Entity", "\\}"),
243 ("Name.Entity", "\\}"),
244 ("Name.Entity", "}"),
245 ("Text.Whitespace", "\n"), 229 ("Text.Whitespace", "\n"),
246 ], 230 ],
247 pygments.lex("\\CLASS {\\n\\}}", lexer)) 231 pygments.lex("\\CLASS {\\n\\}}", lexer))
248 232
249 def test_class_de_with_noend_option(self): 233 def test_class_de_with_noend_option(self):
250 lexer = pygments.lexers.load_lexer_from_file( 234 lexer = pygments.lexers.load_lexer_from_file(
251 ALGLEXERFILENAME, "AlgPseudocodeLexer_DE", no_end="True") 235 ALGLEXERFILENAME, "AlgPseudocodeLexer_DE", no_end="True")
252 self.assertTokenStreamEqualComplete( 236 self.assertTokenStreamEqualComplete(
253 [("Keyword", "KLASSE"), 237 [("Keyword", "KLASSE"),
254 ("Text.Whitespace", " "), 238 ("Text.Whitespace", " "),
255 ("Name.Entity", "{"), 239 ("Name.Entity", "\\"),
256 ("Name.Entity", "\\"), 240 ("Name.Entity", "n"),
257 ("Name.Entity", "n"), 241 ("Name.Entity", "\\}"),
258 ("Name.Entity", "\\}"),
259 ("Name.Entity", "}"),
260 ("Text.Whitespace", "\n"), 242 ("Text.Whitespace", "\n"),
261 ("Text.Whitespace", "\n"), 243 ("Text.Whitespace", "\n"),
262 ], 244 ],
263 pygments.lex("\\CLASS {\\n\\}}\n\\ENDCLASS", lexer)) 245 pygments.lex("\\CLASS {\\n\\}}\n\\ENDCLASS", lexer))
246
247 def test_class_de_with_noend_option_and_name(self):
248 lexer = pygments.lexers.load_lexer_from_file(
249 ALGLEXERFILENAME, "AlgPseudocodeLexer_DE", no_end="True")
250 self.assertTokenStreamEqualComplete(
251 [("Keyword", "KLASSE"),
252 ("Text.Whitespace", " "),
253 ("Name.Entity", "\\"),
254 ("Name.Entity", "n"),
255 ("Name.Entity", "\\}"),
256 ("Text.Whitespace", "\n"),
257 ("Text.Whitespace", "\n"),
258 ],
259 pygments.lex("\\CLASS {\\n\\}}\n\\ENDCLASS {end class}", lexer))
264 260
265 def test_remark_1(self): 261 def test_remark_1(self):
266 self.assertTokenStreamEqualComplete( 262 self.assertTokenStreamEqualComplete(
267 [("Comment.Single", "▷"), 263 [("Comment.Single", "▷"),
268 ("Comment.Single", " the remark"), 264 ("Comment.Single", " the remark"),