annotate gcc/testsuite/ada/acats/tests/cxa/cxa3001.a @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 -- CXA3001.A
kono
parents:
diff changeset
2 --
kono
parents:
diff changeset
3 -- Grant of Unlimited Rights
kono
parents:
diff changeset
4 --
kono
parents:
diff changeset
5 -- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
kono
parents:
diff changeset
6 -- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
kono
parents:
diff changeset
7 -- unlimited rights in the software and documentation contained herein.
kono
parents:
diff changeset
8 -- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
kono
parents:
diff changeset
9 -- this public release, the Government intends to confer upon all
kono
parents:
diff changeset
10 -- recipients unlimited rights equal to those held by the Government.
kono
parents:
diff changeset
11 -- These rights include rights to use, duplicate, release or disclose the
kono
parents:
diff changeset
12 -- released technical data and computer software in whole or in part, in
kono
parents:
diff changeset
13 -- any manner and for any purpose whatsoever, and to have or permit others
kono
parents:
diff changeset
14 -- to do so.
kono
parents:
diff changeset
15 --
kono
parents:
diff changeset
16 -- DISCLAIMER
kono
parents:
diff changeset
17 --
kono
parents:
diff changeset
18 -- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
kono
parents:
diff changeset
19 -- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
kono
parents:
diff changeset
20 -- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
kono
parents:
diff changeset
21 -- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
kono
parents:
diff changeset
22 -- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
kono
parents:
diff changeset
23 -- PARTICULAR PURPOSE OF SAID MATERIAL.
kono
parents:
diff changeset
24 --*
kono
parents:
diff changeset
25 --
kono
parents:
diff changeset
26 -- OBJECTIVE:
kono
parents:
diff changeset
27 -- Check that the character classification functions defined in
kono
parents:
diff changeset
28 -- package Ada.Characters.Handling produce correct results when provided
kono
parents:
diff changeset
29 -- constant arguments from package Ada.Characters.Latin_1.
kono
parents:
diff changeset
30 --
kono
parents:
diff changeset
31 -- TEST DESCRIPTION:
kono
parents:
diff changeset
32 -- This test checks the character classification functions of package
kono
parents:
diff changeset
33 -- Ada.Characters.Handling. In the evaluation of each function, loops
kono
parents:
diff changeset
34 -- are constructed to examine the function with as many values of type
kono
parents:
diff changeset
35 -- Character (Ada.Characters.Latin_1 constants) as possible in an
kono
parents:
diff changeset
36 -- amount of code that is about equal to the amount of code required
kono
parents:
diff changeset
37 -- to examine the function with a few representative input values and
kono
parents:
diff changeset
38 -- endpoint values.
kono
parents:
diff changeset
39 -- The usage paradigm being demonstrated by this test is that of the
kono
parents:
diff changeset
40 -- functions being used to assign to boolean variables, as well as
kono
parents:
diff changeset
41 -- serving as boolean conditions.
kono
parents:
diff changeset
42 --
kono
parents:
diff changeset
43 --
kono
parents:
diff changeset
44 -- CHANGE HISTORY:
kono
parents:
diff changeset
45 -- 06 Dec 94 SAIC ACVC 2.0
kono
parents:
diff changeset
46 -- 29 Apr 95 SAIC Fixed subtest checking Is_Graphic function.
kono
parents:
diff changeset
47 --
kono
parents:
diff changeset
48 --!
kono
parents:
diff changeset
49
kono
parents:
diff changeset
50 with Ada.Characters.Latin_1;
kono
parents:
diff changeset
51 with Ada.Characters.Handling;
kono
parents:
diff changeset
52 with Report;
kono
parents:
diff changeset
53
kono
parents:
diff changeset
54 procedure CXA3001 is
kono
parents:
diff changeset
55
kono
parents:
diff changeset
56 begin
kono
parents:
diff changeset
57
kono
parents:
diff changeset
58 Report.Test ("CXA3001", "Check that the character classification " &
kono
parents:
diff changeset
59 "functions defined in package " &
kono
parents:
diff changeset
60 "Ada.Characters.Handling produce " &
kono
parents:
diff changeset
61 "correct results when provided constant " &
kono
parents:
diff changeset
62 "arguments from package Ada.Characters.Latin_1");
kono
parents:
diff changeset
63
kono
parents:
diff changeset
64 Test_Block:
kono
parents:
diff changeset
65 declare
kono
parents:
diff changeset
66
kono
parents:
diff changeset
67 package AC renames Ada.Characters;
kono
parents:
diff changeset
68 package ACH renames Ada.Characters.Handling;
kono
parents:
diff changeset
69
kono
parents:
diff changeset
70 TC_Boolean : Boolean := False;
kono
parents:
diff changeset
71
kono
parents:
diff changeset
72 begin
kono
parents:
diff changeset
73
kono
parents:
diff changeset
74 -- Over the next six statements/blocks of code, evaluate functions
kono
parents:
diff changeset
75 -- Is_Control and Is_Graphic with control character and non-control
kono
parents:
diff changeset
76 -- character values.
kono
parents:
diff changeset
77
kono
parents:
diff changeset
78 for i in Character'Pos(AC.Latin_1.NUL) ..
kono
parents:
diff changeset
79 Character'Pos(AC.Latin_1.US) loop
kono
parents:
diff changeset
80 if not ACH.Is_Control(Character'Val(i)) then
kono
parents:
diff changeset
81 Report.Failed ("Incorrect result from function Is_Control - 1");
kono
parents:
diff changeset
82 end if;
kono
parents:
diff changeset
83 if ACH.Is_Graphic(Character'Val(i)) then
kono
parents:
diff changeset
84 Report.Failed ("Incorrect result from function Is_Graphic - 1");
kono
parents:
diff changeset
85 end if;
kono
parents:
diff changeset
86 end loop;
kono
parents:
diff changeset
87
kono
parents:
diff changeset
88
kono
parents:
diff changeset
89 for i in Character'Pos(AC.Latin_1.Space) ..
kono
parents:
diff changeset
90 Character'Pos(AC.Latin_1.Tilde) loop
kono
parents:
diff changeset
91 if not ACH.Is_Graphic(Character'Val(i)) then
kono
parents:
diff changeset
92 Report.Failed ("Incorrect result from function Is_Graphic - 2");
kono
parents:
diff changeset
93 end if;
kono
parents:
diff changeset
94 if ACH.Is_Control(Character'Val(i)) then
kono
parents:
diff changeset
95 Report.Failed ("Incorrect result from function Is_Control - 2");
kono
parents:
diff changeset
96 end if;
kono
parents:
diff changeset
97 end loop;
kono
parents:
diff changeset
98
kono
parents:
diff changeset
99
kono
parents:
diff changeset
100 for i in Character'Pos(AC.Latin_1.Reserved_128) ..
kono
parents:
diff changeset
101 Character'Pos(AC.Latin_1.APC) loop
kono
parents:
diff changeset
102 if not ACH.Is_Control(Character'Val(i)) then
kono
parents:
diff changeset
103 Report.Failed ("Incorrect result from function Is_Control - 3");
kono
parents:
diff changeset
104 end if;
kono
parents:
diff changeset
105 TC_Boolean := ACH.Is_Graphic(Character'Val(i));
kono
parents:
diff changeset
106 if TC_Boolean then
kono
parents:
diff changeset
107 Report.Failed ("Incorrect result from function Is_Graphic - 3");
kono
parents:
diff changeset
108 TC_Boolean := False;
kono
parents:
diff changeset
109 end if;
kono
parents:
diff changeset
110 end loop;
kono
parents:
diff changeset
111
kono
parents:
diff changeset
112 for i in Character'Pos(AC.Latin_1.No_Break_Space) ..
kono
parents:
diff changeset
113 Character'Pos(AC.Latin_1.LC_Y_Diaeresis) loop
kono
parents:
diff changeset
114 TC_Boolean := ACH.Is_Control(Character'Val(i));
kono
parents:
diff changeset
115 if TC_Boolean then
kono
parents:
diff changeset
116 Report.Failed ("Incorrect result from function Is_Control - 4");
kono
parents:
diff changeset
117 TC_Boolean := False;
kono
parents:
diff changeset
118 end if;
kono
parents:
diff changeset
119 if not ACH.Is_Graphic(Character'Val(i)) then
kono
parents:
diff changeset
120 Report.Failed ("Incorrect result from function Is_Graphic - 4");
kono
parents:
diff changeset
121 end if;
kono
parents:
diff changeset
122 end loop;
kono
parents:
diff changeset
123
kono
parents:
diff changeset
124 -- Check renamed constants.
kono
parents:
diff changeset
125
kono
parents:
diff changeset
126 if not (ACH.Is_Control(AC.Latin_1.IS4) and
kono
parents:
diff changeset
127 ACH.Is_Control(AC.Latin_1.IS3) and
kono
parents:
diff changeset
128 ACH.Is_Control(AC.Latin_1.IS2) and
kono
parents:
diff changeset
129 ACH.Is_Control(AC.Latin_1.IS1)) or
kono
parents:
diff changeset
130 (ACH.Is_Control(AC.Latin_1.NBSP) or
kono
parents:
diff changeset
131 ACH.Is_Control(AC.Latin_1.Paragraph_Sign) or
kono
parents:
diff changeset
132 ACH.Is_Control(AC.Latin_1.Minus_Sign) or
kono
parents:
diff changeset
133 ACH.Is_Control(AC.Latin_1.Ring_Above))
kono
parents:
diff changeset
134 then
kono
parents:
diff changeset
135 Report.Failed ("Incorrect result from function Is_Control - 5");
kono
parents:
diff changeset
136 end if;
kono
parents:
diff changeset
137
kono
parents:
diff changeset
138 if (ACH.Is_Graphic(AC.Latin_1.IS4) or
kono
parents:
diff changeset
139 ACH.Is_Graphic(AC.Latin_1.IS3) or
kono
parents:
diff changeset
140 ACH.Is_Graphic(AC.Latin_1.IS2) or
kono
parents:
diff changeset
141 ACH.Is_Graphic(AC.Latin_1.IS1)) or
kono
parents:
diff changeset
142 not (ACH.Is_Graphic(AC.Latin_1.NBSP) and
kono
parents:
diff changeset
143 ACH.Is_Graphic(AC.Latin_1.Paragraph_Sign) and
kono
parents:
diff changeset
144 ACH.Is_Graphic(AC.Latin_1.Minus_Sign) and
kono
parents:
diff changeset
145 ACH.Is_Graphic(AC.Latin_1.Ring_Above))
kono
parents:
diff changeset
146 then
kono
parents:
diff changeset
147 Report.Failed ("Incorrect result from function Is_Graphic - 5");
kono
parents:
diff changeset
148 end if;
kono
parents:
diff changeset
149
kono
parents:
diff changeset
150
kono
parents:
diff changeset
151 -- Evaluate function Is_Letter with letter/non-letter inputs.
kono
parents:
diff changeset
152
kono
parents:
diff changeset
153 for i in Character'Pos('A') .. Character'Pos('Z') loop
kono
parents:
diff changeset
154 if not ACH.Is_Letter(Character'Val(i)) then
kono
parents:
diff changeset
155 Report.Failed ("Incorrect Is_Letter result - 1");
kono
parents:
diff changeset
156 end if;
kono
parents:
diff changeset
157 end loop;
kono
parents:
diff changeset
158
kono
parents:
diff changeset
159 for i in Character'Pos(AC.Latin_1.LC_A) ..
kono
parents:
diff changeset
160 Character'Pos(AC.Latin_1.LC_Z) loop
kono
parents:
diff changeset
161 if not ACH.Is_Letter(Character'Val(i)) then
kono
parents:
diff changeset
162 Report.Failed ("Incorrect Is_Letter result - 2");
kono
parents:
diff changeset
163 end if;
kono
parents:
diff changeset
164 end loop;
kono
parents:
diff changeset
165
kono
parents:
diff changeset
166 for i in Character'Pos(AC.Latin_1.UC_A_Grave) ..
kono
parents:
diff changeset
167 Character'Pos(AC.Latin_1.UC_O_Diaeresis) loop
kono
parents:
diff changeset
168 if not ACH.Is_Letter(Character'Val(i)) then
kono
parents:
diff changeset
169 Report.Failed ("Incorrect Is_Letter result - 3");
kono
parents:
diff changeset
170 end if;
kono
parents:
diff changeset
171 end loop;
kono
parents:
diff changeset
172
kono
parents:
diff changeset
173 for i in Character'Pos(AC.Latin_1.UC_O_Oblique_Stroke) ..
kono
parents:
diff changeset
174 Character'Pos(AC.Latin_1.LC_O_Diaeresis) loop
kono
parents:
diff changeset
175 if not ACH.Is_Letter(Character'Val(i)) then
kono
parents:
diff changeset
176 Report.Failed ("Incorrect Is_Letter result - 4");
kono
parents:
diff changeset
177 end if;
kono
parents:
diff changeset
178 end loop;
kono
parents:
diff changeset
179
kono
parents:
diff changeset
180 for i in Character'Pos(AC.Latin_1.LC_O_Oblique_Stroke) ..
kono
parents:
diff changeset
181 Character'Pos(AC.Latin_1.LC_Y_Diaeresis) loop
kono
parents:
diff changeset
182 if not ACH.Is_Letter(Character'Val(i)) then
kono
parents:
diff changeset
183 Report.Failed ("Incorrect Is_Letter result - 5");
kono
parents:
diff changeset
184 end if;
kono
parents:
diff changeset
185 end loop;
kono
parents:
diff changeset
186
kono
parents:
diff changeset
187 -- Check for rejection of non-letters.
kono
parents:
diff changeset
188 for i in Character'Pos(AC.Latin_1.NUL) ..
kono
parents:
diff changeset
189 Character'Pos(AC.Latin_1.Commercial_At) loop
kono
parents:
diff changeset
190 if ACH.Is_Letter(Character'Val(i)) then
kono
parents:
diff changeset
191 Report.Failed ("Incorrect Is_Letter result - 6");
kono
parents:
diff changeset
192 end if;
kono
parents:
diff changeset
193 end loop;
kono
parents:
diff changeset
194
kono
parents:
diff changeset
195
kono
parents:
diff changeset
196 -- Evaluate function Is_Lower with lower case/non-lower case inputs.
kono
parents:
diff changeset
197
kono
parents:
diff changeset
198 for i in Character'Pos(AC.Latin_1.LC_A) ..
kono
parents:
diff changeset
199 Character'Pos(AC.Latin_1.LC_Z) loop
kono
parents:
diff changeset
200 if not ACH.Is_Lower(Character'Val(i)) then
kono
parents:
diff changeset
201 Report.Failed ("Incorrect Is_Lower result - 1");
kono
parents:
diff changeset
202 end if;
kono
parents:
diff changeset
203 end loop;
kono
parents:
diff changeset
204
kono
parents:
diff changeset
205 for i in Character'Pos(AC.Latin_1.LC_A_Grave) ..
kono
parents:
diff changeset
206 Character'Pos(AC.Latin_1.LC_O_Diaeresis) loop
kono
parents:
diff changeset
207 if not ACH.Is_Lower(Character'Val(i)) then
kono
parents:
diff changeset
208 Report.Failed ("Incorrect Is_Lower result - 2");
kono
parents:
diff changeset
209 end if;
kono
parents:
diff changeset
210 end loop;
kono
parents:
diff changeset
211
kono
parents:
diff changeset
212 for i in Character'Pos(AC.Latin_1.LC_O_Oblique_Stroke) ..
kono
parents:
diff changeset
213 Character'Pos(AC.Latin_1.LC_Y_Diaeresis) loop
kono
parents:
diff changeset
214 if not ACH.Is_Lower(Character'Val(i)) then
kono
parents:
diff changeset
215 Report.Failed ("Incorrect Is_Lower result - 3");
kono
parents:
diff changeset
216 end if;
kono
parents:
diff changeset
217 end loop;
kono
parents:
diff changeset
218
kono
parents:
diff changeset
219 if ACH.Is_Lower('A') or
kono
parents:
diff changeset
220 ACH.Is_Lower(AC.Latin_1.UC_Icelandic_Eth) or
kono
parents:
diff changeset
221 ACH.Is_Lower(AC.Latin_1.Number_Sign) or
kono
parents:
diff changeset
222 ACH.Is_Lower(AC.Latin_1.Cedilla) or
kono
parents:
diff changeset
223 ACH.Is_Lower(AC.Latin_1.SYN) or
kono
parents:
diff changeset
224 ACH.Is_Lower(AC.Latin_1.ESA)
kono
parents:
diff changeset
225 then
kono
parents:
diff changeset
226 Report.Failed ("Incorrect Is_Lower result - 4");
kono
parents:
diff changeset
227 end if;
kono
parents:
diff changeset
228
kono
parents:
diff changeset
229
kono
parents:
diff changeset
230 -- Evaluate function Is_Upper with upper case/non-upper case inputs.
kono
parents:
diff changeset
231
kono
parents:
diff changeset
232 for i in Character'Pos('A') .. Character'Pos('Z') loop
kono
parents:
diff changeset
233 if not ACH.Is_Upper(Character'Val(i)) then
kono
parents:
diff changeset
234 Report.Failed ("Incorrect Is_Upper result - 1");
kono
parents:
diff changeset
235 end if;
kono
parents:
diff changeset
236 end loop;
kono
parents:
diff changeset
237
kono
parents:
diff changeset
238 for i in Character'Pos(AC.Latin_1.UC_A_Grave) ..
kono
parents:
diff changeset
239 Character'Pos(AC.Latin_1.UC_O_Diaeresis) loop
kono
parents:
diff changeset
240 if not ACH.Is_Upper(Character'Val(i)) then
kono
parents:
diff changeset
241 Report.Failed ("Incorrect Is_Upper result - 2");
kono
parents:
diff changeset
242 end if;
kono
parents:
diff changeset
243 end loop;
kono
parents:
diff changeset
244
kono
parents:
diff changeset
245 for i in Character'Pos(AC.Latin_1.UC_O_Oblique_Stroke) ..
kono
parents:
diff changeset
246 Character'Pos(AC.Latin_1.UC_Icelandic_Thorn) loop
kono
parents:
diff changeset
247 if not ACH.Is_Upper(Character'Val(i)) then
kono
parents:
diff changeset
248 Report.Failed ("Incorrect Is_Upper result - 3");
kono
parents:
diff changeset
249 end if;
kono
parents:
diff changeset
250 end loop;
kono
parents:
diff changeset
251
kono
parents:
diff changeset
252 if ACH.Is_Upper('8') or
kono
parents:
diff changeset
253 ACH.Is_Upper(AC.Latin_1.LC_A_Ring ) or
kono
parents:
diff changeset
254 ACH.Is_Upper(AC.Latin_1.Dollar_Sign) or
kono
parents:
diff changeset
255 ACH.Is_Upper(AC.Latin_1.Broken_Bar) or
kono
parents:
diff changeset
256 ACH.Is_Upper(AC.Latin_1.ETB) or
kono
parents:
diff changeset
257 ACH.Is_Upper(AC.Latin_1.VTS)
kono
parents:
diff changeset
258 then
kono
parents:
diff changeset
259 Report.Failed ("Incorrect Is_Upper result - 4");
kono
parents:
diff changeset
260 end if;
kono
parents:
diff changeset
261
kono
parents:
diff changeset
262
kono
parents:
diff changeset
263 for i in Character'Pos('a') .. Character'Pos('z') loop
kono
parents:
diff changeset
264 if ACH.Is_Upper(Character'Val(i)) then
kono
parents:
diff changeset
265 Report.Failed ("Incorrect Is_Upper result - 5");
kono
parents:
diff changeset
266 end if;
kono
parents:
diff changeset
267 end loop;
kono
parents:
diff changeset
268
kono
parents:
diff changeset
269
kono
parents:
diff changeset
270 -- Evaluate function Is_Basic with basic/non-basic inputs.
kono
parents:
diff changeset
271 -- (Note: Basic letters are those without diacritical marks.)
kono
parents:
diff changeset
272
kono
parents:
diff changeset
273 for i in Character'Pos('A') .. Character'Pos('Z') loop
kono
parents:
diff changeset
274 if not ACH.Is_Basic(Character'Val(i)) then
kono
parents:
diff changeset
275 Report.Failed ("Incorrect Is_Basic result - 1");
kono
parents:
diff changeset
276 end if;
kono
parents:
diff changeset
277 end loop;
kono
parents:
diff changeset
278
kono
parents:
diff changeset
279 for i in Character'Pos(AC.Latin_1.LC_A) ..
kono
parents:
diff changeset
280 Character'Pos(AC.Latin_1.LC_Z) loop
kono
parents:
diff changeset
281 if not ACH.Is_Basic(Character'Val(i)) then
kono
parents:
diff changeset
282 Report.Failed ("Incorrect Is_Basic result - 2");
kono
parents:
diff changeset
283 end if;
kono
parents:
diff changeset
284 end loop;
kono
parents:
diff changeset
285
kono
parents:
diff changeset
286
kono
parents:
diff changeset
287 if not (ACH.Is_Basic(AC.Latin_1.UC_AE_Diphthong) and
kono
parents:
diff changeset
288 ACH.Is_Basic(AC.Latin_1.LC_AE_Diphthong) and
kono
parents:
diff changeset
289 ACH.Is_Basic(AC.Latin_1.LC_German_Sharp_S) and
kono
parents:
diff changeset
290 ACH.Is_Basic(AC.Latin_1.LC_Icelandic_Eth) and
kono
parents:
diff changeset
291 ACH.Is_Basic(AC.Latin_1.LC_Icelandic_Thorn) and
kono
parents:
diff changeset
292 ACH.Is_Basic(AC.Latin_1.UC_Icelandic_Eth) and
kono
parents:
diff changeset
293 ACH.Is_Basic(AC.Latin_1.UC_Icelandic_Thorn))
kono
parents:
diff changeset
294 then
kono
parents:
diff changeset
295 Report.Failed ("Incorrect Is_Basic result - 3");
kono
parents:
diff changeset
296 end if;
kono
parents:
diff changeset
297
kono
parents:
diff changeset
298 -- Check for rejection of non-basics.
kono
parents:
diff changeset
299 if ACH.Is_Basic(AC.Latin_1.UC_A_Tilde) or
kono
parents:
diff changeset
300 ACH.Is_Basic(AC.Latin_1.LC_A_Grave) or
kono
parents:
diff changeset
301 ACH.Is_Basic(AC.Latin_1.Ampersand) or
kono
parents:
diff changeset
302 ACH.Is_Basic(AC.Latin_1.Yen_Sign) or
kono
parents:
diff changeset
303 ACH.Is_Basic(AC.Latin_1.NAK) or
kono
parents:
diff changeset
304 ACH.Is_Basic(AC.Latin_1.SS2)
kono
parents:
diff changeset
305 then
kono
parents:
diff changeset
306 Report.Failed ("Incorrect Is_Basic result - 4");
kono
parents:
diff changeset
307 end if;
kono
parents:
diff changeset
308
kono
parents:
diff changeset
309
kono
parents:
diff changeset
310
kono
parents:
diff changeset
311 for i in Character'Pos(AC.Latin_1.NUL) ..
kono
parents:
diff changeset
312 Character'Pos(AC.Latin_1.Commercial_At) loop
kono
parents:
diff changeset
313 if ACH.Is_Basic(Character'Val(i)) then
kono
parents:
diff changeset
314 Report.Failed ("Incorrect Is_Basic result - 5");
kono
parents:
diff changeset
315 end if;
kono
parents:
diff changeset
316 end loop;
kono
parents:
diff changeset
317
kono
parents:
diff changeset
318
kono
parents:
diff changeset
319 -- Evaluate functions Is_Digit and Is_Decimal_Digit (a rename of
kono
parents:
diff changeset
320 -- Is_Digit) with decimal digit/non-digit inputs.
kono
parents:
diff changeset
321
kono
parents:
diff changeset
322
kono
parents:
diff changeset
323 if not (ACH.Is_Digit('0') and
kono
parents:
diff changeset
324 ACH.Is_Decimal_Digit('9')) or
kono
parents:
diff changeset
325 ACH.Is_Digit ('a') or -- Hex digits.
kono
parents:
diff changeset
326 ACH.Is_Decimal_Digit ('f') or
kono
parents:
diff changeset
327 ACH.Is_Decimal_Digit ('A') or
kono
parents:
diff changeset
328 ACH.Is_Digit ('F')
kono
parents:
diff changeset
329 then
kono
parents:
diff changeset
330 Report.Failed ("Incorrect Is_Digit/Is_Decimal_Digit result - 1");
kono
parents:
diff changeset
331 end if;
kono
parents:
diff changeset
332
kono
parents:
diff changeset
333 if ACH.Is_Digit (AC.Latin_1.Full_Stop) or
kono
parents:
diff changeset
334 ACH.Is_Decimal_Digit (AC.Latin_1.Dollar_Sign) or
kono
parents:
diff changeset
335 ACH.Is_Digit (AC.Latin_1.Number_Sign) or
kono
parents:
diff changeset
336 ACH.Is_Decimal_Digit (AC.Latin_1.Left_Parenthesis) or
kono
parents:
diff changeset
337 ACH.Is_Digit (AC.Latin_1.Right_Parenthesis)
kono
parents:
diff changeset
338 then
kono
parents:
diff changeset
339 Report.Failed ("Incorrect Is_Digit/Is_Decimal_Digit result - 2");
kono
parents:
diff changeset
340 end if;
kono
parents:
diff changeset
341
kono
parents:
diff changeset
342
kono
parents:
diff changeset
343 -- Evaluate functions Is_Hexadecimal_Digit with hexadecimal digit and
kono
parents:
diff changeset
344 -- non-hexadecimal digit inputs.
kono
parents:
diff changeset
345
kono
parents:
diff changeset
346 for i in Character'Pos('0') .. Character'Pos('9') loop
kono
parents:
diff changeset
347 if not ACH.Is_Hexadecimal_Digit(Character'Val(i)) then
kono
parents:
diff changeset
348 Report.Failed ("Incorrect Is_Hexadecimal_Digit result - 1");
kono
parents:
diff changeset
349 end if;
kono
parents:
diff changeset
350 end loop;
kono
parents:
diff changeset
351
kono
parents:
diff changeset
352 for i in Character'Pos('A') .. Character'Pos('F') loop
kono
parents:
diff changeset
353 if not ACH.Is_Hexadecimal_Digit(Character'Val(i)) then
kono
parents:
diff changeset
354 Report.Failed ("Incorrect Is_Hexadecimal_Digit result - 2");
kono
parents:
diff changeset
355 end if;
kono
parents:
diff changeset
356 end loop;
kono
parents:
diff changeset
357
kono
parents:
diff changeset
358 for i in Character'Pos(AC.Latin_1.LC_A) ..
kono
parents:
diff changeset
359 Character'Pos(AC.Latin_1.LC_F) loop
kono
parents:
diff changeset
360 if not ACH.Is_Hexadecimal_Digit(Character'Val(i)) then
kono
parents:
diff changeset
361 Report.Failed ("Incorrect Is_Hexadecimal_Digit result - 3");
kono
parents:
diff changeset
362 end if;
kono
parents:
diff changeset
363 end loop;
kono
parents:
diff changeset
364
kono
parents:
diff changeset
365
kono
parents:
diff changeset
366 if ACH.Is_Hexadecimal_Digit (AC.Latin_1.Minus_Sign) or
kono
parents:
diff changeset
367 ACH.Is_Hexadecimal_Digit (AC.Latin_1.Hyphen) or
kono
parents:
diff changeset
368 ACH.Is_Hexadecimal_Digit (AC.Latin_1.LC_G) or
kono
parents:
diff changeset
369 ACH.Is_Hexadecimal_Digit (AC.Latin_1.LC_Z) or
kono
parents:
diff changeset
370 ACH.Is_Hexadecimal_Digit ('G') or
kono
parents:
diff changeset
371 ACH.Is_Hexadecimal_Digit (AC.Latin_1.Cent_Sign) or
kono
parents:
diff changeset
372 ACH.Is_Hexadecimal_Digit (AC.Latin_1.Pound_Sign)
kono
parents:
diff changeset
373 then
kono
parents:
diff changeset
374 Report.Failed ("Incorrect Is_HexaDecimal_Digit result - 4");
kono
parents:
diff changeset
375 end if;
kono
parents:
diff changeset
376
kono
parents:
diff changeset
377
kono
parents:
diff changeset
378 -- Evaluate functions Is_Alphanumeric and Is_Special with
kono
parents:
diff changeset
379 -- letters, digits, and non-alphanumeric inputs.
kono
parents:
diff changeset
380
kono
parents:
diff changeset
381 for i in Character'Pos(AC.Latin_1.NUL) ..
kono
parents:
diff changeset
382 Character'Pos(AC.Latin_1.US) loop
kono
parents:
diff changeset
383 if ACH.Is_Alphanumeric(Character'Val(i)) then
kono
parents:
diff changeset
384 Report.Failed ("Incorrect Is_Alphanumeric result - 1");
kono
parents:
diff changeset
385 end if;
kono
parents:
diff changeset
386 TC_Boolean := ACH.Is_Special(Character'Val(i));
kono
parents:
diff changeset
387 if TC_Boolean then
kono
parents:
diff changeset
388 Report.Failed ("Incorrect Is_Special result - 1");
kono
parents:
diff changeset
389 TC_Boolean := False;
kono
parents:
diff changeset
390 end if;
kono
parents:
diff changeset
391 end loop;
kono
parents:
diff changeset
392
kono
parents:
diff changeset
393 for i in Character'Pos(AC.Latin_1.Reserved_128) ..
kono
parents:
diff changeset
394 Character'Pos(AC.Latin_1.APC) loop
kono
parents:
diff changeset
395 TC_Boolean := ACH.Is_Alphanumeric(Character'Val(i));
kono
parents:
diff changeset
396 if TC_Boolean then
kono
parents:
diff changeset
397 Report.Failed ("Incorrect Is_Alphanumeric result - 2");
kono
parents:
diff changeset
398 TC_Boolean := False;
kono
parents:
diff changeset
399 end if;
kono
parents:
diff changeset
400 if ACH.Is_Special(Character'Val(i)) then
kono
parents:
diff changeset
401 Report.Failed ("Incorrect Is_Special result - 2");
kono
parents:
diff changeset
402 end if;
kono
parents:
diff changeset
403 end loop;
kono
parents:
diff changeset
404
kono
parents:
diff changeset
405 for i in Character'Pos(AC.Latin_1.Space) ..
kono
parents:
diff changeset
406 Character'Pos(AC.Latin_1.Solidus) loop
kono
parents:
diff changeset
407 TC_Boolean := ACH.Is_Alphanumeric(Character'Val(i));
kono
parents:
diff changeset
408 if TC_Boolean then
kono
parents:
diff changeset
409 Report.Failed ("Incorrect Is_Alphanumeric result - 3");
kono
parents:
diff changeset
410 TC_Boolean := False;
kono
parents:
diff changeset
411 end if;
kono
parents:
diff changeset
412 if not ACH.Is_Special(Character'Val(i)) then
kono
parents:
diff changeset
413 Report.Failed ("Incorrect Is_Special result - 3");
kono
parents:
diff changeset
414 end if;
kono
parents:
diff changeset
415 end loop;
kono
parents:
diff changeset
416
kono
parents:
diff changeset
417 for i in Character'Pos('A') .. Character'Pos('Z') loop
kono
parents:
diff changeset
418 if not ACH.Is_Alphanumeric(Character'Val(i)) then
kono
parents:
diff changeset
419 Report.Failed ("Incorrect Is_Alphanumeric result - 4");
kono
parents:
diff changeset
420 end if;
kono
parents:
diff changeset
421 TC_Boolean := ACH.Is_Special(Character'Val(i));
kono
parents:
diff changeset
422 if TC_Boolean then
kono
parents:
diff changeset
423 Report.Failed ("Incorrect Is_Special result - 4");
kono
parents:
diff changeset
424 TC_Boolean := False;
kono
parents:
diff changeset
425 end if;
kono
parents:
diff changeset
426 end loop;
kono
parents:
diff changeset
427
kono
parents:
diff changeset
428 for i in Character'Pos('0') .. Character'Pos('9') loop
kono
parents:
diff changeset
429 if not ACH.Is_Alphanumeric(Character'Val(i)) then
kono
parents:
diff changeset
430 Report.Failed ("Incorrect Is_Alphanumeric result - 5");
kono
parents:
diff changeset
431 end if;
kono
parents:
diff changeset
432 TC_Boolean := ACH.Is_Special(Character'Val(i));
kono
parents:
diff changeset
433 if TC_Boolean then
kono
parents:
diff changeset
434 Report.Failed ("Incorrect Is_Special result - 5");
kono
parents:
diff changeset
435 TC_Boolean := False;
kono
parents:
diff changeset
436 end if;
kono
parents:
diff changeset
437 end loop;
kono
parents:
diff changeset
438
kono
parents:
diff changeset
439 for i in Character'Pos(AC.Latin_1.LC_A) ..
kono
parents:
diff changeset
440 Character'Pos(AC.Latin_1.LC_Z) loop
kono
parents:
diff changeset
441 if not ACH.Is_Alphanumeric(Character'Val(i)) then
kono
parents:
diff changeset
442 Report.Failed ("Incorrect Is_Alphanumeric result - 6");
kono
parents:
diff changeset
443 end if;
kono
parents:
diff changeset
444 TC_Boolean := ACH.Is_Special(Character'Val(i));
kono
parents:
diff changeset
445 if TC_Boolean then
kono
parents:
diff changeset
446 Report.Failed ("Incorrect Is_Special result - 6");
kono
parents:
diff changeset
447 TC_Boolean := False;
kono
parents:
diff changeset
448 end if;
kono
parents:
diff changeset
449 end loop;
kono
parents:
diff changeset
450
kono
parents:
diff changeset
451 for i in Character'Pos(AC.Latin_1.No_Break_Space) ..
kono
parents:
diff changeset
452 Character'Pos(AC.Latin_1.Inverted_Question) loop
kono
parents:
diff changeset
453 TC_Boolean := ACH.Is_Alphanumeric(Character'Val(i));
kono
parents:
diff changeset
454 if TC_Boolean then
kono
parents:
diff changeset
455 Report.Failed ("Incorrect Is_Alphanumeric result - 7");
kono
parents:
diff changeset
456 TC_Boolean := False;
kono
parents:
diff changeset
457 end if;
kono
parents:
diff changeset
458 if not ACH.Is_Special(Character'Val(i)) then
kono
parents:
diff changeset
459 Report.Failed ("Incorrect Is_Special result - 7");
kono
parents:
diff changeset
460 end if;
kono
parents:
diff changeset
461 end loop;
kono
parents:
diff changeset
462
kono
parents:
diff changeset
463 for i in Character'Pos(AC.Latin_1.UC_A_Grave) ..
kono
parents:
diff changeset
464 Character'Pos(AC.Latin_1.UC_O_Diaeresis) loop
kono
parents:
diff changeset
465 if not ACH.Is_Alphanumeric(Character'Val(i)) then
kono
parents:
diff changeset
466 Report.Failed ("Incorrect Is_Alphanumeric result - 8");
kono
parents:
diff changeset
467 end if;
kono
parents:
diff changeset
468 TC_Boolean := ACH.Is_Special(Character'Val(i));
kono
parents:
diff changeset
469 if TC_Boolean then
kono
parents:
diff changeset
470 Report.Failed ("Incorrect Is_Special result - 8");
kono
parents:
diff changeset
471 TC_Boolean := False;
kono
parents:
diff changeset
472 end if;
kono
parents:
diff changeset
473 end loop;
kono
parents:
diff changeset
474
kono
parents:
diff changeset
475 for i in Character'Pos(AC.Latin_1.UC_O_Oblique_Stroke) ..
kono
parents:
diff changeset
476 Character'Pos(AC.Latin_1.LC_O_Diaeresis) loop
kono
parents:
diff changeset
477 if not ACH.Is_Alphanumeric(Character'Val(i)) then
kono
parents:
diff changeset
478 Report.Failed ("Incorrect Is_Alphanumeric result - 9");
kono
parents:
diff changeset
479 end if;
kono
parents:
diff changeset
480 TC_Boolean := ACH.Is_Special(Character'Val(i));
kono
parents:
diff changeset
481 if TC_Boolean then
kono
parents:
diff changeset
482 Report.Failed ("Incorrect Is_Special result - 9");
kono
parents:
diff changeset
483 TC_Boolean := False;
kono
parents:
diff changeset
484 end if;
kono
parents:
diff changeset
485 end loop;
kono
parents:
diff changeset
486
kono
parents:
diff changeset
487 for i in Character'Pos(AC.Latin_1.LC_O_Oblique_Stroke) ..
kono
parents:
diff changeset
488 Character'Pos(AC.Latin_1.LC_Y_Diaeresis) loop
kono
parents:
diff changeset
489 if not ACH.Is_Alphanumeric(Character'Val(i)) then
kono
parents:
diff changeset
490 Report.Failed ("Incorrect Is_Alphanumeric result - 10");
kono
parents:
diff changeset
491 end if;
kono
parents:
diff changeset
492 TC_Boolean := ACH.Is_Special(Character'Val(i));
kono
parents:
diff changeset
493 if TC_Boolean then
kono
parents:
diff changeset
494 Report.Failed ("Incorrect Is_Special result - 10");
kono
parents:
diff changeset
495 TC_Boolean := False;
kono
parents:
diff changeset
496 end if;
kono
parents:
diff changeset
497 end loop;
kono
parents:
diff changeset
498
kono
parents:
diff changeset
499
kono
parents:
diff changeset
500 exception
kono
parents:
diff changeset
501 when others => Report.Failed ("Exception raised during processing");
kono
parents:
diff changeset
502 end Test_Block;
kono
parents:
diff changeset
503
kono
parents:
diff changeset
504
kono
parents:
diff changeset
505 Report.Result;
kono
parents:
diff changeset
506
kono
parents:
diff changeset
507 end CXA3001;