Sync with 5.4.0
[deliverable/titan.core.git] / regression_test / XML / XER / Txerobjclass.ttcnpp
CommitLineData
970ed795 1/******************************************************************************
3abe9331 2 * Copyright (c) 2000-2015 Ericsson Telecom AB
970ed795
EL
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 ******************************************************************************/
8module Txerobjclass
9{
10modulepar boolean Txerobjclass_verbose := false;
11#define verbose Txerobjclass_verbose
12
13#include "../macros.ttcnin"
14
15import from ObjectClass all;
16import from ObjectClassWithSyntax all;
17import from AsnValues all;
18
19type component Tobjclass {}
20
21external function flatten(inout universal charstring par) ;
22
23const charstring add_str :=
24"<MatOp>\n" &
25"\t<op>add</op>\n" &
26"\t<arg>\n" &
27"\t\t<TwoMat>\n" &
28"\t\t\t<left>\n" &
29"\t\t\t\t<SEQUENCE_OF>\n" &
30"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
31"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
32"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
33"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
34"\t\t\t\t</SEQUENCE_OF>\n" &
35"\t\t\t\t<SEQUENCE_OF>\n" &
36"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
37"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
38"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
39"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
40"\t\t\t\t</SEQUENCE_OF>\n" &
41"\t\t\t\t<SEQUENCE_OF>\n" &
42"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
43"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
44"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
45"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
46"\t\t\t\t</SEQUENCE_OF>\n" &
47"\t\t\t\t<SEQUENCE_OF>\n" &
48"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
49"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
50"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
51"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
52"\t\t\t\t</SEQUENCE_OF>\n" &
53"\t\t\t</left>\n" &
54"\t\t\t<right>\n" &
55"\t\t\t\t<SEQUENCE_OF>\n" &
56"\t\t\t\t\t<INTEGER>3</INTEGER>\n" &
57"\t\t\t\t\t<INTEGER>1</INTEGER>\n" &
58"\t\t\t\t\t<INTEGER>4</INTEGER>\n" &
59"\t\t\t\t\t<INTEGER>1</INTEGER>\n" &
60"\t\t\t\t</SEQUENCE_OF>\n" &
61"\t\t\t\t<SEQUENCE_OF>\n" &
62"\t\t\t\t\t<INTEGER>5</INTEGER>\n" &
63"\t\t\t\t\t<INTEGER>9</INTEGER>\n" &
64"\t\t\t\t\t<INTEGER>2</INTEGER>\n" &
65"\t\t\t\t\t<INTEGER>6</INTEGER>\n" &
66"\t\t\t\t</SEQUENCE_OF>\n" &
67"\t\t\t\t<SEQUENCE_OF>\n" &
68"\t\t\t\t\t<INTEGER>5</INTEGER>\n" &
69"\t\t\t\t\t<INTEGER>3</INTEGER>\n" &
70"\t\t\t\t\t<INTEGER>5</INTEGER>\n" &
71"\t\t\t\t\t<INTEGER>8</INTEGER>\n" &
72"\t\t\t\t</SEQUENCE_OF>\n" &
73"\t\t\t\t<SEQUENCE_OF>\n" &
74"\t\t\t\t\t<INTEGER>9</INTEGER>\n" &
75"\t\t\t\t\t<INTEGER>7</INTEGER>\n" &
76"\t\t\t\t\t<INTEGER>9</INTEGER>\n" &
77"\t\t\t\t\t<INTEGER>3</INTEGER>\n" &
78"\t\t\t\t</SEQUENCE_OF>\n" &
79"\t\t\t</right>\n" &
80"\t\t</TwoMat>\n" &
81"\t</arg>\n" &
82"\t<rez>\n" &
83"\t\t<Matrix>\n" &
84"\t\t\t<SEQUENCE_OF>\n" &
85"\t\t\t\t<INTEGER>3</INTEGER>\n" &
86"\t\t\t\t<INTEGER>1</INTEGER>\n" &
87"\t\t\t\t<INTEGER>4</INTEGER>\n" &
88"\t\t\t\t<INTEGER>1</INTEGER>\n" &
89"\t\t\t</SEQUENCE_OF>\n" &
90"\t\t\t<SEQUENCE_OF>\n" &
91"\t\t\t\t<INTEGER>5</INTEGER>\n" &
92"\t\t\t\t<INTEGER>9</INTEGER>\n" &
93"\t\t\t\t<INTEGER>2</INTEGER>\n" &
94"\t\t\t\t<INTEGER>6</INTEGER>\n" &
95"\t\t\t</SEQUENCE_OF>\n" &
96"\t\t\t<SEQUENCE_OF>\n" &
97"\t\t\t\t<INTEGER>5</INTEGER>\n" &
98"\t\t\t\t<INTEGER>3</INTEGER>\n" &
99"\t\t\t\t<INTEGER>5</INTEGER>\n" &
100"\t\t\t\t<INTEGER>8</INTEGER>\n" &
101"\t\t\t</SEQUENCE_OF>\n" &
102"\t\t\t<SEQUENCE_OF>\n" &
103"\t\t\t\t<INTEGER>9</INTEGER>\n" &
104"\t\t\t\t<INTEGER>7</INTEGER>\n" &
105"\t\t\t\t<INTEGER>9</INTEGER>\n" &
106"\t\t\t\t<INTEGER>3</INTEGER>\n" &
107"\t\t\t</SEQUENCE_OF>\n" &
108"\t\t</Matrix>\n" &
109"\t</rez>\n" &
110"</MatOp>\n" &
111"\n";
112
113const charstring add_str_ws :=
114"<MatOpWS>\n" &
115"\t<op>add</op>\n" &
116"\t<arg>\n" &
117"\t\t<TwoMatWS>\n" &
118"\t\t\t<left>\n" &
119"\t\t\t\t<SEQUENCE_OF>\n" &
120"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
121"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
122"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
123"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
124"\t\t\t\t</SEQUENCE_OF>\n" &
125"\t\t\t\t<SEQUENCE_OF>\n" &
126"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
127"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
128"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
129"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
130"\t\t\t\t</SEQUENCE_OF>\n" &
131"\t\t\t\t<SEQUENCE_OF>\n" &
132"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
133"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
134"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
135"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
136"\t\t\t\t</SEQUENCE_OF>\n" &
137"\t\t\t\t<SEQUENCE_OF>\n" &
138"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
139"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
140"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
141"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
142"\t\t\t\t</SEQUENCE_OF>\n" &
143"\t\t\t</left>\n" &
144"\t\t\t<right>\n" &
145"\t\t\t\t<SEQUENCE_OF>\n" &
146"\t\t\t\t\t<INTEGER>3</INTEGER>\n" &
147"\t\t\t\t\t<INTEGER>1</INTEGER>\n" &
148"\t\t\t\t\t<INTEGER>4</INTEGER>\n" &
149"\t\t\t\t\t<INTEGER>1</INTEGER>\n" &
150"\t\t\t\t</SEQUENCE_OF>\n" &
151"\t\t\t\t<SEQUENCE_OF>\n" &
152"\t\t\t\t\t<INTEGER>5</INTEGER>\n" &
153"\t\t\t\t\t<INTEGER>9</INTEGER>\n" &
154"\t\t\t\t\t<INTEGER>2</INTEGER>\n" &
155"\t\t\t\t\t<INTEGER>6</INTEGER>\n" &
156"\t\t\t\t</SEQUENCE_OF>\n" &
157"\t\t\t\t<SEQUENCE_OF>\n" &
158"\t\t\t\t\t<INTEGER>5</INTEGER>\n" &
159"\t\t\t\t\t<INTEGER>3</INTEGER>\n" &
160"\t\t\t\t\t<INTEGER>5</INTEGER>\n" &
161"\t\t\t\t\t<INTEGER>8</INTEGER>\n" &
162"\t\t\t\t</SEQUENCE_OF>\n" &
163"\t\t\t\t<SEQUENCE_OF>\n" &
164"\t\t\t\t\t<INTEGER>9</INTEGER>\n" &
165"\t\t\t\t\t<INTEGER>7</INTEGER>\n" &
166"\t\t\t\t\t<INTEGER>9</INTEGER>\n" &
167"\t\t\t\t\t<INTEGER>3</INTEGER>\n" &
168"\t\t\t\t</SEQUENCE_OF>\n" &
169"\t\t\t</right>\n" &
170"\t\t</TwoMatWS>\n" &
171"\t</arg>\n" &
172"\t<rez>\n" &
173"\t\t<MatrixWS>\n" &
174"\t\t\t<SEQUENCE_OF>\n" &
175"\t\t\t\t<INTEGER>3</INTEGER>\n" &
176"\t\t\t\t<INTEGER>1</INTEGER>\n" &
177"\t\t\t\t<INTEGER>4</INTEGER>\n" &
178"\t\t\t\t<INTEGER>1</INTEGER>\n" &
179"\t\t\t</SEQUENCE_OF>\n" &
180"\t\t\t<SEQUENCE_OF>\n" &
181"\t\t\t\t<INTEGER>5</INTEGER>\n" &
182"\t\t\t\t<INTEGER>9</INTEGER>\n" &
183"\t\t\t\t<INTEGER>2</INTEGER>\n" &
184"\t\t\t\t<INTEGER>6</INTEGER>\n" &
185"\t\t\t</SEQUENCE_OF>\n" &
186"\t\t\t<SEQUENCE_OF>\n" &
187"\t\t\t\t<INTEGER>5</INTEGER>\n" &
188"\t\t\t\t<INTEGER>3</INTEGER>\n" &
189"\t\t\t\t<INTEGER>5</INTEGER>\n" &
190"\t\t\t\t<INTEGER>8</INTEGER>\n" &
191"\t\t\t</SEQUENCE_OF>\n" &
192"\t\t\t<SEQUENCE_OF>\n" &
193"\t\t\t\t<INTEGER>9</INTEGER>\n" &
194"\t\t\t\t<INTEGER>7</INTEGER>\n" &
195"\t\t\t\t<INTEGER>9</INTEGER>\n" &
196"\t\t\t\t<INTEGER>3</INTEGER>\n" &
197"\t\t\t</SEQUENCE_OF>\n" &
198"\t\t</MatrixWS>\n" &
199"\t</rez>\n" &
200"</MatOpWS>\n" &
201"\n";
202
203const charstring sub_str :=
204"<MatOp>\n" &
205"\t<op>subtract</op>\n" &
206"\t<arg>\n" &
207"\t\t<TwoMat>\n" &
208"\t\t\t<left>\n" &
209"\t\t\t\t<SEQUENCE_OF>\n" &
210"\t\t\t\t\t<INTEGER>1</INTEGER>\n" &
211"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
212"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
213"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
214"\t\t\t\t</SEQUENCE_OF>\n" &
215"\t\t\t\t<SEQUENCE_OF>\n" &
216"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
217"\t\t\t\t\t<INTEGER>1</INTEGER>\n" &
218"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
219"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
220"\t\t\t\t</SEQUENCE_OF>\n" &
221"\t\t\t\t<SEQUENCE_OF>\n" &
222"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
223"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
224"\t\t\t\t\t<INTEGER>1</INTEGER>\n" &
225"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
226"\t\t\t\t</SEQUENCE_OF>\n" &
227"\t\t\t\t<SEQUENCE_OF>\n" &
228"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
229"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
230"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
231"\t\t\t\t\t<INTEGER>1</INTEGER>\n" &
232"\t\t\t\t</SEQUENCE_OF>\n" &
233"\t\t\t</left>\n" &
234"\t\t\t<right>\n" &
235"\t\t\t\t<SEQUENCE_OF>\n" &
236"\t\t\t\t\t<INTEGER>1</INTEGER>\n" &
237"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
238"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
239"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
240"\t\t\t\t</SEQUENCE_OF>\n" &
241"\t\t\t\t<SEQUENCE_OF>\n" &
242"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
243"\t\t\t\t\t<INTEGER>1</INTEGER>\n" &
244"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
245"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
246"\t\t\t\t</SEQUENCE_OF>\n" &
247"\t\t\t\t<SEQUENCE_OF>\n" &
248"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
249"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
250"\t\t\t\t\t<INTEGER>1</INTEGER>\n" &
251"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
252"\t\t\t\t</SEQUENCE_OF>\n" &
253"\t\t\t\t<SEQUENCE_OF>\n" &
254"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
255"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
256"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
257"\t\t\t\t\t<INTEGER>1</INTEGER>\n" &
258"\t\t\t\t</SEQUENCE_OF>\n" &
259"\t\t\t</right>\n" &
260"\t\t</TwoMat>\n" &
261"\t</arg>\n" &
262"\t<rez>\n" &
263"\t\t<Matrix>\n" &
264"\t\t\t<SEQUENCE_OF>\n" &
265"\t\t\t\t<INTEGER>0</INTEGER>\n" &
266"\t\t\t\t<INTEGER>0</INTEGER>\n" &
267"\t\t\t\t<INTEGER>0</INTEGER>\n" &
268"\t\t\t\t<INTEGER>0</INTEGER>\n" &
269"\t\t\t</SEQUENCE_OF>\n" &
270"\t\t\t<SEQUENCE_OF>\n" &
271"\t\t\t\t<INTEGER>0</INTEGER>\n" &
272"\t\t\t\t<INTEGER>0</INTEGER>\n" &
273"\t\t\t\t<INTEGER>0</INTEGER>\n" &
274"\t\t\t\t<INTEGER>0</INTEGER>\n" &
275"\t\t\t</SEQUENCE_OF>\n" &
276"\t\t\t<SEQUENCE_OF>\n" &
277"\t\t\t\t<INTEGER>0</INTEGER>\n" &
278"\t\t\t\t<INTEGER>0</INTEGER>\n" &
279"\t\t\t\t<INTEGER>0</INTEGER>\n" &
280"\t\t\t\t<INTEGER>0</INTEGER>\n" &
281"\t\t\t</SEQUENCE_OF>\n" &
282"\t\t\t<SEQUENCE_OF>\n" &
283"\t\t\t\t<INTEGER>0</INTEGER>\n" &
284"\t\t\t\t<INTEGER>0</INTEGER>\n" &
285"\t\t\t\t<INTEGER>0</INTEGER>\n" &
286"\t\t\t\t<INTEGER>0</INTEGER>\n" &
287"\t\t\t</SEQUENCE_OF>\n" &
288"\t\t</Matrix>\n" &
289"\t</rez>\n" &
290"</MatOp>\n" &
291"\n";
292
293const charstring inv_str :=
294"<MatOp>\n" &
295"\t<op>invert</op>\n" &
296"\t<arg>\n" &
297"\t\t<Matrix>\n" &
298"\t\t\t<SEQUENCE_OF>\n" &
299"\t\t\t\t<INTEGER>3</INTEGER>\n" &
300"\t\t\t\t<INTEGER>1</INTEGER>\n" &
301"\t\t\t\t<INTEGER>4</INTEGER>\n" &
302"\t\t\t\t<INTEGER>1</INTEGER>\n" &
303"\t\t\t</SEQUENCE_OF>\n" &
304"\t\t\t<SEQUENCE_OF>\n" &
305"\t\t\t\t<INTEGER>5</INTEGER>\n" &
306"\t\t\t\t<INTEGER>9</INTEGER>\n" &
307"\t\t\t\t<INTEGER>2</INTEGER>\n" &
308"\t\t\t\t<INTEGER>6</INTEGER>\n" &
309"\t\t\t</SEQUENCE_OF>\n" &
310"\t\t\t<SEQUENCE_OF>\n" &
311"\t\t\t\t<INTEGER>5</INTEGER>\n" &
312"\t\t\t\t<INTEGER>3</INTEGER>\n" &
313"\t\t\t\t<INTEGER>5</INTEGER>\n" &
314"\t\t\t\t<INTEGER>8</INTEGER>\n" &
315"\t\t\t</SEQUENCE_OF>\n" &
316"\t\t\t<SEQUENCE_OF>\n" &
317"\t\t\t\t<INTEGER>9</INTEGER>\n" &
318"\t\t\t\t<INTEGER>7</INTEGER>\n" &
319"\t\t\t\t<INTEGER>9</INTEGER>\n" &
320"\t\t\t\t<INTEGER>3</INTEGER>\n" &
321"\t\t\t</SEQUENCE_OF>\n" &
322"\t\t</Matrix>\n" &
323"\t</arg>\n" &
324"\t<rez>\n" &
325"\t\t<Matrix>\n" &
326"\t\t\t<SEQUENCE_OF>\n" &
327"\t\t\t\t<INTEGER>-467</INTEGER>\n" &
328"\t\t\t\t<INTEGER>-123</INTEGER>\n" &
329"\t\t\t\t<INTEGER>79</INTEGER>\n" &
330"\t\t\t\t<INTEGER>191</INTEGER>\n" &
331"\t\t\t</SEQUENCE_OF>\n" &
332"\t\t\t<SEQUENCE_OF>\n" &
333"\t\t\t\t<INTEGER>171</INTEGER>\n" &
334"\t\t\t\t<INTEGER>57</INTEGER>\n" &
335"\t\t\t\t<INTEGER>-39</INTEGER>\n" &
336"\t\t\t\t<INTEGER>-67</INTEGER>\n" &
337"\t\t\t</SEQUENCE_OF>\n" &
338"\t\t\t<SEQUENCE_OF>\n" &
339"\t\t\t\t<INTEGER>326</INTEGER>\n" &
340"\t\t\t\t<INTEGER>76</INTEGER>\n" &
341"\t\t\t\t<INTEGER>-52</INTEGER>\n" &
342"\t\t\t\t<INTEGER>-122</INTEGER>\n" &
343"\t\t\t</SEQUENCE_OF>\n" &
344"\t\t\t<SEQUENCE_OF>\n" &
345"\t\t\t\t<INTEGER>24</INTEGER>\n" &
346"\t\t\t\t<INTEGER>8</INTEGER>\n" &
347"\t\t\t\t<INTEGER>10</INTEGER>\n" &
348"\t\t\t\t<INTEGER>-18</INTEGER>\n" &
349"\t\t\t</SEQUENCE_OF>\n" &
350"\t\t</Matrix>\n" &
351"\t</rez>\n" &
352"</MatOp>\n" &
353"\n";
354
355const charstring inv_str_ws :=
356"<MatOpWS>\n" &
357"\t<op>invert</op>\n" &
358"\t<arg>\n" &
359"\t\t<MatrixWS>\n" &
360"\t\t\t<SEQUENCE_OF>\n" &
361"\t\t\t\t<INTEGER>3</INTEGER>\n" &
362"\t\t\t\t<INTEGER>1</INTEGER>\n" &
363"\t\t\t\t<INTEGER>4</INTEGER>\n" &
364"\t\t\t\t<INTEGER>1</INTEGER>\n" &
365"\t\t\t</SEQUENCE_OF>\n" &
366"\t\t\t<SEQUENCE_OF>\n" &
367"\t\t\t\t<INTEGER>5</INTEGER>\n" &
368"\t\t\t\t<INTEGER>9</INTEGER>\n" &
369"\t\t\t\t<INTEGER>2</INTEGER>\n" &
370"\t\t\t\t<INTEGER>6</INTEGER>\n" &
371"\t\t\t</SEQUENCE_OF>\n" &
372"\t\t\t<SEQUENCE_OF>\n" &
373"\t\t\t\t<INTEGER>5</INTEGER>\n" &
374"\t\t\t\t<INTEGER>3</INTEGER>\n" &
375"\t\t\t\t<INTEGER>5</INTEGER>\n" &
376"\t\t\t\t<INTEGER>8</INTEGER>\n" &
377"\t\t\t</SEQUENCE_OF>\n" &
378"\t\t\t<SEQUENCE_OF>\n" &
379"\t\t\t\t<INTEGER>9</INTEGER>\n" &
380"\t\t\t\t<INTEGER>7</INTEGER>\n" &
381"\t\t\t\t<INTEGER>9</INTEGER>\n" &
382"\t\t\t\t<INTEGER>3</INTEGER>\n" &
383"\t\t\t</SEQUENCE_OF>\n" &
384"\t\t</MatrixWS>\n" &
385"\t</arg>\n" &
386"\t<rez>\n" &
387"\t\t<MatrixWS>\n" &
388"\t\t\t<SEQUENCE_OF>\n" &
389"\t\t\t\t<INTEGER>-467</INTEGER>\n" &
390"\t\t\t\t<INTEGER>-123</INTEGER>\n" &
391"\t\t\t\t<INTEGER>79</INTEGER>\n" &
392"\t\t\t\t<INTEGER>191</INTEGER>\n" &
393"\t\t\t</SEQUENCE_OF>\n" &
394"\t\t\t<SEQUENCE_OF>\n" &
395"\t\t\t\t<INTEGER>171</INTEGER>\n" &
396"\t\t\t\t<INTEGER>57</INTEGER>\n" &
397"\t\t\t\t<INTEGER>-39</INTEGER>\n" &
398"\t\t\t\t<INTEGER>-67</INTEGER>\n" &
399"\t\t\t</SEQUENCE_OF>\n" &
400"\t\t\t<SEQUENCE_OF>\n" &
401"\t\t\t\t<INTEGER>326</INTEGER>\n" &
402"\t\t\t\t<INTEGER>76</INTEGER>\n" &
403"\t\t\t\t<INTEGER>-52</INTEGER>\n" &
404"\t\t\t\t<INTEGER>-122</INTEGER>\n" &
405"\t\t\t</SEQUENCE_OF>\n" &
406"\t\t\t<SEQUENCE_OF>\n" &
407"\t\t\t\t<INTEGER>24</INTEGER>\n" &
408"\t\t\t\t<INTEGER>8</INTEGER>\n" &
409"\t\t\t\t<INTEGER>10</INTEGER>\n" &
410"\t\t\t\t<INTEGER>-18</INTEGER>\n" &
411"\t\t\t</SEQUENCE_OF>\n" &
412"\t\t</MatrixWS>\n" &
413"\t</rez>\n" &
414"</MatOpWS>\n" &
415"\n";
416
417
418DECLARE_XER_ENCODERS(ObjectClass.MatOp, matop);
419
420testcase encode_objclass() runs on Tobjclass
421{
422 var universal charstring expected;
423
424 expected := add_str;
425 CHECK_METHOD(bxer_enc_matop, ObjectClass.addition, expected);
426 flatten(expected);
427 CHECK_METHOD(cxer_enc_matop, ObjectClass.addition, expected & lf);
428
429 expected := inv_str;
430 CHECK_METHOD(bxer_enc_matop, ObjectClass.inversion, expected);
431 flatten(expected);
432 CHECK_METHOD(cxer_enc_matop, ObjectClass.inversion, expected & lf);
433}
434
435testcase decode_objclass() runs on Tobjclass
436{
437 var ObjectClass.MatOp expected;
438
439 expected := ObjectClass.addition;
440 CHECK_DECODE2(matop, add_str, ObjectClass.MatOp, expected);
441
442 expected := ObjectClass.inversion;
443 CHECK_DECODE2(matop, inv_str, ObjectClass.MatOp, expected);
444}
445
446
447DECLARE_XER_ENCODERS(ObjectClassWithSyntax.MatOpWS, matopws);
448
449testcase encode_objclass_syntax() runs on Tobjclass
450{
451 var universal charstring expected;
452
453 expected := add_str_ws;
454 CHECK_METHOD(bxer_enc_matopws, ObjectClassWithSyntax.additionWS, expected);
455 flatten(expected);
456 CHECK_METHOD(cxer_enc_matopws, ObjectClassWithSyntax.additionWS, expected & lf);
457
458 expected := inv_str_ws;
459 CHECK_METHOD(bxer_enc_matopws, ObjectClassWithSyntax.inversionWS, expected);
460 flatten(expected);
461 CHECK_METHOD(cxer_enc_matopws, ObjectClassWithSyntax.inversionWS, expected & lf);
462}
463
464testcase decode_objclass_syntax() runs on Tobjclass
465{
466 var ObjectClassWithSyntax.MatOpWS expected;
467
468 expected := ObjectClassWithSyntax.additionWS;
469 CHECK_DECODE2(matopws, add_str_ws, ObjectClassWithSyntax.MatOpWS, expected);
470
471 expected := ObjectClassWithSyntax.inversionWS;
472 CHECK_DECODE2(matopws, inv_str_ws, ObjectClassWithSyntax.MatOpWS, expected);
473}
474
475// hmstr stands for handmade-string, NOT hamster !
476const charstring hmstr_mul :=
477"<AMatOp>\n" &
478"\t<oph>mul</oph>\n" &
479"\t<argh>\n" &
480"\t\t<twoMat>\n" &
481"\t\t\t<left>\n" &
482"\t\t\t\t<SEQUENCE_OF>\n" &
483"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
484"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
485"\t\t\t\t</SEQUENCE_OF>\n" &
486"\t\t\t\t<SEQUENCE_OF>\n" &
487"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
488"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
489"\t\t\t\t</SEQUENCE_OF>\n" &
490"\t\t\t</left>\n" &
491"\t\t\t<right>\n" &
492"\t\t\t\t<SEQUENCE_OF>\n" &
493"\t\t\t\t\t<INTEGER>1</INTEGER>\n" &
494"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
495"\t\t\t\t</SEQUENCE_OF>\n" &
496"\t\t\t\t<SEQUENCE_OF>\n" &
497"\t\t\t\t\t<INTEGER>0</INTEGER>\n" &
498"\t\t\t\t\t<INTEGER>1</INTEGER>\n" &
499"\t\t\t\t</SEQUENCE_OF>\n" &
500"\t\t\t</right>\n" &
501"\t\t</twoMat>\n" &
502"\t</argh>\n" &
503"\t<rezh>\n" &
504"\t\t<matrix>\n" &
505"\t\t\t<SEQUENCE_OF>\n" &
506"\t\t\t\t<INTEGER>0</INTEGER>\n" &
507"\t\t\t\t<INTEGER>0</INTEGER>\n" &
508"\t\t\t</SEQUENCE_OF>\n" &
509"\t\t\t<SEQUENCE_OF>\n" &
510"\t\t\t\t<INTEGER>0</INTEGER>\n" &
511"\t\t\t\t<INTEGER>0</INTEGER>\n" &
512"\t\t\t</SEQUENCE_OF>\n" &
513"\t\t</matrix>\n" &
514"\t</rezh>\n" &
515"</AMatOp>\n" &
516lf
517
518const charstring hmstr_inv :=
519"<AMatOp>\n" &
520"\t<oph>inv</oph>\n" &
521"\t<argh>\n" &
522"\t\t<matrix>\n" &
523"\t\t\t<SEQUENCE_OF>\n" &
524"\t\t\t\t<INTEGER>1</INTEGER>\n" &
525"\t\t\t\t<INTEGER>0</INTEGER>\n" &
526"\t\t\t</SEQUENCE_OF>\n" &
527"\t\t\t<SEQUENCE_OF>\n" &
528"\t\t\t\t<INTEGER>0</INTEGER>\n" &
529"\t\t\t\t<INTEGER>1</INTEGER>\n" &
530"\t\t\t</SEQUENCE_OF>\n" &
531"\t\t</matrix>\n" &
532"\t</argh>\n" &
533"\t<rezh>\n" &
534"\t\t<matrix>\n" &
535"\t\t\t<SEQUENCE_OF>\n" &
536"\t\t\t\t<INTEGER>1</INTEGER>\n" &
537"\t\t\t\t<INTEGER>0</INTEGER>\n" &
538"\t\t\t</SEQUENCE_OF>\n" &
539"\t\t\t<SEQUENCE_OF>\n" &
540"\t\t\t\t<INTEGER>0</INTEGER>\n" &
541"\t\t\t\t<INTEGER>1</INTEGER>\n" &
542"\t\t\t</SEQUENCE_OF>\n" &
543"\t\t</matrix>\n" &
544"\t</rezh>\n" &
545"</AMatOp>\n" &
546lf
547
548DECLARE_XER_ENCODERS(AMatOp, amatop);
549DECLARE_EXER_ENCODERS(AMatOp,amatop)
550DECLARE_XER_ENCODERS(ATwoMat, atwomat);
551DECLARE_EXER_ENCODERS(ATwoMat,atwomat)
552
553testcase encode_handmade() runs on Tobjclass
554{
555 var universal charstring expected := hmstr_mul;
556 CHECK_METHOD(bxer_enc_amatop, ObjectClassWithSyntax.matmul, expected);
557 flatten(expected);
558 CHECK_METHOD(cxer_enc_amatop, ObjectClassWithSyntax.matmul, expected & lf);
559
560 expected := hmstr_inv;
561 CHECK_METHOD(bxer_enc_amatop, ObjectClassWithSyntax.matinv, expected);
562 flatten(expected);
563 CHECK_METHOD(cxer_enc_amatop, ObjectClassWithSyntax.matinv, expected & lf);
564}
565
566const charstring a2mstr :=
567"<ATwoMat>\n" &
568"\t<left>\n" &
569"\t\t<SEQUENCE_OF>\n" &
570"\t\t\t<INTEGER>0</INTEGER>\n" &
571"\t\t\t<INTEGER>0</INTEGER>\n" &
572"\t\t</SEQUENCE_OF>\n" &
573"\t\t<SEQUENCE_OF>\n" &
574"\t\t\t<INTEGER>0</INTEGER>\n" &
575"\t\t\t<INTEGER>0</INTEGER>\n" &
576"\t\t</SEQUENCE_OF>\n" &
577"\t</left>\n" &
578"\t<right>\n" &
579"\t\t<SEQUENCE_OF>\n" &
580"\t\t\t<INTEGER>1</INTEGER>\n" &
581"\t\t\t<INTEGER>0</INTEGER>\n" &
582"\t\t</SEQUENCE_OF>\n" &
583"\t\t<SEQUENCE_OF>\n" &
584"\t\t\t<INTEGER>0</INTEGER>\n" &
585"\t\t\t<INTEGER>1</INTEGER>\n" &
586"\t\t</SEQUENCE_OF>\n" &
587"\t</right>\n" &
588"</ATwoMat>\n" &
589lf;
590
591testcase decode_handmade() runs on Tobjclass
592{
593 var ATwoMat a2m := { { {0,0}, {0,0} }, { {1,0}, {0,1} } }
594 CHECK_DECODE2(atwomat, a2mstr, ATwoMat, a2m);
595 // suffix, input, type, expected
596 CHECK_DECODE2(amatop, hmstr_mul, AMatOp, ObjectClassWithSyntax.matmul);
597 CHECK_DECODE2(amatop, hmstr_inv, AMatOp, ObjectClassWithSyntax.matinv);
598}
599
600control
601{
602 execute(encode_handmade());
603 execute(decode_handmade());
604
605 execute(encode_objclass());
606 execute(decode_objclass());
607
608 execute(encode_objclass_syntax());
609 execute(decode_objclass_syntax());
610}
611
612}
This page took 0.057682 seconds and 5 git commands to generate.