File: lib_common_ctype.c

package info (click to toggle)
cc65 2.19-2
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 20,268 kB
  • sloc: ansic: 117,151; asm: 66,339; pascal: 4,248; makefile: 1,009; perl: 607
file content (368 lines) | stat: -rw-r--r-- 31,164 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
// lib_common_ctype.c
//
// This file is part of
// cc65 - a freeware C compiler for 6502 based systems
//
// https://cc65.github.io
//
// See "LICENSE" file for legal information.
//
// Unit test for character classification functions ("is..")
//

#include <ctype.h>
#include <stdbool.h>
#include "unittest.h"

#define NUMTESTS 257

typedef struct 
{
    bool isalnum;
    bool isalpha;
    bool isascii;
    bool iscntrl;
    bool isdigit;
    bool isgraph;
    bool islower;
    bool isprint;
    bool ispunct;
    bool isspace;
    bool isupper;
    bool isxdigit;
    bool isblank; 

} CTypeClassifications;


CTypeClassifications testSet[NUMTESTS] =
{
   //alnum, alpha, ascii, cntrl, digit, graph, lower, print, punct, space, upper, xdigit,blank

    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 00
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 01
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 02
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 03
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 04
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 05
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 06
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 07
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 08
    {false, false, true,  true,  false, false, false, false, false, true,  false, false, true },        // 09
    {false, false, true,  true,  false, false, false, false, false, true,  false, false, false},        // 0A
    {false, false, true,  true,  false, false, false, false, false, true,  false, false, false},        // 0B
    {false, false, true,  true,  false, false, false, false, false, true,  false, false, false},        // 0C
    {false, false, true,  true,  false, false, false, false, false, true,  false, false, false},        // 0D
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 0E
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 0F

    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 10
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 11
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 12
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 13
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 14
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 15
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 16
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 17
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 18
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 19
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 1A
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 1B
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 1C
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 1D
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 1E
    {false, false, true,  true,  false, false, false, false, false, false, false, false, false},        // 1F

    {false, false, true,  false, false, false, false, true,  false, true,  false, false, true },        // 20
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 21
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 22
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 23
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 24
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 25
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 26
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 27
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 28
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 29
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 2A
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 2B
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 2C
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 2D
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 2E
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 2F
 
    {true,  false, true,  false, true,  true,  false, true,  false, false, false, true,  false},        // 30
    {true,  false, true,  false, true,  true,  false, true,  false, false, false, true,  false},        // 31
    {true,  false, true,  false, true,  true,  false, true,  false, false, false, true,  false},        // 32
    {true,  false, true,  false, true,  true,  false, true,  false, false, false, true,  false},        // 33
    {true,  false, true,  false, true,  true,  false, true,  false, false, false, true,  false},        // 34
    {true,  false, true,  false, true,  true,  false, true,  false, false, false, true,  false},        // 35
    {true,  false, true,  false, true,  true,  false, true,  false, false, false, true,  false},        // 36
    {true,  false, true,  false, true,  true,  false, true,  false, false, false, true,  false},        // 37
    {true,  false, true,  false, true,  true,  false, true,  false, false, false, true,  false},        // 38
    {true,  false, true,  false, true,  true,  false, true,  false, false, false, true,  false},        // 39
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 3A
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 3B
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 3C
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 3D
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 3E
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 3F

    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 40
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  true,  false},        // 41
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  true,  false},        // 42
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  true,  false},        // 43
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  true,  false},        // 44
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  true,  false},        // 45
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  true,  false},        // 46
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  false, false},        // 47
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  false, false},        // 48
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  false, false},        // 49
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  false, false},        // 4A
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  false, false},        // 4B
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  false, false},        // 4C
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  false, false},        // 4D
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  false, false},        // 4E
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  false, false},        // 4F
 
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  false, false},        // 50
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  false, false},        // 51
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  false, false},        // 52
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  false, false},        // 53
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  false, false},        // 54
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  false, false},        // 55
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  false, false},        // 56
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  false, false},        // 57
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  false, false},        // 58
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  false, false},        // 59
    {true,  true,  true,  false, false, true,  false, true,  false, false, true,  false, false},        // 5A
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 5B
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 5C
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 5D
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 5E
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 5F

    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 60
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, true,  false},        // 61
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, true,  false},        // 62
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, true,  false},        // 63
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, true,  false},        // 64
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, true,  false},        // 65
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, true,  false},        // 66
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, false, false},        // 67
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, false, false},        // 68
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, false, false},        // 69
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, false, false},        // 6A
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, false, false},        // 6B
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, false, false},        // 6C
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, false, false},        // 6D
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, false, false},        // 6E
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, false, false},        // 6F

    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, false, false},        // 70
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, false, false},        // 71
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, false, false},        // 72
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, false, false},        // 73
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, false, false},        // 74
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, false, false},        // 75
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, false, false},        // 76
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, false, false},        // 77
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, false, false},        // 78
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, false, false},        // 79
    {true,  true,  true,  false, false, true,  true,  true,  false, false, false, false, false},        // 7A
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 7B
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 7C
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 7D
    {false, false, true,  false, false, true,  false, true,  true,  false, false, false, false},        // 7E
    {false, false, true,  false, false, true,  false, true,  true,  true,  false, false, false},        // 7F

    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 80
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 81
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 82
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 83
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 84
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 85
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 86
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 87
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 88
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 89
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 8A
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 8B
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 8C
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 8D
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 8E
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 8F

    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 90
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 91
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 92
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 93
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 94
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 95
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 96
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 97
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 98
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 99
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 9A
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 9B
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 9C
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 9D
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 9E
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // 9F

    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // A0
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // A1
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // A2
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // A3
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // A4
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // A5
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // A6
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // A7
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // A8
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // A9
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // AA
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // AB
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // AC
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // AD
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // AE
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // AF

    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // B0
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // B1
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // B2
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // B3
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // B4
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // B5
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // B6
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // B7
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // B8
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // B9
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // BA
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // BB
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // BC
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // BD
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // BE
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // BF

    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // C0
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // C1
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // C2
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // C3
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // C4
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // C5
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // C6
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // C7
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // C8
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // C9
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // CA
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // CB
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // CC
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // CD
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // CE
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // CF

    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // D0
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // D1
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // D2
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // D3
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // D4
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // D5
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // D6
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // D7
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // D8
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // D9
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // DA
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // DB
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // DC
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // DD
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // DE
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // DF

    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // E0
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // E1
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // E2
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // E3
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // E4
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // E5
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // E6
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // E7
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // E8
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // E9
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // EA
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // EB
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // EC
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // ED
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // EE
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // EF

    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // F0
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // F1
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // F2
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // F3
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // F4
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // F5
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // F6
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // F7
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // F8
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // F9
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // FA
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // FB
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // FC
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // FD
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // FE
    {false, false, false, false, false, true,  false, true,  true,  false, false, false, false},        // FF

    // out of range test
    {false, false, false, false, false, false, false, false, false, false, false, false, false}         // 100
};


TEST
{
    int i = 0;

    while (i<NUMTESTS)
    {
        // isalnum()
        ASSERT_AreEqual(testSet[i].isalnum, (isalnum(i) ? true : false), "%d", "Invalid 'isalnum(%d)' classification!" COMMA i);

        // isalpha()
        ASSERT_AreEqual(testSet[i].isalpha, (isalpha(i) ? true : false), "%d", "Invalid 'isalpha(%d)' classification!" COMMA i);

        // isascii()
        ASSERT_AreEqual(testSet[i].isascii, (isascii(i) ? true : false), "%d", "Invalid 'isascii(%d)' classification!" COMMA i);

        // iscntrl()
        ASSERT_AreEqual(testSet[i].iscntrl, (iscntrl(i) ? true : false), "%d", "Invalid 'iscntrl(%d)' classification!" COMMA i);

        // isdigit()
        ASSERT_AreEqual(testSet[i].isdigit, (isdigit(i) ? true : false), "%d", "Invalid 'isdigit(%d)' classification!" COMMA i);

        // isgraph()
        ASSERT_AreEqual(testSet[i].isgraph, (isgraph(i) ? true : false), "%d", "Invalid 'isgraph(%d)' classification!" COMMA i);

        // islower()
        ASSERT_AreEqual(testSet[i].islower, (islower(i) ? true : false), "%d", "Invalid 'islower(%d)' classification!" COMMA i);

        // isprint()
        ASSERT_AreEqual(testSet[i].isprint, (isprint(i) ? true : false), "%d", "Invalid 'isprint(%d)' classification!" COMMA i);

        // ispunct()
        ASSERT_AreEqual(testSet[i].ispunct, (ispunct(i) ? true : false), "%d", "Invalid 'ispunct(%d)' classification!" COMMA i);

        // isspace()
        ASSERT_AreEqual(testSet[i].isspace, (isspace(i) ? true : false), "%d", "Invalid 'isspace(%d)' classification!" COMMA i);

        // isupper()
        ASSERT_AreEqual(testSet[i].isupper, (isupper(i) ? true : false), "%d", "Invalid 'isupper(%d)' classification!" COMMA i);

        // isxdigit()
        ASSERT_AreEqual(testSet[i].isxdigit, (isxdigit(i) ? true : false), "%d", "Invalid 'isxdigit(%d)' classification!" COMMA i);

#if __CC65_STD__ >= __CC65_STD_C99__
        // isblank()
        ASSERT_AreEqual(testSet[i].isblank, (isblank(i) ? true : false), "%d", "Invalid 'isblank(%d)' classification!" COMMA i);
#endif
        ++i;
    }
}
ENDTEST