comparison 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
comparison
equal deleted inserted replaced
33:db1bc740a201 34:1f741934205e
1 # -*- coding: utf-8 -*-
2 # :-
3 # SPDX-FileCopyrightText: © 2026 Franz Glasner
4 # SPDX-License-Identifier: MIT
5 # :-
6
7 from _tsetup import LEXERFILENAME, LEXERCLASS
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 LEXERFILENAME, LEXERCLASS)
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 ("Text.Whitespace", "\n"),
72 ("Error", "H"),
73 ],
74 pygments.lex("'HUHU\nHEHE'", self.lexer))
75
76 def test_string_ts_1(self):
77 self.assertTokenStreamEqualComplete(
78 [("String.Single", "'''"),
79 ("String.Single", "HUHU HEHE"),
80 ("String.Single", "'''"),
81 ("Text.Whitespace", "\n"),
82 ],
83 pygments.lex("'''HUHU HEHE'''", self.lexer))
84
85 def test_string_ts_2(self):
86 self.assertTokenStreamEqualComplete(
87 [("String.Single", "'''"),
88 ("String.Single", "HI"),
89 ("String.Single", "'"),
90 ("String.Single", "HU"),
91 ("String.Single", "\n"),
92 ("String.Single", "HE"),
93 ("String.Single", '"'),
94 ("String.Single", "HA"),
95 ("String.Single", "'''"),
96 ("Text.Whitespace", "\n"),
97 ],
98 pygments.lex("""'''HI'HU\nHE"HA'''""", self.lexer))
99
100 def test_string_d_1(self):
101 self.assertTokenStreamEqualComplete(
102 [("String.Double", '"'),
103 ("String.Double", 'HU'),
104 ("String.Double", "'"),
105 ("String.Double", 'HE HA'),
106 ("String.Escape", '\\"'),
107 ("String.Double", 'HO'),
108 ("String.Double", '"'),
109 ("Text.Whitespace", "\n"),
110 ],
111 pygments.lex('''"HU'HE HA\\"HO"''', self.lexer))
112
113 def test_string_d_2(self):
114 self.assertTokenStreamEqual(
115 [("String.Double", '"'),
116 ("String.Double", "HUHU"),
117 ("Text.Whitespace", "\n"),
118 ("Error", "H"),
119 ],
120 pygments.lex('"HUHU\nHEHE"', self.lexer))
121
122 def test_string_td_1(self):
123 self.assertTokenStreamEqualComplete(
124 [("String.Double", '"""'),
125 ("String.Double", 'HUHU HAHA'),
126 ("String.Double", '"""'),
127 ("Text.Whitespace", "\n"),
128 ],
129 pygments.lex('"""HUHU HAHA"""', self.lexer))
130
131 def test_string_td_2(self):
132 self.assertTokenStreamEqualComplete(
133 [("String.Double", '"""'),
134 ("String.Double", 'HU'),
135 ("String.Double", '"'),
136 ("String.Double", "HO"),
137 ("String.Double", "\n"),
138 ("String.Double", "HE"),
139 ("String.Double", "'"),
140 ("String.Double", "HA"),
141 ("String.Double", '"""'),
142 ("Text.Whitespace", "\n"),
143 ],
144 pygments.lex('''"""HU"HO\nHE'HA"""''', self.lexer))
145
146
147 if __name__ == "__main__":
148 unittest.main()