Titan Core Initial Contribution
[deliverable/titan.core.git] / regression_test / negativeTest / NegTestTestcases.ttcn
1 /******************************************************************************
2 * Copyright (c) 2000-2014 Ericsson Telecom AB
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 ******************************************************************************/
8 module NegTestTestcases {
9
10 // Test for NegativeTest of BER encoding
11 // Last modified:2011-04-20, before/after/value optional field
12
13 modulepar {
14 integer tsp_maxInt := 1000000;
15 integer tsp_step := -10;
16 }
17
18 import from NegTestTypes all;
19
20 type component MyComp {};
21
22 //seq
23 external function encode_myInteger10( in MyInteger10 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
24 external function encode_mySeqEmpty(in MySeqEmpty pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
25 external function encode_mySeqBool(in MySeqBool pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
26 external function encode_mySeqNull(in MySeqNull pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
27 external function encode_mySeqInt(in MySeqInt pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
28 external function encode_mySeqMyEnum(in MySeqMyEnum pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
29 external function encode_mySeqInt2( in MySeqInt2 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
30 external function encode_mySeqIntSeqInt2( in MySeqIntSeqInt2 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
31 external function encode_mySeqIntSeqInt2opt( in MySeqIntSeqInt2opt pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
32 external function encode_mySeqIntSeqInt2optopt( in MySeqIntSeqInt2optopt pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
33 external function encode_mySeqInt3( in MySeqInt3 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
34 external function encode_mySeqInt3opt( in MySeqInt3opt pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
35 external function encode_mySeqInt4( in MySeqInt4 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
36 external function encode_mySeqOJKL( in MySeqOJKL pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
37 external function encode_mySeqIOKL( in MySeqIOKL pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
38 external function encode_mySeqReal(in MySeqReal pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
39 external function encode_mySeqStr(in MySeqStr pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
40 external function encode_mySeqBitStr(in MySeqBitStr pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
41 external function encode_mySeqOctStr(in MySeqOctStr pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
42 external function encode_mySeqIntReal( in MySeqIntReal pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
43 external function encode_mySeqIntStr( in MySeqIntStr pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
44 external function encode_mySeqIntBitStr( in MySeqIntBitStr pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
45 external function encode_mySeqISKL( in MySeqISKL pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
46 external function encode_mySeqIntSeqIntSeqInt2( in MySeqIntSeqIntSeqInt2 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
47 external function encode_mySeqIntSeqIntSeqInt2SeqReal2( in MySeqIntSeqIntSeqInt2SeqReal2 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
48 external function encode_mySeqIntSeqReal2( in MySeqIntSeqReal2 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
49 external function encode_mySeqSeqIntSeqInt2SeqReal2( in MySeqSeqIntSeqInt2SeqReal2 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
50 external function encode_mySeqIntSeqIntSeqInt2optoptSeqReal2( in MySeqIntSeqIntSeqInt2optoptSeqReal2 pdu) return octetstring
51 with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
52 external function encode_mySeq_SeqSeqIntSeqInt2SeqReal2_SeqSeqIntSeqInt2SeqReal2( in MySeq_SeqSeqIntSeqInt2SeqReal2_SeqSeqIntSeqInt2SeqReal2 pdu) return octetstring
53 with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
54 external function encode_mySeq_SeqSeqIntSeqInt2optoptSeqReal2_SeqSeqIntSeqInt2optoptSeqReal2(
55 in MySeq_SeqSeqIntSeqInt2optoptSeqReal2_SeqSeqIntSeqInt2optoptSeqReal2 pdu) return octetstring
56 with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
57
58 external function encode_mySeqInt4opt(
59 in MySeqInt4opt pdu) return octetstring
60 with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
61
62 external function encode_mySeqInt5opt(
63 in MySeqInt5opt pdu) return octetstring
64 with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
65
66 //seq of
67 external function encode_mySeqOfBool(in MySeqOfBool pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
68 external function encode_mySeqOfNull(in MySeqOfNull pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
69 external function encode_mySeqOfInt(in MySeqOfInt pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
70 external function encode_mySeqOfMyEnum(in MySeqOfMyEnum pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
71 external function encode_mySeqOfEnum(in MySeqOfEnum pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
72 external function encode_mySeqOfReal( in MySeqOfReal pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
73 external function encode_mySeqOfBitStr(in MySeqOfBitStr pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
74 external function encode_mySeqOfOctStr(in MySeqOfOctStr pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
75 external function encode_mySeqOfObjId(in MySeqOfObjId pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
76 external function encode_mySeqOfMyUnionBT(in MySeqOfMyUnionBT pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
77 external function encode_mySeqOfSeqSeqIntSeqInt2SeqReal2(in MySeqOfSeqSeqIntSeqInt2SeqReal2 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
78
79 //set
80 external function encode_mySetEmpty(in MySetEmpty pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
81 external function encode_mySetBool(in MySetBool pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
82 external function encode_mySetNull(in MySetNull pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
83 external function encode_mySetInt(in MySetInt pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
84 external function encode_mySetMyEnum(in MySetMyEnum pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
85 external function encode_mySetInt2( in MySetInt2 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
86 external function encode_mySetInt2opt( in MySetInt2opt pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
87 external function encode_mySetIntSeqInt2( in MySetIntSeqInt2 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
88 external function encode_mySetIntSeqInt2T( in MySetIntSeqInt2T pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
89 external function encode_mySetIntSeqInt2opt( in MySetIntSeqInt2opt pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
90 external function encode_mySetIntSeqInt2Topt( in MySetIntSeqInt2Topt pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
91 external function encode_mySetIntSeqInt2optopt( in MySetIntSeqInt2optopt pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
92 external function encode_mySetIntSeqInt2Toptopt( in MySetIntSeqInt2Toptopt pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
93 external function encode_mySetInt3( in MySetInt3 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
94 external function encode_mySetInt3opt( in MySetInt3opt pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
95 external function encode_mySetInt4( in MySetInt4 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
96 external function encode_mySetInt4opt( in MySetInt4opt pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
97 external function encode_mySetOJKL( in MySetOJKL pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
98 external function encode_mySetIOKL( in MySetIOKL pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
99 external function encode_mySetReal(in MySetReal pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
100 external function encode_mySetStr(in MySetStr pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
101 external function encode_mySetBitStr(in MySetBitStr pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
102 external function encode_mySetOctStr(in MySetOctStr pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
103 external function encode_mySetIntReal( in MySetIntReal pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
104 external function encode_mySetIntStr( in MySetIntStr pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
105 external function encode_mySetIntBitStr( in MySetIntBitStr pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
106 external function encode_mySetISKL( in MySetISKL pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
107 external function encode_mySetISKLopt( in MySetISKLopt pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
108 external function encode_mySetIS2KLopt( in MySetIS2KLopt pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
109 external function encode_mySetISOKL( in MySetISOKL pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
110 external function encode_mySetISOKLopt( in MySetISOKLopt pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
111 external function encode_mySetIOSKL( in MySetIOSKL pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
112 external function encode_mySetIOSKLopt( in MySetIOSKLopt pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
113 external function encode_mySetIntSeqIntSeqInt2( in MySetIntSeqIntSeqInt2 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
114 external function encode_mySetIntSeqIntSeqInt2SeqReal2( in MySetIntSeqIntSeqInt2SeqReal2 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
115 external function encode_mySetIntSeqReal2( in MySetIntSeqReal2 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
116 external function encode_mySetSeqIntSeqInt2SeqReal2( in MySetSeqIntSeqInt2SeqReal2 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
117 external function encode_mySetIntSeqIntSeqInt2optoptSeqReal2( in MySetIntSeqIntSeqInt2optoptSeqReal2 pdu) return octetstring
118 with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
119 external function encode_mySet_SeqSeqIntSeqInt2SeqReal2_SeqSeqIntSeqInt2SeqReal2( in MySet_SeqSeqIntSeqInt2SeqReal2_SeqSeqIntSeqInt2SeqReal2 pdu) return octetstring
120 with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
121 external function encode_mySet_SeqSeqIntSeqInt2optoptSeqReal2_SeqSeqIntSeqInt2optoptSeqReal2(
122 in MySet_SeqSeqIntSeqInt2optoptSeqReal2_SeqSeqIntSeqInt2optoptSeqReal2 pdu) return octetstring
123 with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
124
125 //set of
126 external function encode_mySetOfBool(in MySetOfBool pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
127 external function encode_mySetOfNull(in MySetOfNull pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
128 external function encode_mySetOfInt(in MySetOfInt pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
129 external function encode_mySetOfMyEnum(in MySetOfMyEnum pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
130 external function encode_mySetOfEnum(in MySetOfEnum pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
131 external function encode_mySetOfReal( in MySetOfReal pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
132 external function encode_mySetOfBitStr(in MySetOfBitStr pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
133 external function encode_mySetOfOctStr(in MySetOfOctStr pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
134 external function encode_mySetOfObjId(in MySetOfObjId pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
135 external function encode_mySetOfMyUnionBT(in MySetOfMyUnionBT pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
136 external function encode_mySetOfSeqSeqIntSeqInt2SeqReal2(in MySetOfSeqSeqIntSeqInt2SeqReal2 pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
137
138 //union
139 external function encode_myUnionBasicTypes( in MyUnionBasicTypes pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
140 external function encode_myUnionComplexTypes( in MyUnionComplexTypes pdu) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }
141 external function decode_myUnionComplexTypes( in octetstring o) return MyUnionComplexTypes with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" }
142
143
144 group Sequences{
145 template MySeqInt2opt t_msi2opt := { i:= 1, j := 2 }
146 template MySeqInt2opt t_msi2optomit := { i:= 1, j := omit }
147 const MySeqInt2 c_msi2 := { i:= 1, j := 2 }
148 const MySeqInt2opt c_msi2opt := { i:= 1, j := 2 }
149 const MySeqInt2opt c_msi2optomit := { i:= 1, j := omit }
150
151 template MySeqEmpty t_seqEmpty :={}
152 template MySeqBool t_msb(template boolean p_b) := {b:= p_b}
153 template MySeqNull t_msn := { n:= NULL }
154
155 template MySeqInt t_msi(template integer p_i) := {i:= p_i}
156 template MySeqInt t_msi_omit(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= omit" }
157 template MySeqInt t_msi_valueSameTypeE(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= integer:5" }
158 template MySeqInt t_msi_valueSameTypeI(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= 5" } //implicit type
159 template MySeqInt t_msi_valueDiffTypeExplicitString(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= MyCharstring:""subidubi""" }
160
161 template MySeqInt t_msi_valueDiffTypeExplicitBoolean(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= boolean:true" }
162 template MySeqInt t_msi_valueDiffTypeImplicitBoolean(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= true" }
163 template MySeqInt t_msi_valueDiffTypeExplicitOctStr(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= octetstring:'BABA'O" }
164 template MySeqInt t_msi_valueDiffTypeImplicitOctStr(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= 'BABA'O" }
165 template MySeqInt t_msi_valueDiffTypeExplicitEnum(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= MyEnum:second" }
166 template MySeqInt t_msi_valueDiffTypeExplicitFloat(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= float:5.0" }
167 template MySeqInt t_msi_valueDiffTypeImplicitFloat(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= 5.0" }
168 template MySeqInt t_msi_valueDiffTypeExplicitBitString(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= bitstring:'01011000'B" }
169 template MySeqInt t_msi_valueDiffTypeImplicitBitString(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= '01011000'B" }
170 template MySeqInt t_msi_valueDiffTypeRaw(template integer p_i) := {i:= p_i} with { erroneous (i) "value(raw):= 'FF'O" }
171
172 template MySeqInt2 t_msi2(template integer p_i, template integer p_j) := {i:= p_i, j:=p_j}
173 template MySeqInt2 t_msi2_omiti(template integer p_i, template integer p_j) := {i:= p_i, j:=p_j} with { erroneous (i) "value:= omit" }
174 template MySeqInt2 t_msi2_omitj(template integer p_i, template integer p_j) := {i:= p_i, j:=p_j} with { erroneous (j) "value:= omit" }
175 template MySeqInt2 t_msi2_beforeomitj(template integer p_i, template integer p_j) := {i:= p_i, j:=p_j} with { erroneous (j) "before:= omit all" }
176 template MySeqInt2 t_msi2_afteromiti(template integer p_i, template integer p_j) := {i:= p_i, j:=p_j} with { erroneous (i) "after:= omit all" }
177 template MySeqInt2 t_msi2_valueSameTypeE(template integer p_i, template integer p_j) := {i:= p_i, j:=p_j} with { erroneous (j) "value:= integer:5" }
178 template MySeqInt2 t_msi2_valueSameTypeI(template integer p_i, template integer p_j) := {i:= p_i, j:=p_j} with { erroneous (j) "value := 5" }
179 template MySeqInt2 t_msi2_valueDiffTypeExplicitFloat(template integer p_i, template integer p_j) := {i:= p_i, j:=p_j} with { erroneous (j) "value:= float:5.0" }
180 template MySeqInt2 t_msi2_valueDiffTypeImplicitFloat(template integer p_i, template integer p_j) := {i:= p_i, j:=p_j} with { erroneous (j) "value:= 5.0" }
181 template MySeqInt2 t_msi2_valueDiffTypeExplicitString(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value:= MyCharstring:""subidubi""" }
182 template MySeqInt2 t_msi2_valueDiffTypeExplicitBitString(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value:= bitstring:'01011000'B" }
183 template MySeqInt2 t_msi2_valueDiffTypeImplicitBitString(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value:= '01011000'B" }
184 //variable related values:
185 template MySeqInt2 t_msi2_valueSeqIntV(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value := MySeqInt2:{1,2}" }
186 template MySeqInt2 t_msi2_valueSeqIntOptV(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value := MySeqInt2opt:{1,2}" } //t_msi2opt
187 template MySeqInt2 t_msi2_valueSeqIntC(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value := MySeqInt2:c_msi2" }
188 template MySeqInt2 t_msi2_valueSeqIntOptC(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value := MySeqInt2opt:c_msi2opt" }
189 template MySeqInt2 t_msi2_valueSeqInt2OptOmitC(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value:= c_msi2optomit" }
190 template MySeqInt2 t_msi2_valueSeqInt2iiC(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (i) "value:=integer:c_msi2.i" }
191 template MySeqInt2 t_msi2_valueSeqInt2ijC(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (i) "value:=integer:c_msi2.j" }
192 template MySeqInt2 t_msi2_valueSeqInt2jiC(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value:=integer:c_msi2.i" }
193 template MySeqInt2 t_msi2_valueSeqInt2jjC(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value:=integer:c_msi2.j" }
194 template MySeqInt2 t_msi2_valueSeqIntOptFieldC(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value:=integer:c_msi2opt.j" } ;//2
195
196 template MySeqIntSeqInt2 t_msisi2_trial(template integer p_i, template integer p_j, template integer p_k) := { p_i, { p_j, p_k} } //not used yet
197 template MySeqIntSeqInt2 t_msisi2(template integer p_i, template integer p_j, template integer p_k) := { i:= p_i, jk:= { i:=p_j, j:=p_k} };
198 template MySeqIntSeqInt2 t_msisi2_omiti(template integer p_i, template integer p_j, template integer p_k) := { i:= p_i, jk:= { i:=p_j, j:=p_k} } with { erroneous (i) "value:= omit" };
199 template MySeqIntSeqInt2 t_msisi2_omitjki(template integer p_i, template integer p_j, template integer p_k) := { i:= p_i, jk:= { i:=p_j, j:=p_k} } with { erroneous (jk.i) "value:= omit" };
200 template MySeqIntSeqInt2 t_msisi2_omitjkj(template integer p_i, template integer p_j, template integer p_k) := { i:= p_i, jk:= { i:=p_j, j:=p_k} } with { erroneous (jk.j) "value:= omit" };
201 template MySeqIntSeqInt2 t_msisi2_rawjki(template integer p_i, template integer p_j, template integer p_k) := { i:= p_i, jk:= { i:=p_j, j:=p_k} } with {
202 erroneous (jk.i) "value(raw):= 'ABBA'O" };
203 template MySeqIntSeqInt2 t_msisi2_rawjkj(template integer p_i, template integer p_j, template integer p_k) := { i:= p_i, jk:= { i:=p_j, j:=p_k} } with {
204 erroneous (jk.j) "value(raw):= 'ABBA'O" };
205 template MySeqIntSeqInt2 t_msisi2_afteribeforej(template integer p_i, template integer p_j, template integer p_k) := { i:= p_i, jk:= { i:=p_j, j:=p_k} } with {
206 erroneous(i) "after:= 'ABBA'O";
207 erroneous(jk.i) "before:='BABA'O"
208 };
209
210 //
211 template MySeqInt3 t_msi3(template integer p_i, template integer p_j, template integer p_k) := {i:= p_i, j:=p_j, k:=p_k}
212
213 template MySeqInt4 t_msi4(template integer p_i, template integer p_j, template integer p_k,template integer p_l ) := {i:= p_i, j:=p_j, k:=p_k, l:=p_l}
214
215 template MySeqInt5opt t_msi5opt(template integer p_i, template integer p_j, template integer p_k,template integer p_l , template integer p_m) := {i:= p_i, j:=p_j, k:=p_k, l:=p_l, m:=p_m}
216 template MySeqInt4 t_msi4_omiti(template integer p_i, template integer p_j, template integer p_k,template integer p_l ) := {i:= p_i, j:=p_j, k:=p_k, l:=p_l} with { erroneous (i) "value:= omit" }
217 template MySeqInt4 t_msi4_omitj(template integer p_i, template integer p_j, template integer p_k,template integer p_l ) := {i:= p_i, j:=p_j, k:=p_k, l:=p_l} with { erroneous (j) "value:= omit" }
218 template MySeqInt4 t_msi4_omitk(template integer p_i, template integer p_j, template integer p_k,template integer p_l ) := {i:= p_i, j:=p_j, k:=p_k, l:=p_l} with { erroneous (k) "value:= omit" }
219 template MySeqInt4 t_msi4_omitl(template integer p_i, template integer p_j, template integer p_k,template integer p_l ) := {i:= p_i, j:=p_j, k:=p_k, l:=p_l}
220 with { erroneous (l) "value:= omit" }
221
222 template MySeqInt4opt t_msi4opt_omitl(template integer p_i, template integer p_j, template integer p_k,template integer p_l ) := {i:= p_i, j:=p_j, k:=p_k, l:=p_l}
223 with { erroneous (l) "value:= omit" }
224
225 template MySeqInt4opt t_msi4opt_valueLInteger(template integer p_i, template integer p_j, template integer p_k, template integer p_l) := {i:= p_i, j:=p_j, k:=p_k,l:=p_l}
226 with { erroneous (l) "value:= 10" } //k=10
227
228 template MySeqInt4opt t_msi4opt_beforeLInteger(template integer p_i, template integer p_j, template integer p_k, template integer p_l) := {i:= p_i, j:=p_j, k:=p_k,l:=p_l}
229 with { erroneous (l) "before:= 10" }
230
231 template MySeqInt4opt t_msi4opt_afterLInteger(template integer p_i, template integer p_j, template integer p_k, template integer p_l) := {i:= p_i, j:=p_j, k:=p_k,l:=p_l}
232 with { erroneous (l) "after:= 10" }
233
234 template MySeqInt4 t_msi4_valueiOctetStr(template integer p_i, template integer p_j, template integer p_k, template integer p_l) := {i:= p_i, j:=p_j, k:=p_k,l:=p_l}
235 with { erroneous (i) "value:= 'FEDCBA98'O" }
236 template MySeqInt4 t_msi4_valuejOctetStr(template integer p_i, template integer p_j, template integer p_k,template integer p_l) := {i:= p_i, j:=p_j, k:=p_k,l:=p_l}
237 with { erroneous (j) "value:= 'FEDCBA98'O" }
238
239 template MySeqInt4 t_msi4_valueiRaw(template integer p_i, template integer p_j, template integer p_k,template integer p_l) := {i:= p_i, j:=p_j, k:=p_k,l:=p_l}
240 with { erroneous (i) "value(raw):= '0202ABBA'O" }
241
242 template MySeqInt4 t_msi4_valuejRaw(template integer p_i, template integer p_j, template integer p_k,template integer p_l) := {i:= p_i, j:=p_j, k:=p_k,l:=p_l}
243 with { erroneous (j) "value(raw):= '0202ABBA'O" }
244
245 template MySeqInt4 t_msi4_valuekRaw(template integer p_i, template integer p_j, template integer p_k,template integer p_l) := {i:= p_i, j:=p_j, k:=p_k,l:=p_l}
246 with { erroneous (k) "value(raw):= '0202ABBA'O" }
247
248 template MySeqInt4 t_msi4_valuelRaw(template integer p_i, template integer p_j, template integer p_k,template integer p_l) := {i:= p_i, j:=p_j, k:=p_k,l:=p_l}
249 with { erroneous (l) "value(raw):= '0202ABBA'O" }
250
251 template MySeqOJKL t_msojkl(template octetstring p_o, template integer p_j, template integer p_k,template integer p_l ) := {o:= p_o, j:=p_j, k:=p_k, l:=p_l}
252 template MySeqIOKL t_msiokl(template integer p_i, template octetstring p_o, template integer p_k,template integer p_l ) := {i:=p_i, o:=p_o, k:=p_k, l:=p_l}
253
254 template MySeqISKL t_msiskl(template integer p_i, template MySeqInt4 p_s, template integer p_k,template integer p_l ) := {i:=p_i, s:=p_s, k:=p_k, l:=p_l}
255 template MySeqISKL t_msiskl_valueSomit(template integer p_i, template MySeqInt4 p_s, template integer p_k,template integer p_l ) := {i:=p_i, s:=p_s, k:=p_k, l:=p_l} with { erroneous (s) "value:= omit" }
256 template MySeqISKL t_msiskl_valueSIomit(template integer p_i, template MySeqInt4 p_s, template integer p_k,template integer p_l ) := {i:=p_i, s:=p_s, k:=p_k, l:=p_l} with { erroneous (s.i) "value:= omit" }
257 template MySeqISKL t_msiskl_valueSISJomit(template integer p_i, template MySeqInt4 p_s, template integer p_k,template integer p_l ) := {i:=p_i, s:=p_s, k:=p_k, l:=p_l} with { erroneous (s.i) "value:= omit"
258 erroneous (s.j) "value:= omit"}
259 template MySeqISKL t_msiskl_valueSraw(template integer p_i, template MySeqInt4 p_s, template integer p_k,template integer p_l ) := {i:=p_i, s:=p_s, k:=p_k, l:=p_l} with { erroneous (s) "value(raw):= '0202ABBA'O" }
260 //===seq of seq of seq:==
261
262 template MySeqIntSeqIntSeqInt2SeqReal2 t_msisisi2r2_omiti(template integer p_i,template MySeqIntSeqInt2 p_jkl, template MySeqReal2 p_xy) :=
263 { i:=p_i, jkl:=p_jkl, xy:=p_xy} with { erroneous(i) "value:=omit"}
264
265 template MySeqIntSeqIntSeqInt2SeqReal2 t_msisisi2r2_omitjkl(template integer p_i,template MySeqIntSeqInt2 p_jkl, template MySeqReal2 p_xy) :=
266 { i:=p_i, jkl:=p_jkl, xy:=p_xy} with { erroneous(jkl) "value:=omit"}
267
268 template MySeqIntSeqIntSeqInt2SeqReal2 t_msisisi2r2_omitxy(template integer p_i,template MySeqIntSeqInt2 p_jkl, template MySeqReal2 p_xy) :=
269 { i:=p_i, jkl:=p_jkl, xy:=p_xy} with { erroneous(xy) "value:=omit"}
270
271 template MySeqIntSeqIntSeqInt2SeqReal2 t_msisisi2r2_valuexy(template integer p_i,template MySeqIntSeqInt2 p_jkl, template MySeqReal2 p_xy) :=
272 { i:=p_i, jkl:=p_jkl, xy:=p_xy} with { erroneous(xy) "value:=MySeqReal2:{15.0,16.0}"}
273
274 template MySeqIntSeqIntSeqInt2SeqReal2 t_msisisi2r2_valuex_y(template integer p_i,template MySeqIntSeqInt2 p_jkl, template MySeqReal2 p_xy) :=
275 { i:=p_i, jkl:=p_jkl, xy:=p_xy} with {
276 erroneous(xy.x) "value:=float:15.0";
277 erroneous(xy.y) "value:=float:16.0"
278 }
279
280 template MySeqIntSeqIntSeqInt2SeqReal2 t_msisisi2r2_valuex_y_expr1(template integer p_i,template MySeqIntSeqInt2 p_jkl, template MySeqReal2 p_xy) :=
281 { i:=p_i, jkl:=p_jkl, xy:=p_xy} with {
282 erroneous(xy.x) "value:=float:15.0*3.0";
283 erroneous(xy.y) "value:=float:16.0*4.0"
284 }
285 template MySeqIntSeqIntSeqInt2SeqReal2 t_msisisi2r2_valuex_y_expr2(template integer p_i,template MySeqIntSeqInt2 p_jkl, template MySeqReal2 p_xy) :=
286 { i:=p_i, jkl:=p_jkl, xy:=p_xy} with {
287 erroneous(xy.x) "value:=float:(1.0+10.0*(2.0+10.0*(3.0+10.0*(4.0+10.0*(5.0+10.0*6.0)))))"; //Horner
288 erroneous(xy.y) "value:=float:16.32/5.1"
289 }
290 template MySeqIntSeqIntSeqInt2SeqReal2 t_msisisi2r2_omitjkll(template integer p_i,template MySeqIntSeqInt2 p_jkl, template MySeqReal2 p_xy) :=
291 { i:=p_i, jkl:=p_jkl, xy:=p_xy} with { erroneous(jkl.jk.j) "value:=omit"}
292
293 //Sequence of depth 3:
294
295 template MySeq_SeqSeqIntSeqInt2SeqReal2_SeqSeqIntSeqInt2SeqReal2 t_msssi2sr2ssi2sr2_omit(template MySeqSeqIntSeqInt2SeqReal2 p_s1,template MySeqSeqIntSeqInt2SeqReal2 p_s2)
296 :={ s1:=p_s1,s2:=p_s2} with { erroneous(s1.jkl.jk.j) "value:=omit" }
297
298 //real (float)
299 template MySeqReal t_msr(template float p_x) := { x:=p_x }
300 template MySeqReal2 t_mr2(template float p_x, template float p_y):={x:=p_x, y:=p_y}
301
302 //charstring->VisibleString
303 template MySeqStr t_msstr(template charstring p_s) := { s := p_s }
304
305 //bitstring:
306 template MySeqBitStr t_msbitstr(template bitstring p_b) := { b := p_b };
307 template MySeqOctStr t_msos(template octetstring p_o) := { o := p_o };
308 template MySeqIntReal t_msir(template integer p_i, template float p_x ) := { i:=p_i, x:=p_x };
309
310 template MySeqIntStr t_msistr(template integer p_i, template MyCharstring p_s ) := { i:=p_i, s:=p_s };
311
312 template MySeqIntBitStr t_msibitstr(template integer p_i, template bitstring p_b ) := { i:=p_i, b:=p_b };
313
314
315 //====set of related templates ========
316
317 //==== union related templates ========
318 // It caused Seg fault - earlier :)
319 template MyUnionBasicTypes t_mubt_boolean1( template boolean p_b) := { b:= p_b } with { erroneous(b) "value:=omit" }
320 // template MyUnionBasicTypes t_mubt_boolean2( template boolean p_b) := { b:= p_b } with {
321 // erroneous(b) "value:=omit";
322 // erroneous(b) "before(raw):='ABBA'O"
323 // }
324
325 template MyUnionBasicTypes t_mubt_boolean3( template boolean p_b) := { b:= p_b } with { erroneous(b) "value:=false" } //encoded into ''O
326 template MyUnionBasicTypes t_mubt_booleanRaw( template boolean p_b) := { b:= p_b } with { erroneous(b) "value(raw):='ABBA'O" }
327 template MyUnionBasicTypes t_mubt_nullRaw := { n:= NULL } with { erroneous(n) "value(raw):='ABBA'O" }
328 template MyUnionBasicTypes t_mubt_integerRaw( template integer p_i) := { i:= p_i } with { erroneous(i) "value(raw):='ABBA'O" }
329 template MyUnionBasicTypes t_mubt_enumRaw( template MyEnum p_e) := { e:= p_e } with { erroneous(e) "value(raw):='ABBA'O" }
330 template MyUnionBasicTypes t_mubt_realRaw( template float p_r) := { r:= p_r } with { erroneous(r) "value(raw):='ABBA'O" }
331 template MyUnionBasicTypes t_mubt_bitstrRaw( template bitstring p_bs) := { bs:= p_bs } with { erroneous(bs) "value(raw):='ABBA'O" }
332 template MyUnionBasicTypes t_mubt_octetstrRaw( template octetstring p_os) := { os:= p_os } with { erroneous(os) "value(raw):='ABBA'O" }
333 template MyUnionBasicTypes t_mubt_objidRaw( template objid p_oi) := { oi:= p_oi } with { erroneous(oi) "value(raw):='ABBA'O" }
334
335 template MyUnionComplexTypes t_muct_0_1( template float p_f1, template float p_f2, template float p_f3) := { sofreal:={p_f1,p_f2,p_f3} } with { erroneous(sofreal[0], sofreal[1]) "value :=omit" }
336 template MyUnionComplexTypes t_muct_0_2( template float p_f1, template float p_f2, template float p_f3) := { sofreal:={p_f1,p_f2,p_f3} } with { erroneous(sofreal[0], sofreal[2]) "value :=omit" }
337 template MyUnionComplexTypes t_muct_1_2( template float p_f1, template float p_f2, template float p_f3) := { sofreal:={p_f1,p_f2,p_f3} } with { erroneous(sofreal[1], sofreal[2]) "value :=omit" }
338 template MyUnionComplexTypes t_muct_2_1( template float p_f1, template float p_f2, template float p_f3) := { sofreal:={p_f1,p_f2,p_f3} } with { erroneous(sofreal[2], sofreal[1]) "value :=omit" }
339 template MyUnionComplexTypes t_muct_0_1_2( template float p_f1, template float p_f2, template float p_f3) := { sofreal:={p_f1,p_f2,p_f3} } with { erroneous(sofreal[0], sofreal[1], sofreal[2]) "value :=omit" }
340 template MyUnionComplexTypes t_muct_0_2_1( template float p_f1, template float p_f2, template float p_f3) := { sofreal:={p_f1,p_f2,p_f3} } with { erroneous(sofreal[0], sofreal[2], sofreal[1]) "value :=omit" }
341 //=== INTEGER related? ===
342
343 //================================================
344 //======== Functions==============================
345 //================================================
346 function f_compareAndVerdict(in octetstring pl_encoded, in octetstring pl_expected) {
347 //log("Encoded value: ", pl_encoded); //DO not delete it, please. I'm working with this!
348 //log("Expected value: ", pl_expected);//Later it will be removed
349 if( pl_encoded == pl_expected ) {
350 setverdict(pass);
351 } else {
352 setverdict(fail, "encoded value: ", pl_encoded, ";expected value: ", pl_expected );
353 }
354 }
355 //================================================
356 //======== Testcases==============================
357 //================================================
358
359 //======== {integer}===================
360 //omit
361 testcase tc_mySeqIntOmit() runs on MyComp {
362 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
363 f_compareAndVerdict(
364 encode_mySeqInt(valueof(t_msi_omit(i))),
365 encode_mySeqEmpty(valueof(t_seqEmpty)) );
366 }
367 }
368
369 testcase tc_mySeqIntValueSameTypeE() runs on MyComp {
370 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
371 f_compareAndVerdict(
372 encode_mySeqInt(valueof(t_msi_valueSameTypeE(i))),
373 encode_mySeqInt(valueof(t_msi(5))) );
374 }
375 }
376
377 testcase tc_mySeqIntValueSameTypeI() runs on MyComp {
378 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
379 f_compareAndVerdict(
380 encode_mySeqInt(valueof(t_msi_valueSameTypeI(i))),
381 encode_mySeqInt(valueof(t_msi(5))) );
382 }
383 }
384
385 //Basic ASN.1 types (eq ttcn types): boolean, integer, octetstring, bitstring, null, objid, ext. objid, enum, embedded pdv, float (real), UTFSTR, seq, seq of
386 testcase tc_mySeqIntValueDiffTypeExplicitBool() runs on MyComp {
387 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
388 f_compareAndVerdict(
389 encode_mySeqInt(valueof(t_msi_valueDiffTypeExplicitBoolean(i))),
390 encode_mySeqBool(valueof(t_msb(true))) );
391 }
392 }
393 testcase tc_mySeqIntValueDiffTypeImplicitBool() runs on MyComp {
394 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
395 f_compareAndVerdict(
396 encode_mySeqInt(valueof(t_msi_valueDiffTypeImplicitBoolean(i))),
397 encode_mySeqBool(valueof(t_msb(true))) );
398 }
399 }
400
401 testcase tc_mySeqIntValueDiffTypeExplicitOctStr() runs on MyComp {
402 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
403 f_compareAndVerdict(
404 encode_mySeqInt(valueof(t_msi_valueDiffTypeExplicitOctStr(i))),
405 encode_mySeqOctStr(valueof(t_msos('BABA'O)))) ;
406 }
407 }
408 testcase tc_mySeqIntValueDiffTypeImplicitOctStr() runs on MyComp {
409 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
410 f_compareAndVerdict(
411 encode_mySeqInt(valueof(t_msi_valueDiffTypeImplicitOctStr(i))),
412 encode_mySeqOctStr(valueof(t_msos('BABA'O)))) ;
413 }
414 }
415
416 testcase tc_mySeqIntValueDiffTypeExplicitEnum() runs on MyComp {
417 var MySeqMyEnum vl_msme;
418 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
419 vl_msme.e:=second;
420 f_compareAndVerdict(
421 encode_mySeqInt(valueof(t_msi_valueDiffTypeExplicitEnum(i))),
422 encode_mySeqMyEnum(vl_msme) );
423 }
424 }
425 testcase tc_mySeqIntValueDiffTypeExplicitFloat() runs on MyComp {
426 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
427 f_compareAndVerdict(
428 encode_mySeqInt(valueof(t_msi_valueDiffTypeExplicitFloat(i))),
429 encode_mySeqReal(valueof(t_msr(5.0))) );
430 }
431 }
432
433 testcase tc_mySeqIntValueDiffTypeImplicitFloat() runs on MyComp {
434 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
435 f_compareAndVerdict(
436 encode_mySeqInt(valueof(t_msi_valueDiffTypeImplicitFloat(i))),
437 encode_mySeqReal(valueof(t_msr(5.0))));
438 }
439 }
440
441 testcase tc_mySeqIntValueDiffTypeExplicitStr() runs on MyComp {
442 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
443 f_compareAndVerdict(
444 encode_mySeqInt(valueof( t_msi_valueDiffTypeExplicitString(i))),
445 encode_mySeqStr(valueof(t_msstr("subidubi"))) );
446 }
447 }
448
449 //ImplicitString: there is no 1:1 mapping between charstring and XYString in ASN.1
450 //Basic ASN.1 types (eq ttcn types): boolean, integer, octetstring, bitstring, null, objid, ext. objid, enum, embedded pdv, float (real), UTFSTR, seq, seq of
451
452
453 testcase tc_mySeqIntValueDiffTypeExplicitBitStr() runs on MyComp {
454 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
455 f_compareAndVerdict(
456 encode_mySeqInt(valueof( t_msi_valueDiffTypeExplicitBitString(i))),
457 encode_mySeqBitStr(valueof(t_msbitstr('01011000'B))) );
458 }
459 }
460
461 testcase tc_mySeqIntValueDiffTypeImplicitBitStr() runs on MyComp {
462 log("encoded msbstr :",encode_mySeqBitStr(valueof(t_msbitstr('01011000'B))) );
463 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
464 f_compareAndVerdict(
465 encode_mySeqInt(valueof(t_msi_valueDiffTypeImplicitBitString(i))),
466 encode_mySeqBitStr(valueof(t_msbitstr('01011000'B))) )
467 }
468 }
469
470 //RAW
471 testcase tc_mySeqIntValueDiffTypeRawOctStr() runs on MyComp {
472 var octetstring vl_expectedValue:= '3001FF'O; //30:SEQ, 01:L,FF:Value
473 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
474 f_compareAndVerdict( encode_mySeqInt(valueof(t_msi_valueDiffTypeRaw(i))), vl_expectedValue)
475 }
476 }
477 // ============{integer, integer }==============
478 //omit
479 testcase tc_mySeqInt2Omiti() runs on MyComp {
480 var integer j:= 255;
481 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
482 f_compareAndVerdict(
483 encode_mySeqInt2(valueof(t_msi2_omiti(i,j))), //encoded
484 encode_mySeqInt(valueof(t_msi(j))) ); //expected
485 }
486 }
487
488 testcase tc_mySeqInt2Omitj() runs on MyComp {
489 var integer j:= 255;
490 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
491 f_compareAndVerdict(
492 encode_mySeqInt2(valueof(t_msi2_omitj(i,j))),//encoded
493 encode_mySeqInt(valueof(t_msi(i))) ); //expected
494 }
495 }
496
497 //before omit j
498 testcase tc_mySeqInt2BeforeOmitj() runs on MyComp {
499 var integer j:= 255;
500 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
501 f_compareAndVerdict(
502 encode_mySeqInt2(valueof(t_msi2_beforeomitj(i,j))),//encoded
503 encode_mySeqInt(valueof(t_msi(j))) ); //expected
504 }
505 }
506
507 //after omit i
508 testcase tc_mySeqInt2AfterOmiti() runs on MyComp {
509 var integer j:= 255;
510 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
511 f_compareAndVerdict(
512 encode_mySeqInt2(valueof(t_msi2_afteromiti(i,j))),//encoded
513 encode_mySeqInt(valueof(t_msi(i))));//expected
514 }
515 }
516
517 //after omit j => compile error
518 // testcase tc_mySeqInt2AfterOmitj() runs on MyComp {
519 // var integer j:= 255;
520 // for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
521 // log("encoded t_msi_after(i):",encode_mySeqInt(valueof(t_msi_after(i))));
522 // if( encode_mySeqInt2(valueof(t_msi2_afteromitj(i,j)))== encode_mySeqInt2(valueof(t_msi2(i,j))) ) {
523 // setverdict(pass)
524 // } else {
525 // setverdict(fail, "failed at i=" & int2str(i)) }
526 // }
527 // }
528
529 testcase tc_mySeqInt2ValueSameTypeE() runs on MyComp {
530 var integer j:= 255;
531 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
532 f_compareAndVerdict(
533 encode_mySeqInt2(valueof(t_msi2_valueSameTypeE(i,j))),//encoded
534 encode_mySeqInt2(valueof(t_msi2(i,5))) ); //expected
535 }
536 }
537
538 testcase tc_mySeqInt2ValueSameTypeI() runs on MyComp {
539 var integer j:= 255;
540 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
541 f_compareAndVerdict(
542 encode_mySeqInt2(valueof(t_msi2_valueSameTypeI(i,j))),//encoded
543 encode_mySeqInt2(valueof(t_msi2(i,5)))); //expected
544 }
545 }
546
547 testcase tc_mySeqInt2ValueDiffTypeExplicitFloat() runs on MyComp {
548 var integer j:= 255;
549 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
550 f_compareAndVerdict(
551 encode_mySeqInt2(valueof(t_msi2_valueDiffTypeExplicitFloat(i,j))),//encoded
552 encode_mySeqIntReal(valueof(t_msir(i,5.0)))); //expected
553 }
554 }
555
556 testcase tc_mySeqInt2ValueDiffTypeImplicitFloat() runs on MyComp {
557 var integer j:= 255;
558 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
559 f_compareAndVerdict(
560 encode_mySeqInt2(valueof(t_msi2_valueDiffTypeImplicitFloat(i,j))),//encoded
561 encode_mySeqIntReal(valueof(t_msir(i,5.0)))); //expected
562 }
563 }
564
565 testcase tc_mySeqInt2ValueDiffTypeExplicitStr() runs on MyComp {
566 var integer j:= 255;
567 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
568 f_compareAndVerdict(
569 encode_mySeqInt2(valueof( t_msi2_valueDiffTypeExplicitString(i, j))),//encoded
570 encode_mySeqIntStr(valueof(t_msistr(i, "subidubi"))) ); //expected
571 }
572 }
573
574 testcase tc_mySeqInt2ValueDiffTypeExplicitBitStr() runs on MyComp {
575 var integer j:= 255;
576 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
577 f_compareAndVerdict(
578 encode_mySeqInt2(valueof( t_msi2_valueDiffTypeExplicitBitString(i, j))), //encoded
579 encode_mySeqIntBitStr(valueof(t_msibitstr(i,'01011000'B))) ); //expected
580 }
581 }
582
583 testcase tc_mySeqInt2ValueDiffTypeImplicitBitStr() runs on MyComp {
584 var integer j:= 255;
585 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
586 f_compareAndVerdict(
587 encode_mySeqInt2(valueof( t_msi2_valueDiffTypeImplicitBitString(i,j))), //encoded
588 encode_mySeqIntBitStr(valueof(t_msibitstr(i,'01011000'B))) )//expected
589 }
590 }
591
592 testcase tc_mySeqInt2ValueSeqIntV() runs on MyComp {
593 var integer i:= 10, j:= 15;
594 var octetstring vl_encoded := encode_mySeqInt2(valueof(t_msi2_valueSeqIntV(i,j)))
595 var octetstring vl_expected:= encode_mySeqIntSeqInt2({10,{1,2}})
596 f_compareAndVerdict(vl_encoded,vl_expected);
597 //'300B02010A3006020101020102'O : T:30 (SEQ) L:'0B'O = 11dec, V:'02010A3006020101020102'O
598 // 02010A : T:02 (INT) L:01 V:'0A
599 // 3006020101020102: T:30 (SEQ) L:06 V:020101 (int:1) 020102 (int:2)
600 }
601
602 testcase tc_mySeqInt2ValueSeqIntOptV() runs on MyComp {
603 var integer i:= 10, j:= 15;
604 var octetstring vl_encoded := encode_mySeqInt2(valueof(t_msi2_valueSeqIntOptV(i,j)))
605 var octetstring vl_expected:= encode_mySeqIntSeqInt2({10,{1,2}})
606 f_compareAndVerdict(vl_encoded,vl_expected);
607 //'300B02010A3006020101020102'O : T:30 (SEQ) L:'0B'O = 11dec, V:'02010A3006020101020102'O
608 // 02010A : T:02 (INT) L:01 V:'0A
609 // 3006020101020102: T:30 (SEQ) L:06 V:020101 (int:1) 020102 (int:2)
610 }
611
612 testcase tc_mySeqInt2ValueSeqIntC() runs on MyComp {
613 var integer i:= 10, j:= 15;
614 var octetstring vl_encoded := encode_mySeqInt2(valueof(t_msi2_valueSeqIntC(i,j)))
615 var octetstring vl_expected:= encode_mySeqIntSeqInt2({10,{1,2}})
616 f_compareAndVerdict(vl_encoded,vl_expected);
617 //'300B02010A3006020101020102'O : T:30 (SEQ) L:'0B'O = 11dec, V:'02010A3006020101020102'O
618 // 02010A : T:02 (INT) L:01 V:'0A
619 // 3006020101020102: T:30 (SEQ) L:06 V:020101 (int:1) 020102 (int:2)
620 }
621
622 testcase tc_mySeqInt2ValueSeqInt2OptC() runs on MyComp {
623 var integer i:= 10, j:= 15;
624 var octetstring vl_encoded := encode_mySeqInt2(valueof(t_msi2_valueSeqIntOptC(i,j)));
625 var octetstring vl_expected:= encode_mySeqIntSeqInt2({10,{1,2}});
626 f_compareAndVerdict(vl_encoded,vl_expected);
627 //'300B02010A3006020101020102'O : T:30 (SEQ) L:'0B'O = 11dec, V:'02010A3006020101020102'O
628 // 02010A : T:02 (INT) L:01 V:'0A
629 // 3006020101020102: T:30 (SEQ) L:06 V:020101 (int:1) 020102 (int:2)
630 }
631
632 testcase tc_mySeqInt2ValueSeqInt2OptOmitC() runs on MyComp {
633 var integer i:= 10, j:= 15;
634 var octetstring vl_encoded := encode_mySeqInt2(valueof(t_msi2_valueSeqInt2OptOmitC(i,j)));
635 var octetstring vl_expected:= encode_mySeqIntSeqInt2optopt({10,{1,omit}})
636 f_compareAndVerdict(vl_encoded,vl_expected);
637 }
638 testcase tc_mySeqInt2ValueSeqInt2iiC() runs on MyComp {
639 var integer i:= 10, j:= 15;
640 var octetstring vl_encoded := encode_mySeqInt2(valueof(t_msi2_valueSeqInt2iiC(i,j)));
641 var octetstring vl_expected:= encode_mySeqInt2({1,15})
642 f_compareAndVerdict(vl_encoded,vl_expected);
643 }
644
645 testcase tc_mySeqInt2ValueSeqInt2ijC() runs on MyComp {
646 var integer i:= 10, j:= 15;
647 var octetstring vl_encoded := encode_mySeqInt2(valueof(t_msi2_valueSeqInt2ijC(i,j)));
648 var octetstring vl_expected:= encode_mySeqInt2({2,15})
649 f_compareAndVerdict(vl_encoded,vl_expected);
650 }
651 testcase tc_mySeqInt2ValueSeqInt2jiC() runs on MyComp {
652 var integer i:= 10, j:= 15;
653 var octetstring vl_encoded := encode_mySeqInt2(valueof(t_msi2_valueSeqInt2jiC(i,j)));
654 var octetstring vl_expected:= encode_mySeqInt2({10,1})
655 f_compareAndVerdict(vl_encoded,vl_expected);
656 }
657
658 testcase tc_mySeqInt2ValueSeqInt2jjC() runs on MyComp {
659 var integer i:= 10, j:= 15;
660 var octetstring vl_encoded := encode_mySeqInt2(valueof(t_msi2_valueSeqInt2jjC(i,j)));
661 var octetstring vl_expected:= encode_mySeqInt2({10,2})
662 f_compareAndVerdict(vl_encoded,vl_expected);
663 }
664 //=== Sequence { integer, {integer, integer} )
665 testcase tc_mySeqIntSeqInt2ValueOmiti() runs on MyComp {
666 var integer i:= 10, j:= 15, k:=16;
667 var octetstring vl_encoded :=encode_mySeqIntSeqInt2(valueof(t_msisi2_omiti(i,j,k)))
668 var octetstring vl_expected:=encode_mySeqIntSeqInt2opt({omit,{15,16}})
669 f_compareAndVerdict(vl_encoded,vl_expected);
670 //'3008300602010F020110'O T:30 (SEQ) L:08 V:'300602010F020110'O
671 //'300602010F020110'O : T:30 (SEQ) L:06 V:'02010F020110'O
672 //'02010F: integer:15dec
673 //'020110'O integer:16dec
674
675 }
676
677 testcase tc_mySeqIntSeqInt2ValueOmitjki() runs on MyComp {
678 var integer i:= 10, j:= 15, k:=16;
679 f_compareAndVerdict(
680 encode_mySeqIntSeqInt2(valueof(t_msisi2_omitjki(i,j,k))),
681 encode_mySeqIntSeqInt2optopt({10,{16,omit}}) );
682 //'300802010A3003020110'O : T:30 (SEQ) L:08 V:'02010A3003020110'O
683 //02010A (i=10)
684 //3003020110 T:30, L:03, V:020110 (=int:16)
685 }
686
687 testcase tc_mySeqIntSeqInt2ValueOmitjkj() runs on MyComp {
688 var integer i:= 10, j:= 15, k:=16;
689
690 //'300802010A3003020110'O : T:30 (SEQ) L:08 V:'02010A3003020110'O
691 //02010A (i=10)
692 //3003020110 T:30, L:03, V:020110 (=int:16)
693 f_compareAndVerdict( encode_mySeqIntSeqInt2(valueof(t_msisi2_omitjkj(i,j,k))), encode_mySeqIntSeqInt2optopt({10,{15,omit}}) );
694 }
695
696 testcase tc_mySeqIntSeqInt2ValueRawjki() runs on MyComp {
697 var integer i:= 10, j:= 15, k:=16;
698 //'300A02010A3005ABBA020110'O : T:30 (SEQ) L:0A (10) V:'02010A3005ABBA020110'O
699 //02010A (i=10)
700 //3005ABBA020110'O T:30, L:05, V:ABBA020110 'ABBA'O & '20110'O (int 16)
701 //log( "expected value: ", encode_mySeqIntSeqInt2 (valueof(t_msisi2(i,oct2int('ABBA'O),k)))); << No, the 'ABBA'O == TLV and not V !!!
702 f_compareAndVerdict( encode_mySeqIntSeqInt2(valueof(t_msisi2_rawjki(i,j,k))), '300A02010A3005ABBA020110'O );
703 }
704
705 testcase tc_mySeqIntSeqInt2ValueRawjkj() runs on MyComp {
706 var integer i:= 10, j:= 15, k:=16;
707 //'300A02010A300502010FABBA'O
708 // 300A02010A300502010FABBA'O: T:30 (SEQ) L:0A (10) V:'02010A300502010FABBA'O
709 //02010A (i=10)
710 // '300502010FABBA'O T:30, L:05, V:02010FABBA'O: '2010F'O (int 15) & 'ABBA'O
711 f_compareAndVerdict( encode_mySeqIntSeqInt2(valueof(t_msisi2_rawjkj(i,j,k))), '300A02010A300502010FABBA'O )
712 }
713
714 //After-before:
715 testcase tc_mySeqIntSeqInt2AfteriBeforej() runs on MyComp {
716 var integer i:= 10, j:= 15, k:=16;
717 f_compareAndVerdict( encode_mySeqIntSeqInt2(valueof(t_msisi2_afteribeforej(i,j,k))), '301302010A0402ABBA300A0402BABA02010F020110'O)
718 //'301302010A0402ABBA300A0402BABA02010F020110'O T:30 (SEQ) L:13 (19dec) V:'02010A0402ABBA300A0402BABA02010F020110'O
719 //02010A0 (i:10)
720 //0402ABBA T:04 (octetstring>1) L:02 V:'ABBA'O (after i should be 'ABBA'O ->ok
721 //'300A0402BABA02010F020110'O T:30 (SEQ) L:'0A'O (10dec) V: '0402BABA02010F020110'O
722 //0402BABA: T:04 (octetstr) L:02 V:'BABA'O ->ok
723 //02010F : (j:15) ->ok
724 //020110: (k:16) ->ok
725 }
726
727 //==== {integer, integer, integer, integer} ==============
728 //omit
729 testcase tc_mySeqInt4Omiti() runs on MyComp {
730 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
731 f_compareAndVerdict( encode_mySeqInt4(valueof(t_msi4_omiti(i,2*i,3*i,4*i))),encode_mySeqInt3(valueof(t_msi3(2*i,3*i,4*i))) )
732 }
733 }
734
735 testcase tc_mySeqInt4Omitj() runs on MyComp {
736 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
737 f_compareAndVerdict( encode_mySeqInt4(valueof(t_msi4_omitj(i,2*i,3*i,4*i))),encode_mySeqInt3(valueof(t_msi3(i,3*i,4*i))) );
738 }
739 }
740
741 testcase tc_mySeqInt4Omitk() runs on MyComp {
742 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
743 f_compareAndVerdict( encode_mySeqInt4(valueof(t_msi4_omitk(i,2*i,3*i,4*i))),encode_mySeqInt3(valueof(t_msi3(i,2*i,4*i))) )
744 }
745 }
746
747 testcase tc_mySeqInt4Omitl() runs on MyComp {
748 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
749 f_compareAndVerdict( encode_mySeqInt4(valueof(t_msi4_omitl(i,2*i,3*i,4*i))), encode_mySeqInt3(valueof(t_msi3(i,2*i,3*i))) )
750 }
751 }
752 //NEW
753 testcase tc_mySeqInt4optOmitl() runs on MyComp {
754 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
755 f_compareAndVerdict( encode_mySeqInt4opt(valueof(t_msi4opt_omitl(i,2*i,3*i,4*i))), encode_mySeqInt3(valueof(t_msi3(i,2*i,3*i))) )
756 }
757 }
758 //NEW
759 testcase tc_mySeqInt4optValueLInteger() runs on MyComp {
760 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
761 f_compareAndVerdict(
762 encode_mySeqInt4opt(valueof(t_msi4opt_valueLInteger(i,2*i,3*i,4*i))),
763 encode_mySeqInt4(valueof(t_msi4(i,2*i,3*i,10))) );
764 }
765 //encoded value: '300E020101020102020103040302010A'O; T:30 (SEQ) L:0E (14), V:020101 020102 020103 040302010A=
766 // 020101:(i=1), 020102:(j=2), 020103:(l=3), 040302010A: T:04 (OCTSTR), L=03
767 //expected value: '300C02010102010202010302010A'O"
768 }
769 //NEW BEFORE
770 testcase tc_mySeqInt4optBeforeLInteger() runs on MyComp {
771 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
772 f_compareAndVerdict(
773 encode_mySeqInt4opt(valueof(t_msi4opt_beforeLInteger(i,2*i,3*i,4*i))),
774 encode_mySeqInt5opt(valueof(t_msi5opt( i,2*i,3*i, 10,4*i))) )
775 }
776 }
777 //NEW AFTER
778 testcase tc_mySeqInt4optAfterLInteger() runs on MyComp {
779 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
780 f_compareAndVerdict(
781 encode_mySeqInt4opt(valueof(t_msi4opt_afterLInteger(i,2*i,3*i,4*i))),
782 encode_mySeqInt5opt(valueof(t_msi5opt( i,2*i,3*i, 4*i, 10))) )
783 }
784 }
785
786 testcase tc_mySeqInt4ValueiOctetStr() runs on MyComp {
787 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
788 f_compareAndVerdict(
789 encode_mySeqInt4(valueof(t_msi4_valueiOctetStr(i,2*i,3*i,4*i))),
790 encode_mySeqOJKL(valueof(t_msojkl('FEDCBA98'O,2*i,3*i, 4*i))) )
791 }
792 }
793
794 testcase tc_mySeqInt4ValuejOctetStr() runs on MyComp {
795 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
796 f_compareAndVerdict(
797 encode_mySeqInt4(valueof(t_msi4_valuejOctetStr(i,2*i,3*i,4*i))), encode_mySeqIOKL(valueof(t_msiokl(i,'FEDCBA98'O,3*i, 4*i))) )
798 }
799 }
800
801 type record of octetstring RoO;
802 type record of integer RoI;
803 testcase tc_mySeqInt4ValueiRaw() runs on MyComp {
804 var RoO vl_expectedValue:= {
805 '300D0202ABBA020102020103020104'O,
806 '300D0202ABBA02011402011E020128'O,
807 '30100202ABBA020200C80202012C02020190'O,
808 '30100202ABBA020207D002020BB802020FA0'O,
809 '300D0202ABBA0201EC0201E20201D8'O
810 }
811 //if i=1
812 //'300D0202ABBA020102020103020104'O: T:30(SEQ),L:0D (13), V:'0202ABBA020102020103020104'O
813 //'0202ABBA' T:02 (int),L:02,V:'ABBA' (L=4)
814 //'020102' T:2, L:01, V:2 (j=2)
815 //'020103' T:2, L:01, V:3 (k=3)
816 //'020104' T:2, L:01, V:4 (l=4)
817 //if i=10:
818 //'300D0202ABBA02011402011E020128'O: T:30 (SEQ),L:0D (13),V:0201010202ABBA020103020104 , where
819 //'0202ABBA' T:02 (int),L:02,V:'ABBA' (L=4)
820 //'020114' : T:02 (int),L:01,V:'14'O=20dec (j:=20) (L=3)
821 //'02011E' : T:02,L:01,V:'1E'O=30dec (k:=30) (L=3)
822 //'020128' : T:02,L:01,V:'28'O=40dec (l:=40) (L=3)
823 // L: 3+4+3+3=13
824 //if i=100:
825 //'30100202ABBA020200C80202012C02020190'O: T:30(SEQ),L='10'O=16dec, V:'0202ABBA020200C80202012C02020190'O
826 //'0202ABBA' T:02 (int),L:02,V:'ABBA' (L=4)
827 //'020200C8' T:02 (int),L:02,V:'00C8'O=200dec (L=4)
828 //'0202012C' T:02, L:02, V:'012C'O=256+32+12=300dec (L=4)
829 //'02020190' T:02 (int), L:02, V:'0190'O=256+9*16=400dec (L=4)
830 //'30100202ABBA020207D002020BB802020FA0'O: T:30, L:10=16dec, V:'0202ABBA020207D002020BB802020FA0'O
831 //if i=1000
832 //'0202ABBA' T:02 (int),L:02,V:'ABBA' (L=4)
833 //'020207D0' T:02 (int),L:02,V:'07D0'O=2000dec
834 //'02020BB8' T:02 (int),L:02,V:'0BB8'O=3000dec
835 //'02020FA0' T:02 (int),L:02,V:'0FA0'O=4000dec
836 //if i=-10
837 //'300D0202ABBA0201EC0201E20201D8'O T:30, L:0D=13dec, V:'0202ABBA0201EC0201E20201D8'O
838 //'0202ABBA' T:02 (int),L:02,V:'ABBA' (L=4)
839 //'0201EC'O T=02, (int), L:01,V:'EC'O='1110 1100'B=-'0001 0100'B=-(16+4)=-20dec ok
840 //'0201E2'O T=02, (int), L:01,V:'E2'O='1110 0010'B=-'0001 1110'B=-30dec
841 //'0201D8'O T=02, (int), L:01,V:'E:'D8'O='1101 1000'B=-'0010 1000'B=-40dec ok
842 var RoI vl_roi := { 1, 10, 100, 1000,-10};
843
844 var integer i:=0;
845 for(var integer index:=0; index<5;index:=index+1) {
846 i:=vl_roi[index];
847 f_compareAndVerdict( encode_mySeqInt4(valueof(t_msi4_valueiRaw(i,2*i,3*i,4*i))),vl_expectedValue[index] )
848 }
849 }
850
851 testcase tc_mySeqInt4ValuejRaw() runs on MyComp {
852 var octetstring vl_expectedValue:= '300D0201010202ABBA020103020104'O;
853 //'300D0201010202ABBA020103020104': T:30 (SEQ), L:0D (13), V:0201010202ABBA020103020104 , where
854 //'020101' : T:02 (int),L:01,V:1 (i:=1)
855 //'0202ABBA' T:02 (int),L:02,V:'ABBA'
856 //'020103' : T:02,L:01,V:2 (k:=3)
857 //'020104' : T:02,L:01,V:2 (l:=4)
858 var integer i:=1;
859 f_compareAndVerdict( encode_mySeqInt4(valueof(t_msi4_valuejRaw(i,2*i,3*i,4*i))),vl_expectedValue ) ;
860 }
861
862 testcase tc_mySeqInt4ValuekRaw() runs on MyComp {
863 var octetstring vl_expectedValue:= '300D0201010201020202ABBA020104'O; //30:SEQ, L=0D
864 //'300D0201010201020202ABBA020104'O T:30:SEQ, L=0D V: '0201010201020202ABBA020104'O
865 //020101 i=1
866 //020102 j=2
867 //0202ABBA 'ABBA'O
868 //020104 l=4
869 var integer i:=1;
870 f_compareAndVerdict( encode_mySeqInt4(valueof(t_msi4_valuekRaw(i,2*i,3*i,4*i))),vl_expectedValue )
871 }
872
873 testcase tc_mySeqInt4ValuelRaw() runs on MyComp {
874 var octetstring vl_expectedValue:= '300D0201010201020201030202ABBA'O;
875 //'300D0201010201020201030202ABBA'O T:30:SEQ, L=0D V: '201010201020201030202ABBA'O
876 //020101 i=1
877 //020102 j=2
878 //020103 k=3
879 //0202ABBA 'ABBA'O
880 var integer i:=1
881 f_compareAndVerdict( encode_mySeqInt4(valueof(t_msi4_valuelRaw(i,2*i,3*i,4*i))),vl_expectedValue ) ;
882 }
883
884 //To test if a mandatory structure omitted
885 testcase tc_mySeqISKL_ValueSomit() runs on MyComp {
886 var MySeqInt4 vl_msi4:={5,6,7,8};
887 var octetstring vl_expectedValue:='300902010A02011E020128'O
888 //'300902010A02011E020128'O T:30, L:09, V:'02010A02011E020128'
889 //02010A i=10
890 //02011E V:'1E'O=16+14=30 k=30
891 //020128 V:'28'O=32+8=40 l=40 ok
892 f_compareAndVerdict( encode_mySeqISKL(valueof(t_msiskl_valueSomit(10,vl_msi4,30,40))), vl_expectedValue )
893 }
894
895 testcase tc_mySeqISKL_ValueSIomit() runs on MyComp {
896 var MySeqInt4 vl_msi4:={5,6,7,8};
897 var octetstring vl_expectedValue:='301402010A300902010602010702010802011E020128'O;
898 //'301402010A300902010602010702010802011E020128'O; T:30, L:'14'O=20, V:'02010A3009020106020107020108 02011E020128'O
899 //02010A i=10 L=3
900 //3009020106020107020108: T:30, L:09, V:020106020107020108= '020106'O & '020107'O & '020108'O ~ {6,7,8}
901 //02011E V:16+14=30 k=30
902 //020128 V:32+8=40 l=40
903 f_compareAndVerdict( encode_mySeqISKL(valueof(t_msiskl_valueSIomit(10,vl_msi4,30,40))),vl_expectedValue )
904 }
905
906 testcase tc_mySeqISKL_ValueSISJomit() runs on MyComp {
907 var MySeqInt4 vl_msi4:={5,6,7,8};
908 var octetstring vl_expectedValue:='301102010A300602010702010802011E020128'O
909 //'301102010A300602010702010802011E020128'O; T:30, L:'11'O=17, V:'02010A 3006020107020108 02011E 020128'O
910 //02010A i=10 L=3
911 //3006020107020108: T:30, L:06, V:020107020108 = '020107'O & '020108'O ~ {7,8}
912 //02011E V:16+14=30 k=30
913 //020128 V:32+8=40 l=40
914 f_compareAndVerdict( encode_mySeqISKL(valueof(t_msiskl_valueSISJomit(10,vl_msi4,30,40))),vl_expectedValue )
915 }
916
917 testcase tc_mySeqISKL_ValueSraw() runs on MyComp {
918 var MySeqInt4 vl_msi4:={5,6,7,8};
919 var octetstring vl_expectedValue:= '300D02010A0202ABBA02011E020128'O
920 //'300D02010A0202ABBA02011E020128'O; T:30, L:'0D'O=13, V:'02010A 0202ABBA 02011E 020128'O
921 //02010A i=10 L=3
922 //0202ABBA T:02, L:02, V:'ABBA'O
923 //02011E V:16+14=30 k=30
924 //020128 V:32+8=40 l=40
925 f_compareAndVerdict( encode_mySeqISKL(valueof(t_msiskl_valueSraw(10,vl_msi4,30,40))),vl_expectedValue )
926 }
927
928 //===== sequence of sequence of sequence ====
929 testcase tc_MySeqIntSeqIntSeqInt2SeqReal2_omiti() runs on MyComp {
930 var MySeqSeqIntSeqInt2SeqReal2 vl_expected:= {{2,{3,4}},{5.0,6.0}};
931 //'301F 30 0B 020102 3006 020103 020104 3010 090603352E452B30 090603362E452B30'O
932 f_compareAndVerdict(
933 encode_mySeqIntSeqIntSeqInt2SeqReal2(valueof(t_msisisi2r2_omiti(1, {2,{3,4}}, {5.0,6.0} ))),
934 encode_mySeqSeqIntSeqInt2SeqReal2(vl_expected))
935 }
936 testcase tc_MySeqIntSeqIntSeqInt2SeqReal2_omitjkl() runs on MyComp {
937 var MySeqIntSeqReal2 vl_expected:= { 1, {5.0,6.0}};
938 //'30150201013010090603352E452B30090603362E452B30'O
939 //'30150201013010090603352E452B30090603362E452B30'O : T: 30 (SEQ), L:'15'O=21dec, V: '0201013010090603352E452B30090603362E452B30'O
940 //020101 int:1
941 //3010090603352E452B30090603362E452B30'O T: 30 (SEQ), L:'10'O=16dec V:'090603352E452B30 090603362E452B30'O
942 //090603352E452B30 T:09 (REAL), L:06, V:'03 35 2E 45 2B 30'O='0000 0011 ...'B ??? (35->5.0
943 //090603362E452B30 T:09 (REAL), L:06, V:'03 36 2E 45 2B 30'O=??? (36->6.0dec?)
944 f_compareAndVerdict( encode_mySeqIntSeqIntSeqInt2SeqReal2(
945 valueof(t_msisisi2r2_omitjkl(1, {2,{3,4}}, {5.0,6.0} ))),
946 encode_mySeqIntSeqReal2(vl_expected));
947 }
948
949 testcase tc_MySeqIntSeqIntSeqInt2SeqReal2_omitxy() runs on MyComp {
950 var MySeqIntSeqIntSeqInt2 vl_expected:= { 1, {2,{3,4}} };
951 //'3010020101300B0201023006020103020104'O
952 f_compareAndVerdict(
953 encode_mySeqIntSeqIntSeqInt2SeqReal2(valueof(t_msisisi2r2_omitxy(1, {2,{3,4}}, {5.0,6.0} ))),
954 encode_mySeqIntSeqIntSeqInt2(vl_expected))
955 }
956
957 //...with { erroneous(jkl.jk.j) "value:=omit"}
958 testcase tc_MySeqIntSeqIntSeqInt2SeqReal2_omitjkll() runs on MyComp {
959 var MySeqIntSeqIntSeqInt2optoptSeqReal2 vl_expected:= {1,{2,{3,omit}}, {5.0,6.0}};
960 f_compareAndVerdict( encode_mySeqIntSeqIntSeqInt2SeqReal2(
961 valueof(t_msisisi2r2_omitjkll(1, {2,{3,4}}, {5.0,6.0} ))),
962 encode_mySeqIntSeqIntSeqInt2optoptSeqReal2(vl_expected))
963 }
964
965 testcase tc_MySeqIntSeqIntSeqInt2SeqReal2_valuexy() runs on MyComp {
966 //var MySeqIntSeqIntSeqInt2SeqReal2 vl_msisisi2r2;
967 var MySeqIntSeqIntSeqInt2SeqReal2 vl_expected:= {1,{2,{3,4}}, {15.0,16.0}};
968 f_compareAndVerdict(
969 encode_mySeqIntSeqIntSeqInt2SeqReal2(valueof(t_msisisi2r2_valuexy(1, {2,{3,4}}, {5.0,6.0} ))),
970 encode_mySeqIntSeqIntSeqInt2SeqReal2(vl_expected))
971 }
972
973 testcase tc_MySeqIntSeqIntSeqInt2SeqReal2_valuex_y() runs on MyComp {
974
975 var MySeqIntSeqIntSeqInt2SeqReal2 vl_expected:= {1,{2,{3,4}}, {15.0,16.0}};
976 f_compareAndVerdict( encode_mySeqIntSeqIntSeqInt2SeqReal2(
977 valueof(t_msisisi2r2_valuex_y(1, {2,{3,4}}, {5.0,6.0} ))),
978 encode_mySeqIntSeqIntSeqInt2SeqReal2(vl_expected));
979 }
980
981 //expression evaluation in attribue section:
982 testcase tc_MySeqIntSeqIntSeqInt2SeqReal2_valuex_y_expr1() runs on MyComp {
983
984 var MySeqIntSeqIntSeqInt2SeqReal2 vl_expected:= {1,{2,{3,4}}, {45.0,64.0}};
985 f_compareAndVerdict(
986 encode_mySeqIntSeqIntSeqInt2SeqReal2(valueof(t_msisisi2r2_valuex_y_expr1(1, {2,{3,4}}, {5.0,6.0} ))),
987 encode_mySeqIntSeqIntSeqInt2SeqReal2(vl_expected))
988 }
989
990 testcase tc_MySeqIntSeqIntSeqInt2SeqReal2_valuex_y_expr2() runs on MyComp {
991 var MySeqIntSeqIntSeqInt2SeqReal2 vl_expected:= {1,{2,{3,4}}, {654321.0, 3.2}};
992 f_compareAndVerdict(
993 encode_mySeqIntSeqIntSeqInt2SeqReal2(valueof(t_msisisi2r2_valuex_y_expr2(1, {2,{3,4}}, {5.0,6.0} ))),
994 encode_mySeqIntSeqIntSeqInt2SeqReal2(vl_expected))
995 }
996
997 testcase tc_MySeq_SeqSeqIntSeqInt2SeqReal2_SeqSeqIntSeqInt2SeqReal2_omit() runs on MyComp {
998 var MySeqSeqIntSeqInt2SeqReal2 vl_s1:={ {1,{2,3}}, {3.0,4.0} }, vl_s2:= {{5,{6,7}}, {7.0, 8.0}};
999 var MySeq_SeqSeqIntSeqInt2optoptSeqReal2_SeqSeqIntSeqInt2optoptSeqReal2 vl_expected := { { omit,{1,{2, omit}}, {3.0,4.0} }, { omit,{5,{6,7}}, {7.0, 8.0}} }
1000 f_compareAndVerdict(
1001 encode_mySeq_SeqSeqIntSeqInt2SeqReal2_SeqSeqIntSeqInt2SeqReal2(valueof(t_msssi2sr2ssi2sr2_omit(vl_s1, vl_s2))),
1002 encode_mySeq_SeqSeqIntSeqInt2optoptSeqReal2_SeqSeqIntSeqInt2optoptSeqReal2(vl_expected));
1003 }
1004
1005 }//group Sequences
1006
1007
1008 //group Set
1009 group SequenceOf {
1010 //====sequence of related templates====
1011 template MySeqOfBool t_msob(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 };
1012 template MySeqOfNull t_mson := { NULL, NULL, NULL };
1013 template MySeqOfInt t_msoi(template integer p_i1, template integer p_i2, template integer p_i3):={p_i1,p_i2,p_i3};
1014 template MySeqOfMyEnum t_msome(template MyEnum p_e1, template MyEnum p_e2,template MyEnum p_e3) := {p_e1,p_e2,p_e3};
1015 //template MySeqOfEnum t_msoe(template MyEnum p_e1, template MyEnum p_e2,template MyEnum p_e3):= {p_e1,p_e2,p_e3};
1016 template MySeqOfReal t_msor(template float p_f1, template float p_f2, template float p_f3, template float p_f4):= {p_f1, p_f2,p_f3,p_f4}
1017 template MySeqOfBitStr t_msobs(template bitstring p_bs1, template bitstring p_bs2, template bitstring p_bs3):={p_bs1, p_bs2, p_bs3}
1018 template MySeqOfOctStr t_msoos(template octetstring p_os1, template octetstring p_os2, template octetstring p_os3):={p_os1, p_os2, p_os3}
1019 //template MySeqOfObjId
1020
1021 template MySeqOfBool t_msobValueSameType(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
1022 with { erroneous ([0]) "value:= boolean:true"; erroneous ([2]) "value:= boolean:true" };
1023
1024 template MySeqOfBool t_msobValueDiffType(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
1025 with { erroneous ([0]) "value:= 1.414"; erroneous ([2]) "value:= 2011" }; //2011 = '07DB'O
1026
1027 template MySeqOfBool t_msobValueDiffTypeRaw(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
1028 with { erroneous ([0]) "value(raw):='02010A'O"; erroneous ([2]) "value:= 2011" }; //2011 = '07DB'O
1029
1030 template MySeqOfBool t_msobValueOmit(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
1031 with { erroneous ([0]) "value:=omit"; erroneous ([1]) "value:= omit" };
1032
1033 template MySeqOfBool t_msobAfterOmit(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
1034 with { erroneous ([0]) "after:=omit all" };
1035
1036 template MySeqOfBool t_msobValueAfterOmit(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
1037 with { erroneous ([0]) "after:=omit all"; erroneous ([0]) "value:=true" };
1038
1039 template MySeqOfBool t_msobBeforeOmit2(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
1040 with { erroneous ([2]) "before:=omit all" };
1041
1042 template MySeqOfBool t_msobValueBeforeOmit2(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
1043 with { erroneous ([2]) "before:=omit all"; erroneous ([2]) "value:=true" };
1044
1045 template MySeqOfBool t_msobBeforeOmit1(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
1046 with { erroneous ([1]) "before:=omit all" };
1047
1048 template MySeqOfBool t_msobValueBeforeOmit1(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
1049 with { erroneous ([1]) "before:=omit all"; erroneous ([1]) "value:=true" };
1050 // This would cause compilation error - correct behavior:
1051 //template MySeqOfBool t_msobAfterOmit(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
1052 // with { erroneous ([0]) "after:=omit all"; erroneous ([1]) "value:= 4" };
1053
1054 //NULL:
1055 template MySeqOfNull t_msonValueDiffType := { NULL,NULL,NULL }
1056 with { erroneous ([0]) "value:= 1.414"; erroneous ([2]) "value:= 2011" };
1057
1058 template MySeqOfNull t_msonValueDiffTypeRaw := { NULL,NULL,NULL }
1059 with { erroneous ([0]) "value(raw):='02010A'O"; erroneous ([2]) "value:= 2011" };
1060
1061 template MySeqOfNull t_msonBeforeOmit2 := { NULL,NULL,NULL }
1062 with { erroneous ([2]) "before:= omit all" };
1063 template MySeqOfNull t_msonIntValueBeforeOmit2 := { NULL,NULL,NULL }
1064 with { erroneous ([2]) "before:= omit all"; erroneous ([2]) "value:= 2011"};
1065 template MySeqOfNull t_msonFloatValueBeforeOmit2 := { NULL,NULL,NULL }
1066 with { erroneous ([2]) "before:= omit all"; erroneous ([2]) "value:= 0.1"};
1067 template MySeqOfNull t_msonBeforeOmit1 := { NULL,NULL,NULL }
1068 with { erroneous ([1]) "before:= omit all" };
1069 template MySeqOfNull t_msonIntValueBeforeOmit1 := { NULL,NULL,NULL }
1070 with { erroneous ([1]) "before:= omit all"; erroneous ([1]) "value:= 2011"};
1071 template MySeqOfNull t_msonFloatValueBeforeOmit1 := { NULL,NULL,NULL }
1072 with { erroneous ([1]) "before:= omit all"; erroneous ([1]) "value:= 0.1"};
1073 template MySeqOfNull t_msonFloatValueBeforeOmit1_2 := { NULL,NULL,NULL }
1074 with { erroneous ([1]) "before:= omit all"; erroneous ([2]) "value:= 0.1"};
1075
1076 template MySeqOfNull t_msonAfterOmit1 := { NULL,NULL,NULL }
1077 with { erroneous ([1]) "after:= omit all" };
1078 template MySeqOfNull t_msonIntValueAfterOmit1 := { NULL,NULL,NULL }
1079 with { erroneous ([1]) "after:= omit all"; erroneous ([1]) "value:= 2011"};
1080 template MySeqOfNull t_msonFloatValueAfterOmit1 := { NULL,NULL,NULL }
1081 with { erroneous ([1]) "after:= omit all"; erroneous ([1]) "value:= 0.1"};
1082 template MySeqOfNull t_msonFloatValueAfterOmit1_2 := { NULL,NULL,NULL }
1083 with { erroneous ([1]) "after:= omit all"; erroneous ([0]) "value:= 0.1"};
1084 //INTEGER
1085 template MySeqOfInt t_msoiValueDiffType(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
1086 with { erroneous ([0]) "value:= 1.414"; erroneous ([2]) "value:= true" };
1087 template MySeqOfInt t_msoiValueDiffTypeRaw(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
1088 with { erroneous ([0]) "value(raw):= '0101FF'O"; erroneous ([2]) "value:= true" };
1089 template MySeqOfInt t_msoiBeforeOmit2(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
1090 with { erroneous ([2]) "before:= omit all" };
1091 template MySeqOfInt t_msoiIntValueBeforeOmit2(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
1092 with { erroneous ([2]) "before:= omit all"; erroneous ([2]) "value:= 2011"};
1093 template MySeqOfInt t_msoiFloatValueBeforeOmit2(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
1094 with { erroneous ([2]) "before:= omit all"; erroneous ([2]) "value:= 0.1"};
1095 template MySeqOfInt t_msoiBeforeOmit1(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
1096 with { erroneous ([1]) "before:= omit all" };
1097 template MySeqOfInt t_msoiIntValueBeforeOmit1(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
1098 with { erroneous ([1]) "before:= omit all"; erroneous ([1]) "value:= 2011"};
1099 template MySeqOfInt t_msoiFloatValueBeforeOmit1(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
1100 with { erroneous ([1]) "before:= omit all"; erroneous ([1]) "value:= 0.1"};
1101 template MySeqOfInt t_msoiFloatValueBeforeOmit1_2(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
1102 with { erroneous ([1]) "before:= omit all"; erroneous ([2]) "value:= 0.1"};
1103
1104 template MySeqOfInt t_msoiAfterOmit1(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
1105 with { erroneous ([1]) "after:= omit all" };
1106 template MySeqOfInt t_msoiIntValueAfterOmit1(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
1107 with { erroneous ([1]) "after:= omit all"; erroneous ([1]) "value:= 2011"};
1108 template MySeqOfInt t_msoiFloatValueAfterOmit1(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
1109 with { erroneous ([1]) "after:= omit all"; erroneous ([1]) "value:= 0.1"};
1110 template MySeqOfInt t_msoiFloatValueAfterOmit1_2(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
1111 with { erroneous ([1]) "after:= omit all"; erroneous ([0]) "value:= 0.1"};
1112 //MyEnum
1113 template MySeqOfMyEnum t_msoeValueDiffType(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
1114 with { erroneous ([0]) "value:= 1.414"; erroneous ([2]) "value:= true" };
1115 template MySeqOfMyEnum t_msoeValueDiffTypeRaw(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
1116 with { erroneous ([0]) "value(raw):= '0101FF'O"; erroneous ([2]) "value:= true" };
1117 template MySeqOfMyEnum t_msoeBeforeOmit2(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
1118 with { erroneous ([2]) "before:= omit all" };
1119 template MySeqOfMyEnum t_msoeIntValueBeforeOmit2(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
1120 with { erroneous ([2]) "before:= omit all"; erroneous ([2]) "value:= 2011"};
1121 template MySeqOfMyEnum t_msoeFloatValueBeforeOmit2(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
1122 with { erroneous ([2]) "before:= omit all"; erroneous ([2]) "value:= 0.1"};
1123 template MySeqOfMyEnum t_msoeBeforeOmit1(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
1124 with { erroneous ([1]) "before:= omit all" };
1125 template MySeqOfMyEnum t_msoeIntValueBeforeOmit1(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
1126 with { erroneous ([1]) "before:= omit all"; erroneous ([1]) "value:= 2011"};
1127 template MySeqOfMyEnum t_msoeFloatValueBeforeOmit1(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
1128 with { erroneous ([1]) "before:= omit all"; erroneous ([1]) "value:= 0.1"};
1129 template MySeqOfMyEnum t_msoeFloatValueBeforeOmit1_2(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
1130 with { erroneous ([1]) "before:= omit all"; erroneous ([2]) "value:= 0.1"};
1131
1132 template MySeqOfMyEnum t_msoeAfterOmit1(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
1133 with { erroneous ([1]) "after:= omit all" };
1134 template MySeqOfMyEnum t_msoeIntValueAfterOmit1(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
1135 with { erroneous ([1]) "after:= omit all"; erroneous ([1]) "value:= 2011"};
1136 template MySeqOfMyEnum t_msoeFloatValueAfterOmit1(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
1137 with { erroneous ([1]) "after:= omit all"; erroneous ([1]) "value:= 0.1"};
1138 template MySeqOfMyEnum t_msoeFloatValueAfterOmit1_2(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
1139 with { erroneous ([1]) "after:= omit all"; erroneous ([0]) "value:= 0.1"};
1140 //Real (float):
1141 template MySeqOfReal t_msorValueDiffType(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
1142 with { erroneous ([0]) "value:= 1.414"; erroneous ([2]) "value:= true" };
1143 template MySeqOfReal t_msorValueDiffTypeRaw(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
1144 with { erroneous ([0]) "value(raw):= '0101FF'O"; erroneous ([2]) "value:= true" };
1145 template MySeqOfReal t_msorBeforeOmit2(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
1146 with { erroneous ([2]) "before:= omit all" };
1147 template MySeqOfReal t_msorIntValueBeforeOmit2(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
1148 with { erroneous ([2]) "before:= omit all"; erroneous ([2]) "value:= 2011"};
1149 template MySeqOfReal t_msorFloatValueBeforeOmit2(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
1150 with { erroneous ([2]) "before:= omit all"; erroneous ([2]) "value:= 0.1"};
1151 template MySeqOfReal t_msorBeforeOmit1(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
1152 with { erroneous ([1]) "before:= omit all" };
1153 template MySeqOfReal t_msorIntValueBeforeOmit1(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
1154 with { erroneous ([1]) "before:= omit all"; erroneous ([1]) "value:= 2011"};
1155 template MySeqOfReal t_msorFloatValueBeforeOmit1(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
1156 with { erroneous ([1]) "before:= omit all"; erroneous ([1]) "value:= 0.1"};
1157 template MySeqOfReal t_msorFloatValueBeforeOmit1_2(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
1158 with { erroneous ([1]) "before:= omit all"; erroneous ([2]) "value:= 0.1"};
1159
1160 template MySeqOfReal t_msorAfterOmit1(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
1161 with { erroneous ([1]) "after:= omit all" };
1162 template MySeqOfReal t_msorIntValueAfterOmit1(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
1163 with { erroneous ([1]) "after:= omit all"; erroneous ([1]) "value:= 2011"};
1164 template MySeqOfReal t_msorFloatValueAfterOmit1(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
1165 with { erroneous ([1]) "after:= omit all"; erroneous ([1]) "value:= 0.1"};
1166 template MySeqOfReal t_msorFloatValueAfterOmit1_2(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
1167 with { erroneous ([1]) "after:= omit all"; erroneous ([0]) "value:= 0.1"};
1168 //more complex:
1169 template MySeqOfSeqSeqIntSeqInt2SeqReal2 t_msossisi2sr2_omitj(template MySeqSeqIntSeqInt2SeqReal2 p_s1,template MySeqSeqIntSeqInt2SeqReal2 p_s2) :={ p_s1, p_s2}
1170 with { erroneous([0].jkl.jk.j) "value:=omit" }
1171
1172 template MySeqOfSeqSeqIntSeqInt2SeqReal2 t_msossisi2sr2_beforeomitj(template MySeqSeqIntSeqInt2SeqReal2 p_s1,template MySeqSeqIntSeqInt2SeqReal2 p_s2) :={ p_s1, p_s2}
1173 with { erroneous([0].jkl.jk.j) "before:=omit all" erroneous([1].jkl.jk.i) "after:=omit all"}
1174
1175 template MySeqOfSeqSeqIntSeqInt2SeqReal2 t_msossisi2sr2_beforeafteromit(
1176 template MySeqSeqIntSeqInt2SeqReal2 p_s1,template MySeqSeqIntSeqInt2SeqReal2 p_s2) :={ p_s1, p_s2}
1177 with { erroneous([0].jkl.jk.j) "before:=omit all" erroneous([1].jkl.jk.i) "after:=omit all"}
1178
1179 template MySeqOfSeqSeqIntSeqInt2SeqReal2 t_msossisi2sr2_arglist_omit(
1180 template MySeqSeqIntSeqInt2SeqReal2 p_s1,template MySeqSeqIntSeqInt2SeqReal2 p_s2) :={ p_s1, p_s2}
1181 with { erroneous([0].jkl.i, [0].jkl.jk.j, [0].xy.x) "value:=omit" erroneous([1].jkl.jk.i, [1].xy.x) "after:=omit all"}
1182
1183 template MySeqOfSeqSeqIntSeqInt2SeqReal2 t_msossisi2sr2_arglist_afteromit(
1184 template MySeqSeqIntSeqInt2SeqReal2 p_s1,template MySeqSeqIntSeqInt2SeqReal2 p_s2) :={ p_s1, p_s2}
1185 with { erroneous([0].jkl.jk.i, [0].xy.x) "after:=omit all" erroneous([1].jkl.jk.i, [1].xy.x) "after:=omit all"}
1186
1187 template MySeqOfSeqSeqIntSeqInt2SeqReal2 t_msossisi2sr2_arglist_beforeomit(
1188 template MySeqSeqIntSeqInt2SeqReal2 p_s1,template MySeqSeqIntSeqInt2SeqReal2 p_s2) :={ p_s1, p_s2}
1189 with { erroneous([0].jkl.jk.j, [0].xy.y) "before:=omit all" erroneous([1].jkl.jk.i, [1].xy.x) "after:=omit all"}
1190 //============ Testcases====================
1191 //Testcase of same type
1192 testcase tc_MySeqOfBoolValueSameType1() runs on MyComp {
1193 f_compareAndVerdict(
1194 encode_mySeqOfBool(valueof(t_msobValueSameType(false, false,false))),
1195 encode_mySeqOfBool(valueof(t_msob(true, false, true))));
1196 //encoded value: '30090101FF 010100 0101FF'O : T:30 (SEQ), L:09,
1197 //0101FF: T:01 (BOOLEAN), L:01 V:FF (TRUE)
1198 //010100: T:01 (BOOLEAN), L:01, V:00 (FALSE)
1199 //0101FF: T:01 (BOOLEAN), L:01 V:FF (TRUE)
1200 }
1201
1202 testcase tc_MySeqOfBoolValueSameType2() runs on MyComp {
1203 f_compareAndVerdict(
1204 encode_mySeqOfBool(valueof(t_msobValueSameType(true, true,true))),
1205 encode_mySeqOfBool(valueof(t_msob(true, true, true))));
1206 }
1207
1208 testcase tc_MySeqOfBoolValueDiffType() runs on MyComp {
1209 var MySeqOfMyUnionBT vl_expected :={ {r:=1.414}, {b:=true}, {i:=2011}};
1210 f_compareAndVerdict(
1211 encode_mySeqOfBool(valueof(t_msobValueDiffType(true, true,true))),
1212 encode_mySeqOfMyUnionBT( vl_expected ));
1213 //'3012090903313431342E452D330101FF020207DB'O : T:30 (SEQ), L:12 (18dec) V: '090903313431342E452D330101FF020207DB'O
1214 //'090903313431342E452D33'O T:09 (REAL) L:09 V:03313431342E452D33 ... (1.414)
1215 //0101FF (true)
1216 //020207DB'O (2011)
1217 }
1218
1219 testcase tc_MySeqOfBoolValueRaw() runs on MyComp {
1220 var MySeqOfMyUnionBT vl_expected :={ {i:=10}, {b:=true}, {i:=2011}};
1221 f_compareAndVerdict(
1222 encode_mySeqOfBool(valueof(t_msobValueDiffTypeRaw(true, true,true))),
1223 encode_mySeqOfMyUnionBT( vl_expected ));
1224 //02010A i=10
1225 }
1226
1227 testcase tc_MySeqOfBoolValueOmit() runs on MyComp {
1228 var MySeqOfMyUnionBT vl_expected :={ {b:=true} };
1229 f_compareAndVerdict(
1230 encode_mySeqOfBool(valueof(t_msobValueOmit(false, false,true))),
1231 encode_mySeqOfMyUnionBT( vl_expected ));
1232 }
1233
1234 testcase tc_MySeqOfBoolAfterOmit() runs on MyComp {
1235 var MySeqOfMyUnionBT vl_expected :={ {b:=false} };
1236 f_compareAndVerdict(
1237 encode_mySeqOfBool(valueof(t_msobAfterOmit(false, true,true))),
1238 encode_mySeqOfMyUnionBT( vl_expected ));
1239 }
1240
1241 testcase tc_MySeqOfBoolValueAfterOmit() runs on MyComp {
1242 var MySeqOfMyUnionBT vl_expected :={ {b:=true} };
1243 f_compareAndVerdict(
1244 encode_mySeqOfBool(valueof(t_msobValueAfterOmit(false, false,false))),
1245 encode_mySeqOfMyUnionBT( vl_expected ));
1246 }
1247
1248 testcase tc_MySeqOfBoolBeforeOmit2() runs on MyComp {
1249 var MySeqOfMyUnionBT vl_expected :={ {b:=true} };
1250 f_compareAndVerdict(
1251 encode_mySeqOfBool(valueof(t_msobBeforeOmit2(false, false,true))),
1252 encode_mySeqOfMyUnionBT( vl_expected ));
1253 }
1254
1255 testcase tc_MySeqOfBoolValueBeforeOmit2() runs on MyComp {
1256 var MySeqOfMyUnionBT vl_expected :={ {b:=true} };
1257 f_compareAndVerdict(
1258 encode_mySeqOfBool(valueof(t_msobValueBeforeOmit2(false, false,false))),
1259 encode_mySeqOfMyUnionBT( vl_expected ));
1260 }
1261
1262 testcase tc_MySeqOfBoolBeforeOmit1() runs on MyComp {
1263 var MySeqOfMyUnionBT vl_expected :={ {b:=false},{b:=true} };
1264 f_compareAndVerdict(
1265 encode_mySeqOfBool(valueof(t_msobBeforeOmit1(true, false,true))),
1266 encode_mySeqOfMyUnionBT( vl_expected ));
1267 }
1268
1269 testcase tc_MySeqOfBoolValueBeforeOmit1() runs on MyComp {
1270 var MySeqOfMyUnionBT vl_expected :={ {b:=true},{b:=false} };
1271 f_compareAndVerdict(
1272 encode_mySeqOfBool(valueof(t_msobValueBeforeOmit1(false, false,false))),
1273 encode_mySeqOfMyUnionBT( vl_expected ));
1274 }
1275 //NULL
1276 testcase tc_MySeqOfNullValueDiffType() runs on MyComp {
1277 var MySeqOfMyUnionBT vl_expected :={ {r:=1.414}, {n:=NULL}, {i:=2011}};
1278 f_compareAndVerdict(
1279 encode_mySeqOfNull(valueof(t_msonValueDiffType)),
1280 encode_mySeqOfMyUnionBT( vl_expected ));
1281 }
1282 testcase tc_MySeqOfNullValueDiffTypeRaw() runs on MyComp {
1283 var MySeqOfMyUnionBT vl_expected :={ {i:=10}, {n:=NULL}, {i:=2011}};
1284 f_compareAndVerdict(
1285 encode_mySeqOfNull(valueof(t_msonValueDiffTypeRaw)),
1286 encode_mySeqOfMyUnionBT( vl_expected ));
1287 }
1288 testcase tc_MySeqOfNullBeforeOmit2() runs on MyComp {
1289 var MySeqOfMyUnionBT vl_expected :={ {n:=NULL}};
1290 f_compareAndVerdict(
1291 encode_mySeqOfNull(valueof(t_msonBeforeOmit2)),
1292 encode_mySeqOfMyUnionBT( vl_expected ));
1293 }
1294 testcase tc_MySeqOfNullIntValueBeforeOmit2() runs on MyComp {
1295 var MySeqOfMyUnionBT vl_expected :={ {i:=2011}};
1296 f_compareAndVerdict(
1297 encode_mySeqOfNull(valueof(t_msonIntValueBeforeOmit2)),
1298 encode_mySeqOfMyUnionBT( vl_expected ));
1299 }
1300 testcase tc_MySeqOfNullFloatValueBeforeOmit2() runs on MyComp {
1301 var MySeqOfMyUnionBT vl_expected :={ {r:=0.1}};
1302 f_compareAndVerdict(
1303 encode_mySeqOfNull(valueof(t_msonFloatValueBeforeOmit2)),
1304 encode_mySeqOfMyUnionBT( vl_expected ));
1305 }
1306 testcase tc_MySeqOfNullBeforeOmit1() runs on MyComp {
1307 var MySeqOfMyUnionBT vl_expected :={ {n:=NULL},{n:=NULL} };
1308 f_compareAndVerdict(
1309 encode_mySeqOfNull(valueof(t_msonBeforeOmit1)),
1310 encode_mySeqOfMyUnionBT( vl_expected ));
1311 }
1312 testcase tc_MySeqOfNullIntValueBeforeOmit1() runs on MyComp {
1313 var MySeqOfMyUnionBT vl_expected :={ {i:=2011}, {n:=NULL}};
1314 f_compareAndVerdict(
1315 encode_mySeqOfNull(valueof(t_msonIntValueBeforeOmit1)),
1316 encode_mySeqOfMyUnionBT( vl_expected ));
1317 }
1318 testcase tc_MySeqOfNullFloatValueBeforeOmit1() runs on MyComp {
1319 var MySeqOfMyUnionBT vl_expected :={ {r:=0.1},{n:=NULL}};
1320 f_compareAndVerdict(
1321 encode_mySeqOfNull(valueof(t_msonFloatValueBeforeOmit1)),
1322 encode_mySeqOfMyUnionBT( vl_expected ));
1323 }
1324 testcase tc_MySeqOfNullFloatValueBeforeOmit1_2() runs on MyComp {
1325 var MySeqOfMyUnionBT vl_expected :={ {n:=NULL},{r:=0.1}};
1326 f_compareAndVerdict(
1327 encode_mySeqOfNull(valueof(t_msonFloatValueBeforeOmit1_2)),
1328 encode_mySeqOfMyUnionBT( vl_expected ));
1329 }
1330
1331 testcase tc_MySeqOfNullAfterOmit1() runs on MyComp {
1332 var MySeqOfMyUnionBT vl_expected :={ {n:=NULL}, {n:=NULL} };
1333 f_compareAndVerdict(
1334 encode_mySeqOfNull(valueof(t_msonAfterOmit1)),
1335 encode_mySeqOfMyUnionBT( vl_expected ));
1336 }
1337 testcase tc_MySeqOfNullIntValueAfterOmit1() runs on MyComp {
1338 var MySeqOfMyUnionBT vl_expected :={ {n:=NULL},{i:=2011}};
1339 f_compareAndVerdict(
1340 encode_mySeqOfNull(valueof(t_msonIntValueAfterOmit1)),
1341 encode_mySeqOfMyUnionBT( vl_expected ));
1342 }
1343 testcase tc_MySeqOfNullFloatValueAfterOmit1() runs on MyComp {
1344 var MySeqOfMyUnionBT vl_expected :={ {n:=NULL},{r:=0.1}};
1345 f_compareAndVerdict(
1346 encode_mySeqOfNull(valueof(t_msonFloatValueAfterOmit1)),
1347 encode_mySeqOfMyUnionBT( vl_expected ));
1348 }
1349 testcase tc_MySeqOfNullFloatValueAfterOmit1_2() runs on MyComp {
1350 var MySeqOfMyUnionBT vl_expected :={ {r:=0.1},{n:=NULL}};
1351 f_compareAndVerdict(
1352 encode_mySeqOfNull(valueof(t_msonFloatValueAfterOmit1)),
1353 encode_mySeqOfMyUnionBT( vl_expected ));
1354 }
1355 //INTEGER
1356 testcase tc_MySeqOfIntValueDiffType() runs on MyComp {
1357 var MySeqOfMyUnionBT vl_expected :={ {r:=1.414}, {i:=2}, {b:=true}};
1358 f_compareAndVerdict(
1359 encode_mySeqOfInt(valueof(t_msoiValueDiffType(1,2,3))),
1360 encode_mySeqOfMyUnionBT( vl_expected ));
1361 }
1362 testcase tc_MySeqOfIntValueDiffTypeRaw() runs on MyComp {
1363 var MySeqOfMyUnionBT vl_expected :={ {b:=true}, {i:=2}, {b:=true}};
1364 f_compareAndVerdict(
1365 encode_mySeqOfInt(valueof(t_msoiValueDiffTypeRaw(1,2,3))),
1366 encode_mySeqOfMyUnionBT( vl_expected ));
1367 }
1368 testcase tc_MySeqOfIntBeforeOmit2() runs on MyComp {
1369 var MySeqOfMyUnionBT vl_expected :={ {i:=3} };
1370 f_compareAndVerdict(
1371 encode_mySeqOfInt(valueof(t_msoiBeforeOmit2(1,2,3))),
1372 encode_mySeqOfMyUnionBT( vl_expected ));
1373 }
1374 testcase tc_MySeqOfIntIntValueBeforeOmit2() runs on MyComp {
1375 var MySeqOfMyUnionBT vl_expected :={ {i:=2011}};
1376 f_compareAndVerdict(
1377 encode_mySeqOfInt(valueof(t_msoiIntValueBeforeOmit2(1,2,3))),
1378 encode_mySeqOfMyUnionBT( vl_expected ));
1379 }
1380 testcase tc_MySeqOfIntFloatValueBeforeOmit2() runs on MyComp {
1381 var MySeqOfMyUnionBT vl_expected :={ {r:=0.1}};
1382 f_compareAndVerdict(
1383 encode_mySeqOfInt(valueof(t_msoiFloatValueBeforeOmit2(1,2,3))),
1384 encode_mySeqOfMyUnionBT( vl_expected ));
1385 }
1386 testcase tc_MySeqOfIntBeforeOmit1() runs on MyComp {
1387 var MySeqOfMyUnionBT vl_expected :={ {i:=2},{i:=3} };
1388 f_compareAndVerdict(
1389 encode_mySeqOfInt(valueof(t_msoiBeforeOmit1(1,2,3))),
1390 encode_mySeqOfMyUnionBT( vl_expected ));
1391 }
1392 testcase tc_MySeqOfIntIntValueBeforeOmit1() runs on MyComp {
1393 var MySeqOfMyUnionBT vl_expected :={ {i:=2011}, {i:=3}};
1394 f_compareAndVerdict(
1395 encode_mySeqOfInt(valueof(t_msoiIntValueBeforeOmit1(1,2,3))),
1396 encode_mySeqOfMyUnionBT( vl_expected ));
1397 }
1398 testcase tc_MySeqOfIntFloatValueBeforeOmit1() runs on MyComp {
1399 var MySeqOfMyUnionBT vl_expected :={ {r:=0.1},{i:=3}};
1400 f_compareAndVerdict(
1401 encode_mySeqOfInt(valueof(t_msoiFloatValueBeforeOmit1(1,2,3))),
1402 encode_mySeqOfMyUnionBT( vl_expected ));
1403 }
1404 testcase tc_MySeqOfIntFloatValueBeforeOmit1_2() runs on MyComp {
1405 var MySeqOfMyUnionBT vl_expected :={ {i:=2},{r:=0.1}};
1406 f_compareAndVerdict(
1407 encode_mySeqOfInt(valueof(t_msoiFloatValueBeforeOmit1_2(1,2,3))),
1408 encode_mySeqOfMyUnionBT( vl_expected ));
1409 }
1410
1411 testcase tc_MySeqOfIntAfterOmit1() runs on MyComp {
1412 var MySeqOfMyUnionBT vl_expected :={ {i:=1}, {i:=2} } ;
1413 f_compareAndVerdict(
1414 encode_mySeqOfInt(valueof(t_msoiAfterOmit1(1,2,3))),
1415 encode_mySeqOfMyUnionBT( vl_expected ));
1416 }
1417 testcase tc_MySeqOfIntIntValueAfterOmit1() runs on MyComp {
1418 var MySeqOfMyUnionBT vl_expected :={ {i:=1},{i:=2011}};
1419 f_compareAndVerdict(
1420 encode_mySeqOfInt(valueof(t_msoiIntValueAfterOmit1(1,2,3))),
1421 encode_mySeqOfMyUnionBT( vl_expected ));
1422 }
1423 testcase tc_MySeqOfIntFloatValueAfterOmit1() runs on MyComp {
1424 var MySeqOfMyUnionBT vl_expected :={ {i:=1},{r:=0.1}};
1425 f_compareAndVerdict(
1426 encode_mySeqOfInt(valueof(t_msoiFloatValueAfterOmit1(1,2,3))),
1427 encode_mySeqOfMyUnionBT( vl_expected ));
1428 }
1429 testcase tc_MySeqOfIntFloatValueAfterOmit1_2() runs on MyComp {
1430 var MySeqOfMyUnionBT vl_expected :={ {r:=0.1},{i:=2}};
1431 f_compareAndVerdict(
1432 encode_mySeqOfInt(valueof(t_msoiFloatValueAfterOmit1_2(1,2,3))),
1433 encode_mySeqOfMyUnionBT( vl_expected ));
1434 }
1435 //MyEnum
1436 testcase tc_MySeqOfMyEnumValueDiffType() runs on MyComp {
1437 var MySeqOfMyUnionBT vl_expected :={ {r:=1.414}, {e:=second}, {b:=true}};
1438 f_compareAndVerdict(
1439 encode_mySeqOfMyEnum(valueof(t_msoeValueDiffType(first, second, third))),
1440 encode_mySeqOfMyUnionBT( vl_expected ));
1441 }
1442 testcase tc_MySeqOfMyEnumValueDiffTypeRaw() runs on MyComp {
1443 var MySeqOfMyUnionBT vl_expected :={ {b:=true}, {e:=second}, {b:=true}};
1444 f_compareAndVerdict(
1445 encode_mySeqOfMyEnum(valueof(t_msoeValueDiffTypeRaw(first, second, third))),
1446 encode_mySeqOfMyUnionBT( vl_expected ));
1447 }
1448 testcase tc_MySeqOfMyEnumBeforeOmit2() runs on MyComp {
1449 var MySeqOfMyUnionBT vl_expected :={ {e:=third} };
1450 f_compareAndVerdict(
1451 encode_mySeqOfMyEnum(valueof(t_msoeBeforeOmit2(first, second, third))),
1452 encode_mySeqOfMyUnionBT( vl_expected ));
1453 }
1454 testcase tc_MySeqOfMyEnumIntValueBeforeOmit2() runs on MyComp {
1455 var MySeqOfMyUnionBT vl_expected :={ {i:=2011}};
1456 f_compareAndVerdict(
1457 encode_mySeqOfMyEnum(valueof(t_msoeIntValueBeforeOmit2(first, second, third))),
1458 encode_mySeqOfMyUnionBT( vl_expected ));
1459 }
1460 testcase tc_MySeqOfMyEnumFloatValueBeforeOmit2() runs on MyComp {
1461 var MySeqOfMyUnionBT vl_expected :={ {r:=0.1}};
1462 f_compareAndVerdict(
1463 encode_mySeqOfMyEnum(valueof(t_msoeFloatValueBeforeOmit2(first, second, third))),
1464 encode_mySeqOfMyUnionBT( vl_expected ));
1465 }
1466 testcase tc_MySeqOfMyEnumBeforeOmit1() runs on MyComp {
1467 var MySeqOfMyUnionBT vl_expected :={ {e:=second},{e:=third} };
1468 f_compareAndVerdict(
1469 encode_mySeqOfMyEnum(valueof(t_msoeBeforeOmit1(first, second, third))),
1470 encode_mySeqOfMyUnionBT( vl_expected ));
1471 }
1472 testcase tc_MySeqOfMyEnumIntValueBeforeOmit1() runs on MyComp {
1473 var MySeqOfMyUnionBT vl_expected :={ {i:=2011}, {e:=third}};
1474 f_compareAndVerdict(
1475 encode_mySeqOfMyEnum(valueof(t_msoeIntValueBeforeOmit1(first, second, third))),
1476 encode_mySeqOfMyUnionBT( vl_expected ));
1477 }
1478 testcase tc_MySeqOfMyEnumFloatValueBeforeOmit1() runs on MyComp {
1479 var MySeqOfMyUnionBT vl_expected :={ {r:=0.1},{e:=third}};
1480 f_compareAndVerdict(
1481 encode_mySeqOfMyEnum(valueof(t_msoeFloatValueBeforeOmit1(first, second, third))),
1482 encode_mySeqOfMyUnionBT( vl_expected ));
1483 }
1484 testcase tc_MySeqOfMyEnumFloatValueBeforeOmit1_2() runs on MyComp {
1485 var MySeqOfMyUnionBT vl_expected :={ {e:=second},{r:=0.1}};
1486 f_compareAndVerdict(
1487 encode_mySeqOfMyEnum(valueof(t_msoeFloatValueBeforeOmit1_2(first, second, third))),
1488 encode_mySeqOfMyUnionBT( vl_expected ));
1489 }
1490
1491 testcase tc_MySeqOfMyEnumAfterOmit1() runs on MyComp {
1492 var MySeqOfMyUnionBT vl_expected :={ {e:=first}, {e:=second} } ;
1493 f_compareAndVerdict(
1494 encode_mySeqOfMyEnum(valueof(t_msoeAfterOmit1(first, second, third))),
1495 encode_mySeqOfMyUnionBT( vl_expected ));
1496 }
1497 testcase tc_MySeqOfMyEnumIntValueAfterOmit1() runs on MyComp {
1498 var MySeqOfMyUnionBT vl_expected :={ {e:=first},{i:=2011}};
1499 f_compareAndVerdict(
1500 encode_mySeqOfMyEnum(valueof(t_msoeIntValueAfterOmit1(first, second, third))),
1501 encode_mySeqOfMyUnionBT( vl_expected ));
1502 }
1503 testcase tc_MySeqOfMyEnumFloatValueAfterOmit1() runs on MyComp {
1504 var MySeqOfMyUnionBT vl_expected :={ {e:=first},{r:=0.1}};
1505 f_compareAndVerdict(
1506 encode_mySeqOfMyEnum(valueof(t_msoeFloatValueAfterOmit1(first, second, third))),
1507 encode_mySeqOfMyUnionBT( vl_expected ));
1508 }
1509 testcase tc_MySeqOfMyEnumFloatValueAfterOmit1_2() runs on MyComp {
1510 var MySeqOfMyUnionBT vl_expected :={ {r:=0.1},{e:=second}};
1511 f_compareAndVerdict(
1512 encode_mySeqOfMyEnum(valueof(t_msoeFloatValueAfterOmit1_2(first, second, third))),
1513 encode_mySeqOfMyUnionBT( vl_expected ));
1514 }
1515
1516 //Real (Float)
1517 testcase tc_MySeqOfRealValueDiffType() runs on MyComp {
1518 var MySeqOfMyUnionBT vl_expected :={ {r:=1.414}, {r:=2.0}, {b:=true}};
1519 f_compareAndVerdict(
1520 encode_mySeqOfReal(valueof(t_msorValueDiffType(1.0, 2.0, 3.0))),
1521 encode_mySeqOfMyUnionBT( vl_expected ));
1522 }
1523 testcase tc_MySeqOfRealValueDiffTypeRaw() runs on MyComp {
1524 var MySeqOfMyUnionBT vl_expected :={ {b:=true}, {r:=2.0}, {b:=true}};
1525 f_compareAndVerdict(
1526 encode_mySeqOfReal(valueof(t_msorValueDiffTypeRaw(1.0, 2.0, 3.0))),
1527 encode_mySeqOfMyUnionBT( vl_expected ));
1528 }
1529 testcase tc_MySeqOfRealBeforeOmit2() runs on MyComp {
1530 var MySeqOfMyUnionBT vl_expected :={ {r:=3.0} };
1531 f_compareAndVerdict(
1532 encode_mySeqOfReal(valueof(t_msorBeforeOmit2(1.0, 2.0, 3.0))),
1533 encode_mySeqOfMyUnionBT( vl_expected ));
1534 }
1535 testcase tc_MySeqOfRealIntValueBeforeOmit2() runs on MyComp {
1536 var MySeqOfMyUnionBT vl_expected :={ {i:=2011}};
1537 f_compareAndVerdict(
1538 encode_mySeqOfReal(valueof(t_msorIntValueBeforeOmit2(1.0, 2.0, 3.0))),
1539 encode_mySeqOfMyUnionBT( vl_expected ));
1540 }
1541 testcase tc_MySeqOfRealFloatValueBeforeOmit2() runs on MyComp {
1542 var MySeqOfMyUnionBT vl_expected :={ {r:=0.1}};
1543 f_compareAndVerdict(
1544 encode_mySeqOfReal(valueof(t_msorFloatValueBeforeOmit2(1.0, 2.0, 3.0))),
1545 encode_mySeqOfMyUnionBT( vl_expected ));
1546 }
1547 testcase tc_MySeqOfRealBeforeOmit1() runs on MyComp {
1548 var MySeqOfMyUnionBT vl_expected :={ {r:=2.0},{r:=3.0} };
1549 f_compareAndVerdict(
1550 encode_mySeqOfReal(valueof(t_msorBeforeOmit1(1.0, 2.0, 3.0))),
1551 encode_mySeqOfMyUnionBT( vl_expected ));
1552 }
1553 testcase tc_MySeqOfRealIntValueBeforeOmit1() runs on MyComp {
1554 var MySeqOfMyUnionBT vl_expected :={ {i:=2011}, {r:=3.0}};
1555 f_compareAndVerdict(
1556 encode_mySeqOfReal(valueof(t_msorIntValueBeforeOmit1(1.0, 2.0, 3.0))),
1557 encode_mySeqOfMyUnionBT( vl_expected ));
1558 }
1559 testcase tc_MySeqOfRealFloatValueBeforeOmit1() runs on MyComp {
1560 var MySeqOfMyUnionBT vl_expected :={ {r:=0.1},{r:=3.0}};
1561 f_compareAndVerdict(
1562 encode_mySeqOfReal(valueof(t_msorFloatValueBeforeOmit1(1.0, 2.0, 3.0))),
1563 encode_mySeqOfMyUnionBT( vl_expected ));
1564 }
1565 testcase tc_MySeqOfRealFloatValueBeforeOmit1_2() runs on MyComp {
1566 var MySeqOfMyUnionBT vl_expected :={ {r:=2.0},{r:=0.1}};
1567 f_compareAndVerdict(
1568 encode_mySeqOfReal(valueof(t_msorFloatValueBeforeOmit1_2(1.0, 2.0, 3.0))),
1569 encode_mySeqOfMyUnionBT( vl_expected ));
1570 }
1571
1572 testcase tc_MySeqOfRealAfterOmit1() runs on MyComp {
1573 var MySeqOfMyUnionBT vl_expected :={ {r:=1.0}, {r:=2.0} } ;
1574 f_compareAndVerdict(
1575 encode_mySeqOfReal(valueof(t_msorAfterOmit1(1.0, 2.0, 3.0))),
1576 encode_mySeqOfMyUnionBT( vl_expected ));
1577 }
1578 testcase tc_MySeqOfRealIntValueAfterOmit1() runs on MyComp {
1579 var MySeqOfMyUnionBT vl_expected :={ {r:=1.0},{i:=2011}};
1580 f_compareAndVerdict(
1581 encode_mySeqOfReal(valueof(t_msorIntValueAfterOmit1(1.0, 2.0, 3.0))),
1582 encode_mySeqOfMyUnionBT( vl_expected ));
1583 }
1584 testcase tc_MySeqOfRealFloatValueAfterOmit1() runs on MyComp {
1585 var MySeqOfMyUnionBT vl_expected :={ {r:=1.0},{r:=0.1}};
1586 f_compareAndVerdict(
1587 encode_mySeqOfReal(valueof(t_msorFloatValueAfterOmit1(1.0, 2.0, 3.0))),
1588 encode_mySeqOfMyUnionBT( vl_expected ));
1589 }
1590 testcase tc_MySeqOfRealFloatValueAfterOmit1_2() runs on MyComp {
1591 var MySeqOfMyUnionBT vl_expected :={ {r:=0.1},{r:=2.0}};
1592 f_compareAndVerdict(
1593 encode_mySeqOfReal(valueof(t_msorFloatValueAfterOmit1_2(1.0, 2.0, 3.0))),
1594 encode_mySeqOfMyUnionBT( vl_expected ));
1595 }
1596 //BIT STRING
1597 //OCTET STRING
1598
1599 //More complex:
1600
1601 testcase tc_MySeqOf_SeqSeqIntSeqInt2SeqReal2_omitj() runs on MyComp {
1602 var MySeqSeqIntSeqInt2SeqReal2 vl_s1:={ {1,{2,3}}, {3.0,4.0} }, vl_s2:= {{5,{6,7}}, {7.0, 8.0}};
1603 var MySeq_SeqSeqIntSeqInt2optoptSeqReal2_SeqSeqIntSeqInt2optoptSeqReal2 vl_expected := { { omit,{1,{2, omit}}, {3.0,4.0} }, { omit,{5,{6,7}}, {7.0, 8.0}} }
1604 f_compareAndVerdict(
1605 encode_mySeqOfSeqSeqIntSeqInt2SeqReal2(valueof(t_msossisi2sr2_omitj(vl_s1, vl_s2))),
1606 encode_mySeq_SeqSeqIntSeqInt2optoptSeqReal2_SeqSeqIntSeqInt2optoptSeqReal2(vl_expected));
1607
1608 }
1609
1610 testcase tc_MySeqOf_SeqSeqIntSeqInt2SeqReal2_beforeafteromit() runs on MyComp {
1611 var MySeqSeqIntSeqInt2SeqReal2 vl_s1:={ {1,{2,3}}, {3.0,4.0} }, vl_s2:= {{5,{6,7}}, {7.0, 8.0}};
1612 var MySeq_SeqSeqIntSeqInt2optoptSeqReal2_SeqSeqIntSeqInt2optoptSeqReal2 vl_expected := { { omit,{1,{3,omit}}, {3.0,4.0} }, { omit,{5,{6,omit}}, {7.0, 8.0}} }
1613 f_compareAndVerdict(
1614 encode_mySeqOfSeqSeqIntSeqInt2SeqReal2(valueof(t_msossisi2sr2_beforeafteromit(vl_s1, vl_s2))),
1615 encode_mySeq_SeqSeqIntSeqInt2optoptSeqReal2_SeqSeqIntSeqInt2optoptSeqReal2(vl_expected));
1616
1617 }
1618
1619 testcase tc_MySeqOf_SeqSeqIntSeqInt2SeqReal2_arglist_omit() runs on MyComp {
1620 var MySeqSeqIntSeqInt2SeqReal2 vl_s1:={ {1,{2,3}}, {3.0,4.0} }, vl_s2:= {{5,{6,7}}, {7.0, 8.0}};
1621 var MySeq_SeqSeqIntSeqInt2optoptSeqReal2_SeqSeqIntSeqInt2optoptSeqReal2 vl_expected := { { omit,{omit,{2,omit}}, {4.0,omit} }, { omit,{5,{6,omit}}, {7.0,omit}} }
1622 f_compareAndVerdict(
1623 encode_mySeqOfSeqSeqIntSeqInt2SeqReal2(valueof(t_msossisi2sr2_arglist_omit(vl_s1, vl_s2))),
1624 encode_mySeq_SeqSeqIntSeqInt2optoptSeqReal2_SeqSeqIntSeqInt2optoptSeqReal2(vl_expected));
1625 //encoded value: '30393019300530030201023010090603332E452B30090603342E452B30301C300802010530030201063010090603372E452B30090603382E452B30'O
1626 // T:30 (SEQ (of)) L:39 (57dec) V: '3019300530030201023010090603332E452B30090603342E452B30 301C300802010530030201063010090603372E452B30090603382E452B30'O
1627 //s1:
1628 // T:30 (SEQ) L:19 (25dec) V: '300530030201023010090603332E452B30090603342E452B'O
1629 //jkl:'30053003020102'O
1630 // T:30 (SEQ L:05 V:'3003020102'O (int:2)
1631 //xy: 3010090603332E452B30090603342E452B30301C'O
1632 //T:30 (SEQ) L:10 (16dec) V:'090603332E452B30090603342E452B'O
1633 //x: '090603332E452B30'O T:09 (REAL) L:06 V:'03332E452B30'O (3.0)
1634 //y: '090603342E452B30'O T:09 (REAL) L:06 V:'03342E452B30'O (4.0)
1635 //s2:
1636 //300802010530030201063010090603372E452B30090603382E452B30'O:
1637 }
1638
1639 testcase tc_MySeqOf_SeqSeqIntSeqInt2SeqReal2_arglist_afteromit() runs on MyComp {
1640 var MySeqSeqIntSeqInt2SeqReal2 vl_s1:={ {1,{2,3}}, {3.0,4.0} }, vl_s2:= {{5,{6,7}}, {7.0, 8.0}};
1641 var MySeq_SeqSeqIntSeqInt2optoptSeqReal2_SeqSeqIntSeqInt2optoptSeqReal2 vl_expected := { { omit,{1,{2,omit}}, {3.0,omit} }, { omit,{5,{6,omit}}, {7.0,omit}} }
1642 f_compareAndVerdict(
1643 encode_mySeqOfSeqSeqIntSeqInt2SeqReal2(valueof(t_msossisi2sr2_arglist_afteromit(vl_s1, vl_s2))),
1644 encode_mySeq_SeqSeqIntSeqInt2optoptSeqReal2_SeqSeqIntSeqInt2optoptSeqReal2(vl_expected));
1645 }
1646 testcase tc_MySeqOf_SeqSeqIntSeqInt2SeqReal2_arglist_beforeomit() runs on MyComp {
1647 var MySeqSeqIntSeqInt2SeqReal2 vl_s1:={ {1,{2,3}}, {3.0,4.0} }, vl_s2:= {{5,{6,7}}, {7.0, 8.0}};
1648 var MySeq_SeqSeqIntSeqInt2optoptSeqReal2_SeqSeqIntSeqInt2optoptSeqReal2 vl_expected := { { omit,{1,{3,omit}}, {4.0,omit} }, { omit,{5,{6,omit}}, {7.0,omit}} }
1649 f_compareAndVerdict(
1650 encode_mySeqOfSeqSeqIntSeqInt2SeqReal2(valueof(t_msossisi2sr2_arglist_beforeomit(vl_s1, vl_s2))),
1651 encode_mySeq_SeqSeqIntSeqInt2optoptSeqReal2_SeqSeqIntSeqInt2optoptSeqReal2(vl_expected));
1652 }
1653 }//SequenceOf
1654
1655 group Set {
1656 template MySetInt2opt t_mseti2opt := { i:= 1, j := 2 }
1657 template MySetInt2opt t_mseti2optomit := { i:= 1, j := omit }
1658 const MySetInt2 c_mseti2 := { i:= 1, j := 2 }
1659 const MySetInt2opt c_mseti2opt := { i:= 1, j := 2 }
1660 const MySetInt2opt c_mseti2optomit := { i:= 1, j := omit }
1661
1662 template MySetEmpty t_setEmpty :={}
1663 template MySetBool t_msetb(template boolean p_b) := {b:= p_b}
1664 template MySetNull t_msetn := { n:= NULL }
1665
1666 template MySetInt t_mseti(template integer p_i) := {i:= p_i}
1667 template MySetInt t_mseti_omit(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= omit" }
1668 //template MySetInt t_mseti_before(template integer p_i) := {i:= p_i} with { erroneous (i) "before:= omit all" }
1669 //template MySetInt t_mseti_after(template integer p_i) := {i:= p_i} with { erroneous (i) "after:= omit all" }
1670 template MySetInt t_mseti_valueSameTypeE(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= integer:5" }
1671 template MySetInt t_mseti_valueSameTypeI(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= 5" } //implicit type
1672 template MySetInt t_mseti_valueDiffTypeExplicitString(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= MyCharstring:""subidubi""" }
1673 //template MySetInt t_mseti_valueDiffTypeImplicitString(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= ""subidubi""" } <=Impossible, there is no 1:1 mapping
1674
1675 //Basic ASN.1 types (eq ttcn types): boolean, integer, octetstring, bitstring, null, objid, ext. objid, enum, embedded pdv, float (real), UTFSTR, seq, seq of
1676 template MySetInt t_mseti_valueDiffTypeExplicitBoolean(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= boolean:true" }
1677 template MySetInt t_mseti_valueDiffTypeImplicitBoolean(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= true" }
1678 //integer: See t_mseti_valueSameTypeE/I
1679 //template MySetInt t_mseti_valueDiffTypeExplicitNull(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= NULL:NULL" } <<==Cannot be compiled !!!
1680 //template MySetInt t_mseti_valueDiffTypeImplicitNull(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= NULL" } <<==Cannot be compiled !!!
1681 //NegTestTestcases.ttcn:74.3-86: error: Type `NULL' and type `@NegTestTypes.MySetInt' have no common encoding
1682 template MySetInt t_mseti_valueDiffTypeExplicitOctStr(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= octetstring:'BABA'O" }
1683 template MySetInt t_mseti_valueDiffTypeImplicitOctStr(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= 'BABA'O" }
1684 template MySetInt t_mseti_valueDiffTypeExplicitEnum(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= MyEnum:second" }
1685 template MySetInt t_mseti_valueDiffTypeExplicitFloat(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= float:5.0" }
1686 template MySetInt t_mseti_valueDiffTypeImplicitFloat(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= 5.0" }
1687 template MySetInt t_mseti_valueDiffTypeExplicitBitString(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= bitstring:'01011000'B" }
1688 template MySetInt t_mseti_valueDiffTypeImplicitBitString(template integer p_i) := {i:= p_i} with { erroneous (i) "value:= '01011000'B" }
1689 template MySetInt t_mseti_valueDiffTypeRaw(template integer p_i) := {i:= p_i} with { erroneous (i) "value(raw):= 'FF'O" }
1690
1691 template MySetInt2opt t_mseti2(template integer p_i, template integer p_j) := {i:= p_i, j:=p_j}
1692 template MySetInt2 t_mseti2_omiti(template integer p_i, template integer p_j) := {i:= p_i, j:=p_j} with { erroneous (i) "value:= omit" }
1693 template MySetInt2 t_mseti2_omitj(template integer p_i, template integer p_j) := {i:= p_i, j:=p_j} with { erroneous (j) "value:= omit" }
1694 //template MySetInt2 t_mseti2_beforeomiti(template integer p_i, template integer p_j) := {i:= p_i, j:=p_j} with { erroneous (i) "before:= omit all" }
1695 template MySetInt2 t_mseti2_beforeomitj(template integer p_i, template integer p_j) := {i:= p_i, j:=p_j} with { erroneous (i) "value:= omit" }
1696 template MySetInt2 t_mseti2_afteromiti(template integer p_i, template integer p_j) := {i:= p_i, j:=p_j} with { erroneous (j) "value:= omit" }
1697 //template MySetInt2 t_mseti2_afteromitj(template integer p_i, template integer p_j) := {i:= p_i, j:=p_j} with { erroneous (j) "after:= omit all" }
1698 template MySetInt2 t_mseti2_valueSameTypeE(template integer p_i, template integer p_j) := {i:= p_i, j:=p_j} with { erroneous (j) "value:= MySetInt2.j:5" } //tagged replacement
1699 //template MySetInt2 t_mseti2_valueSameTypeI(template integer p_i, template integer p_j) := {i:= p_i, j:=p_j} with { erroneous (j) "value := 5" }
1700 template MySetInt2 t_mseti2_valueDiffTypeExplicitFloat(template integer p_i, template integer p_j) := {i:= p_i, j:=p_j} with { erroneous (j) "value:= float:5.0" }
1701 template MySetInt2 t_mseti2_valueDiffTypeImplicitFloat(template integer p_i, template integer p_j) := {i:= p_i, j:=p_j} with { erroneous (j) "value:= 5.0" }
1702 template MySetInt2 t_mseti2_valueDiffTypeExplicitString(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value:= MyCharstring:""subidubi""" }
1703 template MySetInt2 t_mseti2_valueDiffTypeExplicitBitString(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value:= bitstring:'01011000'B" }
1704 template MySetInt2 t_mseti2_valueDiffTypeImplicitBitString(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value:= '01011000'B" }
1705 //variable related values:
1706 template MySetInt2 t_mseti2_valueSeqIntV(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value := MySeqInt2:{i:=1,j:=2}" }
1707 template MySetInt2 t_mseti2_valueSeqIntOptV(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value := MySeqInt2opt:{i:=1,j:=2}" }
1708 //TODO: Not supported yet:
1709 //template MySetInt2 t_mseti2_valueSeqIntOptT(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value := valueof(MySetInt2opt:t_mseti2opt)" }
1710 template MySetInt2 t_mseti2_valueSeqIntC(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value := MySeqInt2:c_msi2" }
1711 template MySetInt2 t_mseti2_valueSeqIntOptC(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value := MySeqInt2opt:c_msi2opt" }
1712 //TODO: Not supported yet:
1713 //template MySetInt2 t_mseti2_valueSeqIntOptOmitT(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value:= valueof(t_mseti2optomit)" }
1714 template MySetInt2 t_mseti2_valueSeqInt2OptOmitC(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value:= c_msi2optomit" }
1715 template MySetInt2 t_mseti2_valueSeqInt2iiC(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (i) "value:=c_mseti2.i" }
1716 //template MySetInt2 t_mseti2_valueSeqInt2ijC(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (i) "value:=c_mseti2.j" }
1717 //template MySetInt2 t_mseti2_valueSeqInt2jiC(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value:=c_mseti2.i" }
1718 template MySetInt2 t_mseti2_valueSeqInt2jjC(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value:=c_mseti2.j" }
1719
1720 template MySetInt2 t_mseti2_valueSeqIntOptFieldC(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value:=c_msi2opt.j" } ;//2
1721 //TODO: Not supported yet:
1722 //template MySetInt2 t_mseti2_valueSeqIntOptFieldOmitT(template integer p_i, template integer p_j):={i:=p_i, j:=p_j} with { erroneous (j) "value:= integer:t_mseti2optomit.j" }
1723
1724 template MySetIntSeqInt2 t_msetisi2_trial(template integer p_i, template integer p_j, template integer p_k) := { i:=p_i, jk:={ i:= p_j,j:= p_k} } //not used yet
1725 template MySetIntSeqInt2 t_msetisi2(template integer p_i, template integer p_j, template integer p_k) := { i:= p_i, jk:= { i:=p_j, j:=p_k} };
1726 template MySetIntSeqInt2 t_msetisi2_omiti(template integer p_i, template integer p_j, template integer p_k) := { i:= p_i, jk:= { i:=p_j, j:=p_k} } with { erroneous (i) "value:= omit" };
1727 template MySetIntSeqInt2 t_msetisi2_omitjki(template integer p_i, template integer p_j, template integer p_k) := { i:= p_i, jk:= { i:=p_j, j:=p_k} } with { erroneous (jk.i) "value:= omit" };
1728 template MySetIntSeqInt2 t_msetisi2_omitjkj(template integer p_i, template integer p_j, template integer p_k) := { i:= p_i, jk:= { i:=p_j, j:=p_k} } with { erroneous (jk.j) "value:= omit" };
1729 template MySetIntSeqInt2 t_msetisi2_rawjki(template integer p_i, template integer p_j, template integer p_k) := { i:= p_i, jk:= { i:=p_j, j:=p_k} } with {
1730 erroneous (jk.i) "value(raw):= 'ABBA'O" };
1731 template MySetIntSeqInt2 t_msetisi2_rawjkj(template integer p_i, template integer p_j, template integer p_k) := { i:= p_i, jk:= { i:=p_j, j:=p_k} } with {
1732 erroneous (jk.j) "value(raw):= 'ABBA'O" };
1733 template MySetIntSeqInt2 t_msetisi2_afteribeforej(template integer p_i, template integer p_j, template integer p_k) := { i:= p_i, jk:= { i:=p_j, j:=p_k} } with {
1734 erroneous(i) "after:= 'ABBA'O";
1735 erroneous(jk.i) "before:='BABA'O"
1736 };
1737
1738 //
1739 template MySetInt3 t_mseti3(template integer p_i, template integer p_j, template integer p_k) := {i:= p_i, j:=p_j, k:=p_k}
1740
1741 template MySetInt4 t_mseti4(template integer p_i, template integer p_j, template integer p_k,template integer p_l ) := {i:= p_i, j:=p_j, k:=p_k, l:=p_l}
1742 template MySetInt4opt t_mseti4opt(template integer p_i, template integer p_j, template integer p_k,template integer p_l ) := {i:= p_i, j:=p_j, k:=p_k, l:=p_l}
1743 template MySetInt4 t_mseti4_omiti(template integer p_i, template integer p_j, template integer p_k,template integer p_l ) := {i:= p_i, j:=p_j, k:=p_k, l:=p_l} with { erroneous (i) "value:= omit" }
1744 template MySetInt4 t_mseti4_omitj(template integer p_i, template integer p_j, template integer p_k,template integer p_l ) := {i:= p_i, j:=p_j, k:=p_k, l:=p_l} with { erroneous (j) "value:= omit" }
1745 template MySetInt4 t_mseti4_omitk(template integer p_i, template integer p_j, template integer p_k,template integer p_l ) := {i:= p_i, j:=p_j, k:=p_k, l:=p_l} with { erroneous (k) "value:= omit" }
1746 template MySetInt4 t_mseti4_omitl(template integer p_i, template integer p_j, template integer p_k,template integer p_l ) := {i:= p_i, j:=p_j, k:=p_k, l:=p_l}
1747 with { erroneous (l) "value:= omit" }
1748 template MySetInt4 t_mseti4_valueiOctetStr(template integer p_i, template integer p_j, template integer p_k, template integer p_l) := {i:= p_i, j:=p_j, k:=p_k,l:=p_l}
1749 with { erroneous(i) "value:= 'FEDCBA98'O" }
1750 template MySetInt4 t_mseti4_valuejOctetStr(template integer p_i, template integer p_j, template integer p_k,template integer p_l) := {i:= p_i, j:=p_j, k:=p_k,l:=p_l}
1751 with { erroneous(j) "value:= 'FEDCBA98'O" }
1752
1753 template MySetInt4 t_mseti4_valueiRaw(template integer p_i, template integer p_j, template integer p_k,template integer p_l) := {i:= p_i, j:=p_j, k:=p_k,l:=p_l}
1754 with { erroneous(i) "value(raw):= '0202ABBA'O" }
1755
1756 template MySetInt4 t_mseti4_valuejRaw(template integer p_i, template integer p_j, template integer p_k,template integer p_l) := {i:= p_i, j:=p_j, k:=p_k,l:=p_l}
1757 with { erroneous(j) "value(raw):= '0202ABBA'O" }
1758
1759 template MySetInt4 t_mseti4_valuekRaw(template integer p_i, template integer p_j, template integer p_k,template integer p_l) := {i:= p_i, j:=p_j, k:=p_k,l:=p_l}
1760 with { erroneous(k) "value(raw):= '0202ABBA'O" }
1761
1762 template MySetInt4 t_mseti4_valuelRaw(template integer p_i, template integer p_j, template integer p_k,template integer p_l) := {i:= p_i, j:=p_j, k:=p_k,l:=p_l}
1763 with { erroneous(l) "value(raw):= '0202ABBA'O" }
1764
1765 template MySetOJKL t_msetojkl(template octetstring p_o, template integer p_j, template integer p_k,template integer p_l ) := {o:= p_o, j:=p_j, k:=p_k, l:=p_l}
1766 template MySetIOKL t_msetiokl(template integer p_i, template octetstring p_o, template integer p_k,template integer p_l ) := {i:=p_i, o:=p_o, k:=p_k, l:=p_l}
1767
1768 template MySetISKL t_msetiskl(template integer p_i, template MySeqInt4 p_s, template integer p_k,template integer p_l ) := {i:=p_i, s:=p_s, k:=p_k, l:=p_l}
1769 template MySetISKLopt t_msetisklopt(template integer p_i, template MySeqInt4opt p_s, template integer p_k,template integer p_l ) := {i:=p_i, s:=p_s, k:=p_k, l:=p_l}
1770 template MySetIS2KLopt t_msetis2klopt(template integer p_i, template MySeqInt2 p_s, template integer p_k,template integer p_l ) := {i:=p_i, s:=p_s, k:=p_k, l:=p_l}
1771 template MySetISKL t_msetiskl_valueSomit(template integer p_i, template MySeqInt4 p_s, template integer p_k,template integer p_l ) := {i:=p_i, s:=p_s, k:=p_k, l:=p_l} with {
1772 erroneous(s) "value:= omit" }
1773 template MySetISKL t_msetiskl_valueSIomit(template integer p_i, template MySeqInt4 p_s, template integer p_k,template integer p_l ) := {i:=p_i, s:=p_s, k:=p_k, l:=p_l} with {
1774 erroneous(s.i) "value:= omit" }
1775 template MySetISKL t_msetiskl_valueSISJomit(template integer p_i, template MySeqInt4 p_s, template integer p_k,template integer p_l ) := {i:=p_i, s:=p_s, k:=p_k, l:=p_l} with {
1776 erroneous(s.i) "value:= omit"
1777 erroneous(s.j) "value:= omit"}
1778 template MySetISKL t_msetiskl_valueSraw(template integer p_i, template MySeqInt4 p_s, template integer p_k,template integer p_l ) := {i:=p_i, s:=p_s, k:=p_k, l:=p_l} with { erroneous (s) "value(raw):= '0202ABBA'O" }
1779
1780 template MySetISOKL t_msetisokl(template integer p_i, template MySeqInt4 p_s, template octetstring p_o, template integer p_k, template integer p_l ) :=
1781 {i:=p_i, s:=p_s, o:=p_o, k:=p_k, l:=p_l}
1782 template MySetISOKLopt t_msetisoklopt(template integer p_i, template MySeqInt4opt p_s,template octetstring p_o, template integer p_k, template integer p_l ) :=
1783 {i:=p_i, s:=p_s, o:=p_o, k:=p_k, l:=p_l}
1784 template MySetISOKL t_msetisokl_valueSomit(template integer p_i, template MySeqInt4 p_s, template octetstring p_o, template integer p_k,template integer p_l ) :=
1785 {i:=p_i, s:=p_s, o:=p_o, k:=p_k, l:=p_l} with {
1786 erroneous(s) "value:= omit" }
1787 template MySetIOSKLopt t_msetiosklopt(template integer p_i, template octetstring p_o,template MySeqInt4opt p_s, template integer p_k, template integer p_l ) :=
1788 {i:=p_i, o:=p_o, s:=p_s, k:=p_k, l:=p_l}
1789 template MySetIOSKL t_msetioskl_valueSomit(template integer p_i, template octetstring p_o, template MySeqInt4 p_s, template integer p_k,template integer p_l ) :=
1790 {i:=p_i, o:=p_o, s:=p_s,k:=p_k, l:=p_l} with {
1791 erroneous(s) "value:= omit" }
1792 //===seq of seq of seq:==
1793
1794 template MySetIntSeqIntSeqInt2SeqReal2 t_msetisisi2r2_omiti(template integer p_i,template MySeqIntSeqInt2 p_jkl, template MySeqReal2 p_xy) :=
1795 { i:=p_i, jkl:=p_jkl, xy:=p_xy} with { erroneous(i) "value:=omit"}
1796
1797 template MySetIntSeqIntSeqInt2SeqReal2 t_msetisisi2r2_omitjkl(template integer p_i,template MySeqIntSeqInt2 p_jkl, template MySeqReal2 p_xy) :=
1798 { i:=p_i, jkl:=p_jkl, xy:=p_xy} with { erroneous(jkl) "value:=omit"}
1799
1800 template MySetIntSeqIntSeqInt2SeqReal2 t_msetisisi2r2_omitxy(template integer p_i,template MySeqIntSeqInt2 p_jkl, template MySeqReal2 p_xy) :=
1801 { i:=p_i, jkl:=p_jkl, xy:=p_xy} with { erroneous(xy) "value:=omit"}
1802
1803 template MySetIntSeqIntSeqInt2SeqReal2 t_msetisisi2r2_valuexy(template integer p_i,template MySeqIntSeqInt2 p_jkl, template MySeqReal2 p_xy) :=
1804 { i:=p_i, jkl:=p_jkl, xy:=p_xy} with { erroneous(xy) "value:=MySetReal2:{x:=15.0,y:=16.0}"}
1805
1806 template MySetIntSeqIntSeqInt2SeqReal2 t_msetisisi2r2_valuex_y(template integer p_i,template MySeqIntSeqInt2 p_jkl, template MySeqReal2 p_xy) :=
1807 { i:=p_i, jkl:=p_jkl, xy:=p_xy} with {
1808 erroneous(xy.x) "value:=float:15.0";
1809 erroneous(xy.y) "value:=float:16.0"
1810 }
1811
1812 template MySetIntSeqIntSeqInt2SeqReal2 t_msetisisi2r2_valuex_y_expr1(template integer p_i,template MySeqIntSeqInt2 p_jkl, template MySeqReal2 p_xy) :=
1813 { i:=p_i, jkl:=p_jkl, xy:=p_xy} with {
1814 erroneous(xy.x) "value:=float:15.0*3.0";
1815 erroneous(xy.y) "value:=float:16.0*4.0"
1816 }
1817 template MySetIntSeqIntSeqInt2SeqReal2 t_msetisisi2r2_valuex_y_expr2(template integer p_i,template MySeqIntSeqInt2 p_jkl, template MySeqReal2 p_xy) :=
1818 { i:=p_i, jkl:=p_jkl, xy:=p_xy} with {
1819 erroneous(xy.x) "value:=float:(1.0+10.0*(2.0+10.0*(3.0+10.0*(4.0+10.0*(5.0+10.0*6.0)))))"; //Horner
1820 erroneous(xy.y) "value:=float:16.32/5.1"
1821 }
1822 template MySetIntSeqIntSeqInt2SeqReal2 t_msetisisi2r2_omitjkll(template integer p_i,template MySeqIntSeqInt2 p_jkl, template MySeqReal2 p_xy) :=
1823 { i:=p_i, jkl:=p_jkl, xy:=p_xy} with { erroneous(jkl.jk.j) "value:=omit"}
1824
1825 //Set of depth 3:
1826
1827 template MySet_SeqSeqIntSeqInt2SeqReal2_SeqSeqIntSeqInt2SeqReal2 t_msetssi2sr2ssi2sr2_omit(template MySeqSeqIntSeqInt2SeqReal2 p_s1,template MySeqSeqIntSeqInt2SeqReal2 p_s2)
1828 :={ s1:=p_s1,s2:=p_s2} with { erroneous(s1.jkl.jk.j) "value:=omit" }
1829
1830 //real (float)
1831 template MySetReal t_msetr(template float p_x) := { x:=p_x }
1832 template MySetReal2 t_msetr2(template float p_x, template float p_y):={x:=p_x, y:=p_y}
1833
1834 //charstring->VisibleString
1835 template MySetStr t_msetstr(template charstring p_s) := { s := p_s }
1836
1837 //bitstring:
1838 template MySetBitStr t_msetbitstr(template bitstring p_b) := { b := p_b };
1839 template MySetOctStr t_msetos(template octetstring p_o) := { o := p_o };
1840 template MySetIntReal t_msetir(template integer p_i, template float p_x ) := { i:=p_i, x:=p_x };
1841
1842 template MySetIntStr t_msetistr(template integer p_i, template MyCharstring p_s ) := { i:=p_i, s:=p_s };
1843
1844 template MySetIntBitStr t_msetibitstr(template integer p_i, template bitstring p_b ) := { i:=p_i, b:=p_b };
1845
1846
1847 //================================================
1848 //======== Testcases==============================
1849 //================================================
1850
1851 //======== {integer}===================
1852 //omit
1853 testcase tc_MySetIntOmit() runs on MyComp {
1854 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
1855 log("i: ",i );
1856 f_compareAndVerdict(
1857 encode_mySetInt(valueof(t_mseti_omit(i))),
1858 encode_mySetEmpty(valueof(t_setEmpty)) );
1859 }
1860 }
1861
1862 testcase tc_MySetIntValueSameTypeE() runs on MyComp {
1863 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
1864 log("i: ",i );
1865 f_compareAndVerdict(
1866 encode_mySetInt(valueof(t_mseti_valueSameTypeE(i))),
1867 encode_mySetInt(valueof(t_mseti(5))) );
1868 }
1869 }
1870
1871 testcase tc_MySetIntValueSameTypeI() runs on MyComp {
1872 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
1873 log("i: ",i );
1874 f_compareAndVerdict(
1875 encode_mySetInt(valueof(t_mseti_valueSameTypeI(i))),
1876 encode_mySetInt(valueof(t_mseti(5))) );
1877 }
1878 }
1879
1880 //Basic ASN.1 types (eq ttcn types): boolean, integer, octetstring, bitstring, null, objid, ext. objid, enum, embedded pdv, float (real), UTFSTR, seq, seq of
1881 testcase tc_MySetIntValueDiffTypeExplicitBool() runs on MyComp {
1882 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
1883 log("i: ",i );
1884 f_compareAndVerdict(
1885 encode_mySetInt(valueof(t_mseti_valueDiffTypeExplicitBoolean(i))),
1886 encode_mySetBool(valueof(t_msetb(true))) );
1887 }
1888 }
1889 testcase tc_MySetIntValueDiffTypeImplicitBool() runs on MyComp {
1890 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
1891 log("i: ",i );
1892 f_compareAndVerdict(
1893 encode_mySetInt(valueof(t_mseti_valueDiffTypeImplicitBoolean(i))),
1894 encode_mySetBool(valueof(t_msetb(true))) );
1895 }
1896 }
1897
1898 // testcase tc_MySetIntValueDiffTypeExplicitNull() runs on MyComp {
1899 // for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
1900 // log("i: ",i );
1901 // f_compareAndVerdict(
1902 // encode_mySetInt(valueof(t_mseti_valueDiffTypeExplicitNull(i))),
1903 // encode_mySetNull(valueof(t_msetn)) );
1904 // }
1905 // }
1906 // testcase tc_MySetIntValueDiffTypeImplicitNull() runs on MyComp {
1907 // for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
1908 // log("i: ",i );
1909 // f_compareAndVerdict(
1910 // encode_mySetInt(valueof(t_mseti_valueDiffTypeImplicitNull(i))),
1911 // encode_mySetNull(valueof(t_msetn))) ;
1912 // }
1913 // }
1914
1915 testcase tc_MySetIntValueDiffTypeExplicitOctStr() runs on MyComp {
1916 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
1917 log("i: ",i );
1918 f_compareAndVerdict(
1919 encode_mySetInt(valueof(t_mseti_valueDiffTypeExplicitOctStr(i))),
1920 encode_mySetOctStr(valueof(t_msetos('BABA'O)))) ;
1921 }
1922 }
1923 testcase tc_MySetIntValueDiffTypeImplicitOctStr() runs on MyComp {
1924 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
1925 log("i: ",i );
1926 f_compareAndVerdict(
1927 encode_mySetInt(valueof(t_mseti_valueDiffTypeImplicitOctStr(i))),
1928 encode_mySetOctStr(valueof(t_msetos('BABA'O)))) ;
1929 }
1930 }
1931
1932 testcase tc_MySetIntValueDiffTypeExplicitEnum() runs on MyComp {
1933 var MySetMyEnum vl_msme;
1934 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
1935 log("i: ",i );
1936 vl_msme.e:=second;
1937 f_compareAndVerdict(
1938 encode_mySetInt(valueof(t_mseti_valueDiffTypeExplicitEnum(i))),
1939 encode_mySetMyEnum(vl_msme) );
1940 }
1941 }
1942 testcase tc_MySetIntValueDiffTypeExplicitFloat() runs on MyComp {
1943 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
1944 log("i: ",i );
1945 f_compareAndVerdict(
1946 encode_mySetInt(valueof(t_mseti_valueDiffTypeExplicitFloat(i))),
1947 encode_mySetReal(valueof(t_msetr(5.0))) );
1948 }
1949 }
1950
1951 testcase tc_MySetIntValueDiffTypeImplicitFloat() runs on MyComp {
1952 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
1953 log("i: ",i );
1954 f_compareAndVerdict(
1955 encode_mySetInt(valueof(t_mseti_valueDiffTypeImplicitFloat(i))),
1956 encode_mySetReal(valueof(t_msetr(5.0))));
1957 }
1958 }
1959
1960 testcase tc_MySetIntValueDiffTypeExplicitStr() runs on MyComp {
1961 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
1962 log("i: ",i );
1963 f_compareAndVerdict(
1964 encode_mySetInt(valueof( t_mseti_valueDiffTypeExplicitString(i))),
1965 encode_mySetStr(valueof(t_msetstr("subidubi"))) );
1966 }
1967 }
1968
1969 //ImplicitString: there is no 1:1 mapping between charstring and XYString in ASN.1
1970 //Basic ASN.1 types (eq ttcn types): boolean, integer, octetstring, bitstring, null, objid, ext. objid, enum, embedded pdv, float (real), UTFSTR, seq, seq of
1971
1972
1973 testcase tc_MySetIntValueDiffTypeExplicitBitStr() runs on MyComp {
1974 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
1975 log("i: ",i );
1976 f_compareAndVerdict(
1977 encode_mySetInt(valueof( t_mseti_valueDiffTypeExplicitBitString(i))),
1978 encode_mySetBitStr(valueof(t_msetbitstr('01011000'B))) );
1979 }
1980 }
1981
1982 testcase tc_MySetIntValueDiffTypeImplicitBitStr() runs on MyComp {
1983 log("encoded msbstr :",encode_mySetBitStr(valueof(t_msetbitstr('01011000'B))) );
1984 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
1985 log("i: ",i );
1986 f_compareAndVerdict(
1987 encode_mySetInt(valueof(t_mseti_valueDiffTypeImplicitBitString(i))),
1988 encode_mySetBitStr(valueof(t_msetbitstr('01011000'B))) )
1989 }
1990 }
1991
1992 //RAW
1993 testcase tc_MySetIntValueDiffTypeRawOctStr() runs on MyComp {
1994 var octetstring vl_expectedValue:= '3101FF'O; //30:SEQ, 01:L,FF:Value
1995 log("Expected value: ", vl_expectedValue );
1996 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
1997 log("i: ",i );
1998 f_compareAndVerdict( encode_mySetInt(valueof(t_mseti_valueDiffTypeRaw(i))), vl_expectedValue)
1999 }
2000 }
2001 // ============{integer, integer }==============
2002 //omit
2003 testcase tc_MySetInt2Omiti() runs on MyComp {
2004 var integer j:= 255;
2005 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
2006 log("i: ",i );
2007 f_compareAndVerdict(
2008 encode_mySetInt2(valueof(t_mseti2_omiti(i,j))), //encoded
2009 encode_mySetInt2opt(valueof(t_mseti2(omit,j))) ); //expected
2010 }
2011
2012 }
2013
2014 testcase tc_MySetInt2Omitj() runs on MyComp {
2015 var integer j:= 255;
2016 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
2017 log("i: ",i );
2018 f_compareAndVerdict(
2019 encode_mySetInt2(valueof(t_mseti2_omitj(i,j))),//encoded
2020 encode_mySetInt2opt(valueof(t_mseti2(i, omit))) ); //expected
2021 }
2022 }
2023
2024
2025 //before omit j
2026 testcase tc_MySetInt2BeforeOmitj() runs on MyComp {
2027 var integer j:= 255;
2028 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
2029 log("i: ",i );
2030 f_compareAndVerdict(
2031 encode_mySetInt2(valueof(t_mseti2_beforeomitj(i,j))),//encoded
2032 encode_mySetInt2opt(valueof(t_mseti2(omit,j))) ); //expected
2033 }
2034 }
2035
2036 //after omit i
2037 testcase tc_MySetInt2AfterOmiti() runs on MyComp {
2038 var integer j:= 255;
2039 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
2040 log("i: ",i );
2041 f_compareAndVerdict(
2042 encode_mySetInt2(valueof(t_mseti2_afteromiti(i,j))),//encoded
2043 encode_mySetInt2opt(valueof(t_mseti2(i, omit))));//expected
2044 }
2045 // i: 1
2046 // encoded value: '3105A003020101'O
2047 // expected value: '3105A003020101'O
2048 // setverdict(pass): none -> pass
2049 // i: -10
2050 // encoded value: '3105A0030201F6'O
2051 // expected value: '3105A0030201F6'O
2052 // setverdict(pass): pass -> pass, component reason not changed
2053 // i: 100
2054 // encoded value: '3105A003020164'O
2055 // expected value: '3105A003020164'O
2056 // setverdict(pass): pass -> pass, component reason not changed
2057 // i: -1000
2058 // encoded value: '3106A0040202FC18'O
2059 // expected value: '3106A0040202FC18'O
2060 // setverdict(pass): pass -> pass, component reason not changed
2061 // i: 10000
2062 // encoded value: '3106A00402022710'O
2063 // expected value: '3106A00402022710'O
2064 // setverdict(pass): pass -> pass, component reason not changed
2065 // i: -100000
2066 // encoded value: '3107A0050203FE7960'O
2067 // expected value: '3107A0050203FE7960'O
2068 // setverdict(pass): pass -> pass, component reason not changed
2069 }
2070
2071 testcase tc_MySetInt2ValueSameTypeE() runs on MyComp {
2072 var integer j:= 255;
2073 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
2074 log("i: ",i );
2075 f_compareAndVerdict(
2076 encode_mySetInt2(valueof(t_mseti2_valueSameTypeE(i,j))),//encoded
2077 encode_mySetInt2opt(valueof(t_mseti2(i,5))) ); //expected
2078 }
2079 }
2080
2081 // testcase tc_MySetInt2ValueSameTypeI() runs on MyComp {
2082 // var integer j:= 255;
2083 // for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
2084 // log("i: ",i );
2085 // f_compareAndVerdict(
2086 // encode_mySetInt2(valueof(t_mseti2_valueSameTypeI(i,j))),//encoded
2087 // encode_mySetInt2opt(valueof(t_mseti2(i,5)))); //expected
2088 // }
2089 // }
2090
2091 testcase tc_MySetInt2ValueDiffTypeExplicitFloat() runs on MyComp {
2092 var integer j:= 255;
2093 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
2094 log("i: ",i );
2095 f_compareAndVerdict(
2096 encode_mySetInt2(valueof(t_mseti2_valueDiffTypeExplicitFloat(i,j))),//encoded
2097 encode_mySetIntReal(valueof(t_msetir(i,5.0)))); //expected
2098 }
2099 }
2100
2101 testcase tc_MySetInt2ValueDiffTypeImplicitFloat() runs on MyComp {
2102 var integer j:= 255;
2103 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
2104 log("i: ",i );
2105 f_compareAndVerdict(
2106 encode_mySetInt2(valueof(t_mseti2_valueDiffTypeImplicitFloat(i,j))),//encoded
2107 encode_mySetIntReal(valueof(t_msetir(i,5.0)))); //expected
2108 }
2109 }
2110
2111 testcase tc_MySetInt2ValueDiffTypeExplicitStr() runs on MyComp {
2112 var integer j:= 255;
2113 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
2114 log("i: ",i );
2115 f_compareAndVerdict(
2116 encode_mySetInt2(valueof( t_mseti2_valueDiffTypeExplicitString(i, j))),//encoded
2117 encode_mySetIntStr(valueof(t_msetistr(i, "subidubi"))) ); //expected
2118 }
2119 }
2120
2121 testcase tc_MySetInt2ValueDiffTypeExplicitBitStr() runs on MyComp {
2122 var integer j:= 255;
2123 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
2124 log("i: ",i );
2125 f_compareAndVerdict(
2126 encode_mySetInt2(valueof( t_mseti2_valueDiffTypeExplicitBitString(i, j))), //encoded
2127 encode_mySetIntBitStr(valueof(t_msetibitstr(i,'01011000'B))) ); //expected
2128 }
2129 }
2130
2131 testcase tc_MySetInt2ValueDiffTypeImplicitBitStr() runs on MyComp {
2132 var integer j:= 255;
2133 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
2134 log("i: ",i );
2135 f_compareAndVerdict(
2136 encode_mySetInt2(valueof( t_mseti2_valueDiffTypeImplicitBitString(i,j))), //encoded
2137 encode_mySetIntBitStr(valueof(t_msetibitstr(i,'01011000'B))) )//expected
2138 }
2139 }
2140
2141 testcase tc_MySetInt2ValueSeqIntV() runs on MyComp {
2142 var integer i:= 10, j:= 15;
2143 //var MySetIntSeqInt2T vl_expectedT:={i:=10,jk:={1,2}};
2144 var octetstring vl_encoded := encode_mySetInt2(valueof(t_mseti2_valueSeqIntV(i,j)))
2145 var octetstring vl_expected:= encode_mySetIntSeqInt2T({i:=10,jk:={1,2}})
2146 f_compareAndVerdict(vl_encoded,vl_expected);
2147 //Encoded value: '310D3006020101020102A00302010A'O
2148 //T:31 (SET) L:0D (13) V:3006020101020102A00302010A'O
2149 //T:30 (SEQ) L:06 V:020101020102 A00302010A'O : '020101'O~ int:1, '020102'~int:2, 'A00302010A'O~ [0],L:03,'02010A'O~int:10
2150 // {{1,2}, [0] 10}
2151 }
2152
2153 testcase tc_MySetInt2ValueSeqIntOptV() runs on MyComp {
2154 var integer i:= 10, j:= 15;
2155 var octetstring vl_encoded := encode_mySetInt2(valueof(t_mseti2_valueSeqIntOptV(i,j)))
2156 var octetstring vl_expected:= encode_mySetIntSeqInt2T({i:=10,jk:={1,2}})
2157 f_compareAndVerdict(vl_encoded,vl_expected);
2158 }
2159
2160 testcase tc_MySetInt2ValueSeqIntC() runs on MyComp {
2161 var integer i:= 10, j:= 15;
2162 var octetstring vl_encoded := encode_mySetInt2(valueof(t_mseti2_valueSeqIntC(i,j)))
2163 var octetstring vl_expected:= encode_mySetIntSeqInt2T({i:=10,jk:={1,2}})
2164 f_compareAndVerdict(vl_encoded,vl_expected);
2165 }
2166
2167 testcase tc_MySetInt2ValueSeqInt2OptC() runs on MyComp {
2168 var integer i:= 10, j:= 15;
2169 var octetstring vl_encoded := encode_mySetInt2(valueof(t_mseti2_valueSeqIntOptC(i,j)));
2170 var octetstring vl_expected:= encode_mySetIntSeqInt2T({i:=10,jk:={1,2}});
2171 f_compareAndVerdict(vl_encoded,vl_expected);
2172 }
2173
2174 testcase tc_MySetInt2ValueSeqInt2OptOmitC() runs on MyComp {
2175 var integer i:= 10, j:= 15;
2176 var octetstring vl_encoded := encode_mySetInt2(valueof(t_mseti2_valueSeqInt2OptOmitC(i,j)));
2177 var octetstring vl_expected:= encode_mySetIntSeqInt2Toptopt({i:=10,jk:={1,omit}})
2178 f_compareAndVerdict(vl_encoded,vl_expected);
2179 }
2180 testcase tc_MySetInt2ValueSeqInt2iiC() runs on MyComp {
2181 var integer i:= 10, j:= 15;
2182 var octetstring vl_encoded := encode_mySetInt2(valueof(t_mseti2_valueSeqInt2iiC(i,j)));
2183 var octetstring vl_expected:= encode_mySetInt2({i:=1,j:=15})
2184 f_compareAndVerdict(vl_encoded,vl_expected);
2185 }
2186
2187 //not possible - two field with the same tag:
2188 // testcase tc_MySetInt2ValueSeqInt2ijC() runs on MyComp {
2189 // var integer i:= 10, j:= 15;
2190 // var octetstring vl_encoded := encode_mySetInt2(valueof(t_mseti2_valueSeqInt2ijC(i,j)));
2191 // var octetstring vl_expected:= encode_mySetInt2({i:=2,j:=15})
2192 // f_compareAndVerdict(vl_encoded,vl_expected);
2193 // }
2194 // testcase tc_MySetInt2ValueSeqInt2jiC() runs on MyComp {
2195 // var integer i:= 10, j:= 15;
2196 // var octetstring vl_encoded := encode_mySetInt2(valueof(t_mseti2_valueSeqInt2jiC(i,j)));
2197 // var octetstring vl_expected:= encode_mySetInt2({i:=10,j:=1})
2198 // f_compareAndVerdict(vl_encoded,vl_expected);
2199 // }
2200
2201 testcase tc_MySetInt2ValueSeqInt2jjC() runs on MyComp {
2202 var integer i:= 10, j:= 15;
2203 var octetstring vl_encoded := encode_mySetInt2(valueof(t_mseti2_valueSeqInt2jjC(i,j)));
2204 var octetstring vl_expected:= encode_mySetInt2({i:=10,j:=2})
2205 f_compareAndVerdict(vl_encoded,vl_expected);
2206 }
2207 //=== Set { integer, {integer, integer} )
2208 testcase tc_MySetIntSeqInt2ValueOmiti() runs on MyComp {
2209 var integer i:= 10, j:= 15, k:=16;
2210 var octetstring vl_encoded :=encode_mySetIntSeqInt2(valueof(t_msetisi2_omiti(i,j,k)))
2211 var octetstring vl_expected:=encode_mySetIntSeqInt2opt({i:=omit,jk:={15,16}})
2212 f_compareAndVerdict(vl_encoded,vl_expected);
2213 }
2214
2215 testcase tc_MySetIntSeqInt2ValueOmitjki() runs on MyComp {
2216 var integer i:= 10, j:= 15, k:=16;
2217 f_compareAndVerdict(
2218 encode_mySetIntSeqInt2(valueof(t_msetisi2_omitjki(i,j,k))),
2219 encode_mySetIntSeqInt2optopt({i:=10,jk:={16,omit}}) );
2220 //'300802010A3003020110'O : T:30 (SEQ) L:08 V:'02010A3003020110'O
2221 //02010A (i=10)
2222 //3003020110 T:30, L:03, V:020110 (=int:16)
2223 }
2224
2225 testcase tc_MySetIntSeqInt2ValueOmitjkj() runs on MyComp {
2226 var integer i:= 10, j:= 15, k:=16;
2227
2228 log( "encoded value: ", encode_mySetIntSeqInt2(valueof(t_msetisi2_omitjkj(i,j,k))));
2229 //'300802010A3003020110'O : T:30 (SEQ) L:08 V:'02010A3003020110'O
2230 //02010A (i=10)
2231 //3003020110 T:30, L:03, V:020110 (=int:16)
2232 f_compareAndVerdict(
2233 encode_mySetIntSeqInt2(valueof(t_msetisi2_omitjkj(i,j,k))),
2234 encode_mySetIntSeqInt2optopt({i:=10,jk:={15,omit}}) );
2235 }
2236
2237 testcase tc_MySetIntSeqInt2ValueRawjki() runs on MyComp {
2238 var integer i:= 10, j:= 15, k:=16;
2239 f_compareAndVerdict( encode_mySetIntSeqInt2(valueof(t_msetisi2_rawjki(i,j,k))), '310A02010A3005ABBA020110'O );
2240 }
2241
2242 testcase tc_MySetIntSeqInt2ValueRawjkj() runs on MyComp {
2243 var integer i:= 10, j:= 15, k:=16;
2244 //'300A02010A300502010FABBA'O
2245 // 300A02010A300502010FABBA'O: T:30 (SEQ) L:0A (10) V:'02010A300502010FABBA'O
2246 //02010A (i=10)
2247 // '300502010FABBA'O T:30, L:05, V:02010FABBA'O: '2010F'O (int 15) & 'ABBA'O
2248 f_compareAndVerdict( encode_mySetIntSeqInt2(valueof(t_msetisi2_rawjkj(i,j,k))), '310A02010A300502010FABBA'O )
2249 }
2250
2251 //After-before:
2252 testcase tc_MySetIntSeqInt2AfteriBeforej() runs on MyComp {
2253 var integer i:= 10, j:= 15, k:=16;
2254 f_compareAndVerdict( encode_mySetIntSeqInt2(valueof(t_msetisi2_afteribeforej(i,j,k))), '311302010A0402ABBA300A0402BABA02010F020110'O)
2255 //'301302010A0402ABBA300A0402BABA02010F020110'O T:30 (SEQ) L:13 (19dec) V:'02010A0402ABBA300A0402BABA02010F020110'O
2256 //02010A0 (i:10)
2257 //0402ABBA T:04 (octetstring>1) L:02 V:'ABBA'O (after i should be 'ABBA'O ->ok
2258 //'300A0402BABA02010F020110'O T:30 (SEQ) L:'0A'O (10dec) V: '0402BABA02010F020110'O
2259 //0402BABA: T:04 (octetstr) L:02 V:'BABA'O ->ok
2260 //02010F : (j:15) ->ok
2261 //020110: (k:16) ->ok
2262 }
2263
2264 //==== {integer, integer, integer, integer} ==============
2265 //omit
2266 testcase tc_MySetInt4Omiti() runs on MyComp {
2267 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
2268 log("i: ",i);
2269 f_compareAndVerdict(
2270 encode_mySetInt4(valueof(t_mseti4_omiti(i,2*i,3*i,4*i))),
2271 encode_mySetInt4opt(valueof(t_mseti4opt(omit,2*i,3*i,4*i))) )
2272 }
2273 }
2274
2275 testcase tc_MySetInt4Omitj() runs on MyComp {
2276 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
2277 log("i: ",i);
2278 f_compareAndVerdict( encode_mySetInt4(valueof(t_mseti4_omitj(i,2*i,3*i,4*i))),encode_mySetInt4opt(valueof(t_mseti4opt(i,omit,3*i,4*i))) );
2279 }
2280 }
2281
2282 testcase tc_MySetInt4Omitk() runs on MyComp {
2283 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
2284 log("i: ",i);
2285 f_compareAndVerdict( encode_mySetInt4(valueof(t_mseti4_omitk(i,2*i,3*i,4*i))),encode_mySetInt4opt(valueof(t_mseti4opt(i,2*i,omit,4*i))) )
2286 }
2287 }
2288
2289 testcase tc_MySetInt4Omitl() runs on MyComp {
2290 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
2291 log("i: ",i);
2292 f_compareAndVerdict( encode_mySetInt4(valueof(t_mseti4_omitl(i,2*i,3*i,4*i))), encode_mySetInt4opt(valueof(t_mseti4opt(i,2*i,3*i,omit))) )
2293 }
2294 }
2295
2296 testcase tc_MySetInt4ValueiOctetStr() runs on MyComp {
2297 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
2298 log("i: ",i);
2299 f_compareAndVerdict(
2300 encode_mySetInt4(valueof(t_mseti4_valueiOctetStr(i,2*i,3*i,4*i))),
2301 encode_mySetOJKL(valueof(t_msetojkl('FEDCBA98'O,2*i,3*i, 4*i))) )
2302 }
2303 }
2304
2305 testcase tc_MySetInt4ValuejOctetStr() runs on MyComp {
2306 for(var integer i:=1; i<tsp_maxInt;i:=i*tsp_step) {
2307 log("i: ",i);
2308 f_compareAndVerdict(
2309 encode_mySetInt4(valueof(t_mseti4_valuejOctetStr(i,2*i,3*i,4*i))),
2310 encode_mySetIOKL(valueof(t_msetiokl(i,'FEDCBA98'O,3*i, 4*i))) )
2311 }
2312 }
2313
2314 //type record of octetstring RoO;
2315 //type record of integer RoI;
2316 testcase tc_MySetInt4ValueiRaw() runs on MyComp {
2317 var RoO vl_expectedValue:= {
2318 '31130202ABBAA103020102A203020103A303020104'O,
2319 '31130202ABBAA103020114A20302011EA303020128'O, //'31 13 02 02 ABBA A1 03 020114 A20302011EA 303020128'O,
2320 '31160202ABBAA104020200C8A2040202012CA30402020190'O,
2321 '31160202ABBAA104020207D0A20402020BB8A30402020FA0'O,
2322 '31130202ABBAA1030201ECA2030201E2A3030201D8'O
2323 }
2324
2325 var RoI vl_roi := { 1, 10, 100, 1000,-10};
2326
2327 var integer i:=0;
2328 for(var integer index:=0; index<5;index:=index+1) {
2329 i:=vl_roi[index];
2330 log("i: ",i);
2331 f_compareAndVerdict( encode_mySetInt4(valueof(t_mseti4_valueiRaw(i,2*i,3*i,4*i))),vl_expectedValue[index] )
2332 }
2333 }
2334
2335 testcase tc_MySetInt4ValuejRaw() runs on MyComp {
2336 var octetstring vl_expectedValue:='31130202ABBAA003020101A203020103A303020104'O
2337 //'T:31 (SET), L:13 (19), V:'0202ABBA A003020101 A203020103 A303020104'O , where
2338 //'0202ABBA' T:02 (int),L:02,V:'ABBA'
2339 //'A003020101' : T:[0] L:03 T:02,L:01,V:1 (i:=1)
2340 //'A203020103' : T:[2] L:03 T:02 L:01 V:3 (k:=3)
2341 //'A303020104' : T:[3] L:03 T:02,L:01,V:2 (l:=4)
2342 var integer i:=1;
2343 f_compareAndVerdict( encode_mySetInt4(valueof(t_mseti4_valuejRaw(i,2*i,3*i,4*i))),vl_expectedValue ) ;
2344 }
2345
2346 testcase tc_MySetInt4ValuekRaw() runs on MyComp {
2347 var octetstring vl_expectedValue:= '31130202ABBAA003020101A103020102A303020104'O
2348 //'31 13 0202ABBA A003020101 A103020102 A303020104'O
2349 var integer i:=1;
2350 f_compareAndVerdict( encode_mySetInt4(valueof(t_mseti4_valuekRaw(i,2*i,3*i,4*i))),vl_expectedValue )
2351 }
2352
2353 testcase tc_MySetInt4ValuelRaw() runs on MyComp {
2354 var octetstring vl_expectedValue:= '31130202ABBAA003020101A103020102A203020103'O
2355 //'31 13 0202ABBA A003020101 A103020102 A203020103'O
2356 var integer i:=1
2357 f_compareAndVerdict( encode_mySetInt4(valueof(t_mseti4_valuelRaw(i,2*i,3*i,4*i))),vl_expectedValue ) ;
2358 }
2359
2360 //To test if a mandatory structure omitted
2361 testcase tc_MySetISKL_ValueSomit() runs on MyComp {
2362 var MySeqInt4 vl_msi4:={5,6,7,8};
2363 // var octetstring vl_expectedValue:= '310FA00302010AA20302011EA303020128'O;
2364 //New:
2365 //Encoded value: '3118300C020105020106020107020108A20302011EA303020128'O
2366 //Expected value: '310FA00302010AA20302011EA303020128'O
2367 f_compareAndVerdict(
2368 encode_mySetISKL(valueof(t_msetiskl_valueSomit(10,vl_msi4,30,40))),
2369 encode_mySetISKLopt(valueof(t_msetisklopt(10,omit,30,40))) );
2370 }
2371
2372 //DTE:
2373 testcase tc_MySetISKL_ValueSIomit() runs on MyComp {
2374 var MySeqInt4 vl_msi4:={5,6,7,8};
2375 // var octetstring vl_encodedValue:=encode_mySetISKL(valueof(t_msetiskl_valueSIomit(10,vl_msi4,30,40)));
2376 // expected:
2377 //'311A3009020106020107020108A00302010AA20302011EA303020128'O
2378 //'311A 30 09 020106 020107 020108 A00302010A A20302011E A303020128'O ~{ {6,7,8}, [0]10, [2]30,[3]40}
2379 f_compareAndVerdict(
2380 encode_mySetISKL(valueof(t_msetiskl_valueSIomit(10,vl_msi4,30,40))),
2381 encode_mySetISKLopt(valueof(t_msetisklopt(10,{6,7,8,omit},30,40))));
2382
2383 }
2384
2385 testcase tc_MySetISKL_ValueSISJomit() runs on MyComp {
2386 var MySeqInt4 vl_msi4:={5,6,7,8};
2387 //var octetstring vl_expectedValue:='311A3009020105020107020108A00302010AA20302011EA303020128'O
2388 //'31 1A 30 09 020105 020107 020108 A00302010A A20302011E A303020128'O
2389 f_compareAndVerdict( encode_mySetISKL(valueof(t_msetiskl_valueSISJomit(10,vl_msi4,30,40))),
2390 encode_mySetIS2KLopt(valueof(t_msetis2klopt(10,{7,8},30,40))));
2391 }
2392
2393 testcase tc_MySetISKL_ValueSraw() runs on MyComp {
2394 var MySeqInt4 vl_msi4:={5,6,7,8};
2395 var octetstring vl_expectedValue:= '31130202ABBAA00302010AA20302011EA303020128'O
2396 //encoded:'311C0202ABBA300C020105020106020107020108A20302011EA303020128'O ,,Wrong, i is substituted by 0202ABBA. s should be subst!
2397 //'31 13 0202ABBA A00302010A A20302011E A303020128'O
2398 // 4 5 5 5 = 19dec
2399 f_compareAndVerdict( encode_mySetISKL(valueof(t_msetiskl_valueSraw(10,vl_msi4,30,40))),vl_expectedValue )
2400 }
2401
2402 //passed
2403 testcase tc_MySetISOKL_ValueSomit() runs on MyComp {
2404 var MySeqInt4 vl_msi4:={5,6,7,8};
2405 f_compareAndVerdict(
2406 encode_mySetISOKL(valueof(t_msetisokl_valueSomit(10,vl_msi4,'BABA'O,30,40))),
2407 encode_mySetISOKLopt(valueof(t_msetisoklopt(10,omit,'BABA'O,30,40))) );
2408 }
2409
2410 //failed
2411 testcase tc_MySetIOSKL_ValueSomit() runs on MyComp {
2412 var MySeqInt4 vl_msi4:={5,6,7,8};
2413 f_compareAndVerdict(
2414 encode_mySetIOSKL(valueof(t_msetioskl_valueSomit(10,'BABA'O,vl_msi4,30,40))),
2415 encode_mySetIOSKLopt(valueof(t_msetiosklopt(10,'BABA'O,omit,30,40))) );
2416 //Encoded value: '311C0402BABA300C020105020106020107020108A20302011EA303020128'O ~ {'BABA'O,{5,6,7,8},[2]30,[3]40}
2417 //Expected value: '31130402BABAA00302010AA20302011EA303020128'O ~ {'BABA'O,[0] 10,[2]30, [3]40}
2418 //Fault: i was omitted instead of s:={5,6,7,8}
2419 }
2420
2421 //===== sequence of sequence of sequence ====
2422 testcase tc_MySetIntSeqIntSeqInt2SeqReal2_omiti() runs on MyComp {
2423 var MySetSeqIntSeqInt2SeqReal2 vl_expected:= {jkl:={2,{3,4}},xy:={5.0,6.0}};
2424 //'301F 30 0B 020102 3006 020103 020104 3010 090603352E452B30 090603362E452B30'O
2425 f_compareAndVerdict(
2426 encode_mySetIntSeqIntSeqInt2SeqReal2(valueof(t_msetisisi2r2_omiti(1, {2,{3,4}}, {5.0,6.0} ))),
2427 encode_mySetSeqIntSeqInt2SeqReal2(vl_expected))
2428 }
2429 testcase tc_MySetIntSeqIntSeqInt2SeqReal2_omitjkl() runs on MyComp {
2430 var MySetIntSeqReal2 vl_expected:= {i:= 1, xy:={5.0,6.0}};
2431 //'30150201013010090603352E452B30090603362E452B30'O
2432 //'30150201013010090603352E452B30090603362E452B30'O : T: 30 (SEQ), L:'15'O=21dec, V: '0201013010090603352E452B30090603362E452B30'O
2433 //020101 int:1
2434 //3010090603352E452B30090603362E452B30'O T: 30 (SEQ), L:'10'O=16dec V:'090603352E452B30 090603362E452B30'O
2435 //090603352E452B30 T:09 (REAL), L:06, V:'03 35 2E 45 2B 30'O='0000 0011 ...'B ??? (35->5.0
2436 //090603362E452B30 T:09 (REAL), L:06, V:'03 36 2E 45 2B 30'O=??? (36->6.0dec?)
2437 f_compareAndVerdict( encode_mySetIntSeqIntSeqInt2SeqReal2(
2438 valueof(t_msetisisi2r2_omitjkl(1, {2,{3,4}}, {5.0,6.0} ))),
2439 encode_mySetIntSeqReal2(vl_expected));
2440 }
2441
2442 testcase tc_MySetIntSeqIntSeqInt2SeqReal2_omitxy() runs on MyComp {
2443 var MySetIntSeqIntSeqInt2 vl_expected:= { i:=1, jkl:={2,{3,4}} };
2444 //'3010020101300B0201023006020103020104'O
2445 f_compareAndVerdict(
2446 encode_mySetIntSeqIntSeqInt2SeqReal2(valueof(t_msetisisi2r2_omitxy(1, {2,{3,4}}, {5.0,6.0} ))),
2447 encode_mySetIntSeqIntSeqInt2(vl_expected))
2448 }
2449
2450 //...with { erroneous(jkl.jk.j) "value:=omit"}
2451 testcase tc_MySetIntSeqIntSeqInt2SeqReal2_omitjkll() runs on MyComp {
2452 var MySetIntSeqIntSeqInt2optoptSeqReal2 vl_expected:= {i:=1,jkl:={2,{3,omit}},xy:= {5.0,6.0}};
2453 f_compareAndVerdict( encode_mySetIntSeqIntSeqInt2SeqReal2(
2454 valueof(t_msetisisi2r2_omitjkll(1, {2,{3,4}}, {5.0,6.0} ))),
2455 encode_mySetIntSeqIntSeqInt2optoptSeqReal2(vl_expected))
2456 }
2457
2458 testcase tc_MySetIntSeqIntSeqInt2SeqReal2_valuexy() runs on MyComp {
2459 //var MySetIntSeqIntSeqInt2SeqReal2 vl_msisisi2r2;
2460 var MySetIntSeqIntSeqInt2SeqReal2 vl_expected:= {i:=1,jkl:={2,{3,4}}, xy:={15.0,16.0}};
2461 f_compareAndVerdict(
2462 encode_mySetIntSeqIntSeqInt2SeqReal2(valueof(t_msetisisi2r2_valuexy(1, {2,{3,4}}, {5.0,6.0} ))),
2463 encode_mySetIntSeqIntSeqInt2SeqReal2(vl_expected))
2464 }
2465
2466 testcase tc_MySetIntSeqIntSeqInt2SeqReal2_valuex_y() runs on MyComp {
2467
2468 var MySetIntSeqIntSeqInt2SeqReal2 vl_expected:= {i:=1,jkl:={2,{3,4}},xy:= {15.0,16.0}};
2469 f_compareAndVerdict( encode_mySetIntSeqIntSeqInt2SeqReal2(
2470 valueof(t_msetisisi2r2_valuex_y(1, {2,{3,4}}, {5.0,6.0} ))),
2471 encode_mySetIntSeqIntSeqInt2SeqReal2(vl_expected));
2472 }
2473
2474 //expression evaluation in attribue section:
2475 testcase tc_MySetIntSeqIntSeqInt2SeqReal2_valuex_y_expr1() runs on MyComp {
2476
2477 var MySetIntSeqIntSeqInt2SeqReal2 vl_expected:= {i:=1,jkl:={2,{3,4}},xy:= {45.0,64.0}};
2478 f_compareAndVerdict(
2479 encode_mySetIntSeqIntSeqInt2SeqReal2(valueof(t_msetisisi2r2_valuex_y_expr1(1, {2,{3,4}}, {5.0,6.0} ))),
2480 encode_mySetIntSeqIntSeqInt2SeqReal2(vl_expected))
2481 }
2482
2483 testcase tc_MySetIntSeqIntSeqInt2SeqReal2_valuex_y_expr2() runs on MyComp {
2484 var MySetIntSeqIntSeqInt2SeqReal2 vl_expected:= {i:=1,jkl:={2,{3,4}}, xy:={654321.0, 3.2}};
2485 f_compareAndVerdict(
2486 encode_mySetIntSeqIntSeqInt2SeqReal2(valueof(t_msetisisi2r2_valuex_y_expr2(1, {2,{3,4}}, {5.0,6.0} ))),
2487 encode_mySetIntSeqIntSeqInt2SeqReal2(vl_expected))
2488 }
2489
2490 testcase tc_MySet_SeqSeqIntSeqInt2SeqReal2_SeqSeqIntSeqInt2SeqReal2_omit() runs on MyComp {
2491 var MySeqSeqIntSeqInt2SeqReal2 vl_s1:={jkl:={1,{2,3}},xy:={3.0,4.0} }, vl_s2:= {jkl:={5,{6,7}},xy:={7.0, 8.0}};
2492 var MySet_SeqSeqIntSeqInt2optoptSeqReal2_SeqSeqIntSeqInt2optoptSeqReal2 vl_expected :=
2493 { s1:={ omit,{1,{2, omit}}, {3.0,4.0} },s2:= { omit,{5,{6,7}}, {7.0, 8.0}} };
2494 f_compareAndVerdict(
2495 encode_mySet_SeqSeqIntSeqInt2SeqReal2_SeqSeqIntSeqInt2SeqReal2(valueof(t_msetssi2sr2ssi2sr2_omit(vl_s1, vl_s2))),
2496 encode_mySet_SeqSeqIntSeqInt2optoptSeqReal2_SeqSeqIntSeqInt2optoptSeqReal2(vl_expected));
2497 }
2498
2499 }//group Set
2500
2501
2502 //****************************** SET OF ****************************************************
2503
2504
2505 group SetOf { //====set of related templates====
2506
2507 template MySetOfBool t_msetofb(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 };
2508 template MySetOfNull t_msetofn := { NULL, NULL, NULL };
2509 template MySetOfInt t_msetofi(template integer p_i1, template integer p_i2, template integer p_i3):={p_i1,p_i2,p_i3};
2510 template MySetOfMyEnum t_msetofme(template MyEnum p_e1, template MyEnum p_e2,template MyEnum p_e3) := {p_e1,p_e2,p_e3};
2511 //template MySetOfEnum t_msetofe(template MyEnum p_e1, template MyEnum p_e2,template MyEnum p_e3):= {p_e1,p_e2,p_e3};
2512 template MySetOfReal t_msetofr(template float p_f1, template float p_f2, template float p_f3, template float p_f4):= {p_f1, p_f2,p_f3,p_f4}
2513 template MySetOfBitStr t_msetofbs(template bitstring p_bs1, template bitstring p_bs2, template bitstring p_bs3):={p_bs1, p_bs2, p_bs3}
2514 template MySetOfOctStr t_msetofos(template octetstring p_os1, template octetstring p_os2, template octetstring p_os3):={p_os1, p_os2, p_os3}
2515 //template MySetOfObjId
2516
2517 template MySetOfBool t_msetofbValueSameType(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
2518 with { erroneous ([0]) "value:= boolean:true"; erroneous ([2]) "value:= boolean:true" };
2519
2520 template MySetOfBool t_msetofbValueDiffType(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
2521 with { erroneous ([0]) "value:= 1.414"; erroneous ([2]) "value:= 2011" }; //2011 = '07DB'O
2522
2523 template MySetOfBool t_msetofbValueDiffTypeRaw(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
2524 with { erroneous ([0]) "value(raw):='02010A'O"; erroneous ([2]) "value:= 2011" }; //2011 = '07DB'O
2525
2526 template MySetOfBool t_msetofbValueOmit(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
2527 with { erroneous ([0]) "value:=omit"; erroneous ([1]) "value:= omit" };
2528
2529 template MySetOfBool t_msetofbAfterOmit(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
2530 with { erroneous ([0]) "after:=omit all" };
2531
2532 template MySetOfBool t_msetofbValueAfterOmit(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
2533 with { erroneous ([0]) "after:=omit all"; erroneous ([0]) "value:=true" };
2534
2535 template MySetOfBool t_msetofbBeforeOmit2(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
2536 with { erroneous ([2]) "before:=omit all" };
2537
2538 template MySetOfBool t_msetofbValueBeforeOmit2(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
2539 with { erroneous ([2]) "before:=omit all"; erroneous ([2]) "value:=true" };
2540
2541 template MySetOfBool t_msetofbBeforeOmit1(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
2542 with { erroneous ([1]) "before:=omit all" };
2543
2544 template MySetOfBool t_msetofbValueBeforeOmit1(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
2545 with { erroneous ([1]) "before:=omit all"; erroneous ([1]) "value:=true" };
2546 // This would cause compilation error - correct behavior:
2547 //template MySetOfBool t_msetofbAfterOmit(template boolean p_b1, template boolean p_b2, template boolean p_b3) := { p_b1, p_b2, p_b3 }
2548 // with { erroneous ([0]) "after:=omit all"; erroneous ([1]) "value:= 4" };
2549
2550 //NULL:
2551 template MySetOfNull t_msetofnValueDiffType := { NULL,NULL,NULL }
2552 with { erroneous ([0]) "value:= 1.414"; erroneous ([2]) "value:= 2011" };
2553
2554 template MySetOfNull t_msetofnValueDiffTypeRaw := { NULL,NULL,NULL }
2555 with { erroneous ([0]) "value(raw):='02010A'O"; erroneous ([2]) "value:= 2011" };
2556
2557 template MySetOfNull t_msetofnBeforeOmit2 := { NULL,NULL,NULL }
2558 with { erroneous ([2]) "before:= omit all" };
2559 template MySetOfNull t_msetofnIntValueBeforeOmit2 := { NULL,NULL,NULL }
2560 with { erroneous ([2]) "before:= omit all"; erroneous ([2]) "value:= 2011"};
2561 template MySetOfNull t_msetofnFloatValueBeforeOmit2 := { NULL,NULL,NULL }
2562 with { erroneous ([2]) "before:= omit all"; erroneous ([2]) "value:= 0.1"};
2563 template MySetOfNull t_msetofnBeforeOmit1 := { NULL,NULL,NULL }
2564 with { erroneous ([1]) "before:= omit all" };
2565 template MySetOfNull t_msetofnIntValueBeforeOmit1 := { NULL,NULL,NULL }
2566 with { erroneous ([1]) "before:= omit all"; erroneous ([1]) "value:= 2011"};
2567 template MySetOfNull t_msetofnFloatValueBeforeOmit1 := { NULL,NULL,NULL }
2568 with { erroneous ([1]) "before:= omit all"; erroneous ([1]) "value:= 0.1"};
2569 template MySetOfNull t_msetofnFloatValueBeforeOmit1_2 := { NULL,NULL,NULL }
2570 with { erroneous ([1]) "before:= omit all"; erroneous ([2]) "value:= 0.1"};
2571
2572 template MySetOfNull t_msetofnAfterOmit1 := { NULL,NULL,NULL }
2573 with { erroneous ([1]) "after:= omit all" };
2574 template MySetOfNull t_msetofnIntValueAfterOmit1 := { NULL,NULL,NULL }
2575 with { erroneous ([1]) "after:= omit all"; erroneous ([1]) "value:= 2011"};
2576 template MySetOfNull t_msetofnFloatValueAfterOmit1 := { NULL,NULL,NULL }
2577 with { erroneous ([1]) "after:= omit all"; erroneous ([1]) "value:= 0.1"};
2578 template MySetOfNull t_msetofnFloatValueAfterOmit1_2 := { NULL,NULL,NULL }
2579 with { erroneous ([1]) "after:= omit all"; erroneous ([0]) "value:= 0.1"};
2580 //INTEGER
2581 template MySetOfInt t_msetofiValueDiffType(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
2582 with { erroneous ([0]) "value:= 1.414"; erroneous ([2]) "value:= true" };
2583 template MySetOfInt t_msetofiValueDiffTypeRaw(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
2584 with { erroneous ([0]) "value(raw):= '0101FF'O"; erroneous ([2]) "value:= true" };
2585 template MySetOfInt t_msetofiBeforeOmit2(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
2586 with { erroneous ([2]) "before:= omit all" };
2587 template MySetOfInt t_msetofiIntValueBeforeOmit2(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
2588 with { erroneous ([2]) "before:= omit all"; erroneous ([2]) "value:= 2011"};
2589 template MySetOfInt t_msetofiFloatValueBeforeOmit2(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
2590 with { erroneous ([2]) "before:= omit all"; erroneous ([2]) "value:= 0.1"};
2591 template MySetOfInt t_msetofiBeforeOmit1(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
2592 with { erroneous ([1]) "before:= omit all" };
2593 template MySetOfInt t_msetofiIntValueBeforeOmit1(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
2594 with { erroneous ([1]) "before:= omit all"; erroneous ([1]) "value:= 2011"};
2595 template MySetOfInt t_msetofiFloatValueBeforeOmit1(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
2596 with { erroneous ([1]) "before:= omit all"; erroneous ([1]) "value:= 0.1"};
2597 template MySetOfInt t_msetofiFloatValueBeforeOmit1_2(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
2598 with { erroneous ([1]) "before:= omit all"; erroneous ([2]) "value:= 0.1"};
2599
2600 template MySetOfInt t_msetofiAfterOmit1(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
2601 with { erroneous ([1]) "after:= omit all" };
2602 template MySetOfInt t_msetofiIntValueAfterOmit1(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
2603 with { erroneous ([1]) "after:= omit all"; erroneous ([1]) "value:= 2011"};
2604 template MySetOfInt t_msetofiFloatValueAfterOmit1(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
2605 with { erroneous ([1]) "after:= omit all"; erroneous ([1]) "value:= 0.1"};
2606 template MySetOfInt t_msetofiFloatValueAfterOmit1_2(integer p_i, integer p_j, integer p_k) := { p_i, p_j, p_k }
2607 with { erroneous ([1]) "after:= omit all"; erroneous ([0]) "value:= 0.1"};
2608 //MyEnum
2609 template MySetOfMyEnum t_msetofeValueDiffType(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
2610 with { erroneous ([0]) "value:= 1.414"; erroneous ([2]) "value:= true" };
2611 template MySetOfMyEnum t_msetofeValueDiffTypeRaw(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
2612 with { erroneous ([0]) "value(raw):= '0101FF'O"; erroneous ([2]) "value:= true" };
2613 template MySetOfMyEnum t_msetofeBeforeOmit2(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
2614 with { erroneous ([2]) "before:= omit all" };
2615 template MySetOfMyEnum t_msetofeIntValueBeforeOmit2(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
2616 with { erroneous ([2]) "before:= omit all"; erroneous ([2]) "value:= 2011"};
2617 template MySetOfMyEnum t_msetofeFloatValueBeforeOmit2(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
2618 with { erroneous ([2]) "before:= omit all"; erroneous ([2]) "value:= 0.1"};
2619 template MySetOfMyEnum t_msetofeBeforeOmit1(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
2620 with { erroneous ([1]) "before:= omit all" };
2621 template MySetOfMyEnum t_msetofeIntValueBeforeOmit1(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
2622 with { erroneous ([1]) "before:= omit all"; erroneous ([1]) "value:= 2011"};
2623 template MySetOfMyEnum t_msetofeFloatValueBeforeOmit1(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
2624 with { erroneous ([1]) "before:= omit all"; erroneous ([1]) "value:= 0.1"};
2625 template MySetOfMyEnum t_msetofeFloatValueBeforeOmit1_2(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
2626 with { erroneous ([1]) "before:= omit all"; erroneous ([2]) "value:= 0.1"};
2627
2628 template MySetOfMyEnum t_msetofeAfterOmit1(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
2629 with { erroneous ([1]) "after:= omit all" };
2630 template MySetOfMyEnum t_msetofeIntValueAfterOmit1(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
2631 with { erroneous ([1]) "after:= omit all"; erroneous ([1]) "value:= 2011"};
2632 template MySetOfMyEnum t_msetofeFloatValueAfterOmit1(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
2633 with { erroneous ([1]) "after:= omit all"; erroneous ([1]) "value:= 0.1"};
2634 template MySetOfMyEnum t_msetofeFloatValueAfterOmit1_2(MyEnum p_i, MyEnum p_j, MyEnum p_k) := { p_i, p_j, p_k }
2635 with { erroneous ([1]) "after:= omit all"; erroneous ([0]) "value:= 0.1"};
2636 //Real (float):
2637 template MySetOfReal t_msetofrValueDiffType(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
2638 with { erroneous ([0]) "value:= 1.414"; erroneous ([2]) "value:= true" };
2639 template MySetOfReal t_msetofrValueDiffTypeRaw(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
2640 with { erroneous ([0]) "value(raw):= '0101FF'O"; erroneous ([2]) "value:= true" };
2641 template MySetOfReal t_msetofrBeforeOmit2(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
2642 with { erroneous ([2]) "before:= omit all" };
2643 template MySetOfReal t_msetofrIntValueBeforeOmit2(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
2644 with { erroneous ([2]) "before:= omit all"; erroneous ([2]) "value:= 2011"};
2645 template MySetOfReal t_msetofrFloatValueBeforeOmit2(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
2646 with { erroneous ([2]) "before:= omit all"; erroneous ([2]) "value:= 0.1"};
2647 template MySetOfReal t_msetofrBeforeOmit1(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
2648 with { erroneous ([1]) "before:= omit all" };
2649 template MySetOfReal t_msetofrIntValueBeforeOmit1(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
2650 with { erroneous ([1]) "before:= omit all"; erroneous ([1]) "value:= 2011"};
2651 template MySetOfReal t_msetofrFloatValueBeforeOmit1(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
2652 with { erroneous ([1]) "before:= omit all"; erroneous ([1]) "value:= 0.1"};
2653 template MySetOfReal t_msetofrFloatValueBeforeOmit1_2(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
2654 with { erroneous ([1]) "before:= omit all"; erroneous ([2]) "value:= 0.1"};
2655
2656 template MySetOfReal t_msetofrAfterOmit1(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
2657 with { erroneous ([1]) "after:= omit all" };
2658 template MySetOfReal t_msetofrIntValueAfterOmit1(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
2659 with { erroneous ([1]) "after:= omit all"; erroneous ([1]) "value:= 2011"};
2660 template MySetOfReal t_msetofrFloatValueAfterOmit1(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
2661 with { erroneous ([1]) "after:= omit all"; erroneous ([1]) "value:= 0.1"};
2662 template MySetOfReal t_msetofrFloatValueAfterOmit1_2(float p_i, float p_j, float p_k) := { p_i, p_j, p_k }
2663 with { erroneous ([1]) "after:= omit all"; erroneous ([0]) "value:= 0.1"};
2664 //more complex:
2665 template MySetOfSeqSeqIntSeqInt2SeqReal2 t_msetofssisi2sr2_omitj(template MySeqSeqIntSeqInt2SeqReal2 p_s1,template MySeqSeqIntSeqInt2SeqReal2 p_s2) :={ p_s1, p_s2}
2666 with { erroneous([0].jkl.jk.j) "value:=omit" }
2667
2668 template MySetOfSeqSeqIntSeqInt2SeqReal2 t_msetofssisi2sr2_beforeomitj(template MySeqSeqIntSeqInt2SeqReal2 p_s1,template MySeqSeqIntSeqInt2SeqReal2 p_s2) :={ p_s1, p_s2}
2669 with { erroneous([0].jkl.jk.j) "before:=omit all" erroneous([1].jkl.jk.i) "after:=omit all"}
2670
2671 template MySetOfSeqSeqIntSeqInt2SeqReal2 t_msetofssisi2sr2_beforeafteromit(
2672 template MySeqSeqIntSeqInt2SeqReal2 p_s1,template MySeqSeqIntSeqInt2SeqReal2 p_s2) :={ p_s1, p_s2}
2673 with { erroneous([0].jkl.jk.j) "before:=omit all" erroneous([1].jkl.jk.i) "after:=omit all"}
2674
2675 template MySetOfSeqSeqIntSeqInt2SeqReal2 t_msetofssisi2sr2_arglist_omit(
2676 template MySeqSeqIntSeqInt2SeqReal2 p_s1,template MySeqSeqIntSeqInt2SeqReal2 p_s2) :={ p_s1, p_s2}
2677 with { erroneous([0].jkl.i, [0].jkl.jk.j, [0].xy.x) "value:=omit" erroneous([1].jkl.jk.i, [1].xy.x) "after:=omit all"}
2678
2679 template MySetOfSeqSeqIntSeqInt2SeqReal2 t_msetofssisi2sr2_arglist_afteromit(
2680 template MySeqSeqIntSeqInt2SeqReal2 p_s1,template MySeqSeqIntSeqInt2SeqReal2 p_s2) :={ p_s1, p_s2}
2681 with { erroneous([0].jkl.jk.i, [0].xy.x) "after:=omit all" erroneous([1].jkl.jk.i, [1].xy.x) "after:=omit all"}
2682
2683 template MySetOfSeqSeqIntSeqInt2SeqReal2 t_msetofssisi2sr2_arglist_beforeomit(
2684 template MySeqSeqIntSeqInt2SeqReal2 p_s1,template MySeqSeqIntSeqInt2SeqReal2 p_s2) :={ p_s1, p_s2}
2685 with { erroneous([0].jkl.jk.j, [0].xy.y) "before:=omit all" erroneous([1].jkl.jk.i, [1].xy.x) "after:=omit all"}
2686 //============ Testcases====================
2687 //Testcase of same type
2688 testcase tc_MySetOfBoolValueSameType1() runs on MyComp {
2689 f_compareAndVerdict(
2690 encode_mySetOfBool(valueof(t_msetofbValueSameType(false, false,false))),
2691 encode_mySetOfBool(valueof(t_msetofb(true, false, true))));
2692 }
2693
2694 testcase tc_MySetOfBoolValueSameType2() runs on MyComp {
2695 f_compareAndVerdict(
2696 encode_mySetOfBool(valueof(t_msetofbValueSameType(true, true,true))),
2697 encode_mySetOfBool(valueof(t_msetofb(true, true, true))));
2698 }
2699
2700 testcase tc_MySetOfBoolValueDiffType() runs on MyComp {
2701 var MySetOfMyUnionBT vl_expected :={ {r:=1.414}, {b:=true}, {i:=2011}};
2702 f_compareAndVerdict(
2703 encode_mySetOfBool(valueof(t_msetofbValueDiffType(true, true,true))),
2704 encode_mySetOfMyUnionBT( vl_expected ));
2705 }
2706
2707 testcase tc_MySetOfBoolValueRaw() runs on MyComp {
2708 var MySetOfMyUnionBT vl_expected :={ {i:=10}, {b:=true}, {i:=2011}};
2709 f_compareAndVerdict(
2710 encode_mySetOfBool(valueof(t_msetofbValueDiffTypeRaw(true, true,true))),
2711 encode_mySetOfMyUnionBT( vl_expected ));
2712 //02010A i=10
2713 }
2714
2715 testcase tc_MySetOfBoolValueOmit() runs on MyComp {
2716 var MySetOfMyUnionBT vl_expected :={ {b:=true} };
2717 f_compareAndVerdict(
2718 encode_mySetOfBool(valueof(t_msetofbValueOmit(false, false,true))),
2719 encode_mySetOfMyUnionBT( vl_expected ));
2720 }
2721
2722 testcase tc_MySetOfBoolAfterOmit() runs on MyComp {
2723 var MySetOfMyUnionBT vl_expected :={ {b:=false} };
2724 f_compareAndVerdict(
2725 encode_mySetOfBool(valueof(t_msetofbAfterOmit(false, true,true))),
2726 encode_mySetOfMyUnionBT( vl_expected ));
2727 }
2728
2729 testcase tc_MySetOfBoolValueAfterOmit() runs on MyComp {
2730 var MySetOfMyUnionBT vl_expected :={ {b:=true} };
2731 f_compareAndVerdict(
2732 encode_mySetOfBool(valueof(t_msetofbValueAfterOmit(false, false,false))),
2733 encode_mySetOfMyUnionBT( vl_expected ));
2734 }
2735
2736 testcase tc_MySetOfBoolBeforeOmit2() runs on MyComp {
2737 var MySetOfMyUnionBT vl_expected :={ {b:=true} };
2738 f_compareAndVerdict(
2739 encode_mySetOfBool(valueof(t_msetofbBeforeOmit2(false, false,true))),
2740 encode_mySetOfMyUnionBT( vl_expected ));
2741 }
2742
2743 testcase tc_MySetOfBoolValueBeforeOmit2() runs on MyComp {
2744 var MySetOfMyUnionBT vl_expected :={ {b:=true} };
2745 f_compareAndVerdict(
2746 encode_mySetOfBool(valueof(t_msetofbValueBeforeOmit2(false, false,false))),
2747 encode_mySetOfMyUnionBT( vl_expected ));
2748 }
2749
2750 testcase tc_MySetOfBoolBeforeOmit1() runs on MyComp {
2751 var MySetOfMyUnionBT vl_expected :={ {b:=false},{b:=true} };
2752 f_compareAndVerdict(
2753 encode_mySetOfBool(valueof(t_msetofbBeforeOmit1(true, false,true))),
2754 encode_mySetOfMyUnionBT( vl_expected ));
2755 }
2756
2757 testcase tc_MySetOfBoolValueBeforeOmit1() runs on MyComp {
2758 var MySetOfMyUnionBT vl_expected :={ {b:=true},{b:=false} };
2759 f_compareAndVerdict(
2760 encode_mySetOfBool(valueof(t_msetofbValueBeforeOmit1(false, false,false))),
2761 encode_mySetOfMyUnionBT( vl_expected ));
2762 }
2763 //NULL
2764 testcase tc_MySetOfNullValueDiffType() runs on MyComp {
2765 var MySetOfMyUnionBT vl_expected :={ {r:=1.414}, {n:=NULL}, {i:=2011}};
2766 f_compareAndVerdict(
2767 encode_mySetOfNull(valueof(t_msetofnValueDiffType)),
2768 encode_mySetOfMyUnionBT( vl_expected ));
2769 }
2770 testcase tc_MySetOfNullValueDiffTypeRaw() runs on MyComp {
2771 var MySetOfMyUnionBT vl_expected :={ {i:=10}, {n:=NULL}, {i:=2011}};
2772 f_compareAndVerdict(
2773 encode_mySetOfNull(valueof(t_msetofnValueDiffTypeRaw)),
2774 encode_mySetOfMyUnionBT( vl_expected ));
2775 }
2776 testcase tc_MySetOfNullBeforeOmit2() runs on MyComp {
2777 var MySetOfMyUnionBT vl_expected :={ {n:=NULL}};
2778 f_compareAndVerdict(
2779 encode_mySetOfNull(valueof(t_msetofnBeforeOmit2)),
2780 encode_mySetOfMyUnionBT( vl_expected ));
2781 }
2782 testcase tc_MySetOfNullIntValueBeforeOmit2() runs on MyComp {
2783 var MySetOfMyUnionBT vl_expected :={ {i:=2011}};
2784 f_compareAndVerdict(
2785 encode_mySetOfNull(valueof(t_msetofnIntValueBeforeOmit2)),
2786 encode_mySetOfMyUnionBT( vl_expected ));
2787 }
2788 testcase tc_MySetOfNullFloatValueBeforeOmit2() runs on MyComp {
2789 var MySetOfMyUnionBT vl_expected :={ {r:=0.1}};
2790 f_compareAndVerdict(
2791 encode_mySetOfNull(valueof(t_msetofnFloatValueBeforeOmit2)),
2792 encode_mySetOfMyUnionBT( vl_expected ));
2793 }
2794 testcase tc_MySetOfNullBeforeOmit1() runs on MyComp {
2795 var MySetOfMyUnionBT vl_expected :={ {n:=NULL},{n:=NULL} };
2796 f_compareAndVerdict(
2797 encode_mySetOfNull(valueof(t_msetofnBeforeOmit1)),
2798 encode_mySetOfMyUnionBT( vl_expected ));
2799 }
2800 testcase tc_MySetOfNullIntValueBeforeOmit1() runs on MyComp {
2801 var MySetOfMyUnionBT vl_expected :={ {i:=2011}, {n:=NULL}};
2802 f_compareAndVerdict(
2803 encode_mySetOfNull(valueof(t_msetofnIntValueBeforeOmit1)),
2804 encode_mySetOfMyUnionBT( vl_expected ));
2805 }
2806 testcase tc_MySetOfNullFloatValueBeforeOmit1() runs on MyComp {
2807 var MySetOfMyUnionBT vl_expected :={ {r:=0.1},{n:=NULL}};
2808 f_compareAndVerdict(
2809 encode_mySetOfNull(valueof(t_msetofnFloatValueBeforeOmit1)),
2810 encode_mySetOfMyUnionBT( vl_expected ));
2811 }
2812 testcase tc_MySetOfNullFloatValueBeforeOmit1_2() runs on MyComp {
2813 var MySetOfMyUnionBT vl_expected :={ {n:=NULL},{r:=0.1}};
2814 f_compareAndVerdict(
2815 encode_mySetOfNull(valueof(t_msetofnFloatValueBeforeOmit1_2)),
2816 encode_mySetOfMyUnionBT( vl_expected ));
2817 }
2818
2819 testcase tc_MySetOfNullAfterOmit1() runs on MyComp {
2820 var MySetOfMyUnionBT vl_expected :={ {n:=NULL}, {n:=NULL} };
2821 f_compareAndVerdict(
2822 encode_mySetOfNull(valueof(t_msetofnAfterOmit1)),
2823 encode_mySetOfMyUnionBT( vl_expected ));
2824 }
2825 testcase tc_MySetOfNullIntValueAfterOmit1() runs on MyComp {
2826 var MySetOfMyUnionBT vl_expected :={ {n:=NULL},{i:=2011}};
2827 f_compareAndVerdict(
2828 encode_mySetOfNull(valueof(t_msetofnIntValueAfterOmit1)),
2829 encode_mySetOfMyUnionBT( vl_expected ));
2830 }
2831 testcase tc_MySetOfNullFloatValueAfterOmit1() runs on MyComp {
2832 var MySetOfMyUnionBT vl_expected :={ {n:=NULL},{r:=0.1}};
2833 f_compareAndVerdict(
2834 encode_mySetOfNull(valueof(t_msetofnFloatValueAfterOmit1)),
2835 encode_mySetOfMyUnionBT( vl_expected ));
2836 }
2837 testcase tc_MySetOfNullFloatValueAfterOmit1_2() runs on MyComp {
2838 var MySetOfMyUnionBT vl_expected :={ {r:=0.1},{n:=NULL}};
2839 f_compareAndVerdict(
2840 encode_mySetOfNull(valueof(t_msetofnFloatValueAfterOmit1)),
2841 encode_mySetOfMyUnionBT( vl_expected ));
2842 }
2843 //INTEGER
2844 testcase tc_MySetOfIntValueDiffType() runs on MyComp {
2845 var MySetOfMyUnionBT vl_expected :={ {r:=1.414}, {i:=2}, {b:=true}};
2846 f_compareAndVerdict(
2847 encode_mySetOfInt(valueof(t_msetofiValueDiffType(1,2,3))),
2848 encode_mySetOfMyUnionBT( vl_expected ));
2849 }
2850 testcase tc_MySetOfIntValueDiffTypeRaw() runs on MyComp {
2851 var MySetOfMyUnionBT vl_expected :={ {b:=true}, {i:=2}, {b:=true}};
2852 f_compareAndVerdict(
2853 encode_mySetOfInt(valueof(t_msetofiValueDiffTypeRaw(1,2,3))),
2854 encode_mySetOfMyUnionBT( vl_expected ));
2855 }
2856 testcase tc_MySetOfIntBeforeOmit2() runs on MyComp {
2857 var MySetOfMyUnionBT vl_expected :={ {i:=3} };
2858 f_compareAndVerdict(
2859 encode_mySetOfInt(valueof(t_msetofiBeforeOmit2(1,2,3))),
2860 encode_mySetOfMyUnionBT( vl_expected ));
2861 }
2862 testcase tc_MySetOfIntIntValueBeforeOmit2() runs on MyComp {
2863 var MySetOfMyUnionBT vl_expected :={ {i:=2011}};
2864 f_compareAndVerdict(
2865 encode_mySetOfInt(valueof(t_msetofiIntValueBeforeOmit2(1,2,3))),
2866 encode_mySetOfMyUnionBT( vl_expected ));
2867 }
2868 testcase tc_MySetOfIntFloatValueBeforeOmit2() runs on MyComp {
2869 var MySetOfMyUnionBT vl_expected :={ {r:=0.1}};
2870 f_compareAndVerdict(
2871 encode_mySetOfInt(valueof(t_msetofiFloatValueBeforeOmit2(1,2,3))),
2872 encode_mySetOfMyUnionBT( vl_expected ));
2873 }
2874 testcase tc_MySetOfIntBeforeOmit1() runs on MyComp {
2875 var MySetOfMyUnionBT vl_expected :={ {i:=2},{i:=3} };
2876 f_compareAndVerdict(
2877 encode_mySetOfInt(valueof(t_msetofiBeforeOmit1(1,2,3))),
2878 encode_mySetOfMyUnionBT( vl_expected ));
2879 }
2880 testcase tc_MySetOfIntIntValueBeforeOmit1() runs on MyComp {
2881 var MySetOfMyUnionBT vl_expected :={ {i:=2011}, {i:=3}};
2882 f_compareAndVerdict(
2883 encode_mySetOfInt(valueof(t_msetofiIntValueBeforeOmit1(1,2,3))),
2884 encode_mySetOfMyUnionBT( vl_expected ));
2885 }
2886 testcase tc_MySetOfIntFloatValueBeforeOmit1() runs on MyComp {
2887 var MySetOfMyUnionBT vl_expected :={ {r:=0.1},{i:=3}};
2888 f_compareAndVerdict(
2889 encode_mySetOfInt(valueof(t_msetofiFloatValueBeforeOmit1(1,2,3))),
2890 encode_mySetOfMyUnionBT( vl_expected ));
2891 }
2892 testcase tc_MySetOfIntFloatValueBeforeOmit1_2() runs on MyComp {
2893 var MySetOfMyUnionBT vl_expected :={ {i:=2},{r:=0.1}};
2894 f_compareAndVerdict(
2895 encode_mySetOfInt(valueof(t_msetofiFloatValueBeforeOmit1_2(1,2,3))),
2896 encode_mySetOfMyUnionBT( vl_expected ));
2897 }
2898
2899 testcase tc_MySetOfIntAfterOmit1() runs on MyComp {
2900 var MySetOfMyUnionBT vl_expected :={ {i:=1}, {i:=2} } ;
2901 f_compareAndVerdict(
2902 encode_mySetOfInt(valueof(t_msetofiAfterOmit1(1,2,3))),
2903 encode_mySetOfMyUnionBT( vl_expected ));
2904 }
2905 testcase tc_MySetOfIntIntValueAfterOmit1() runs on MyComp {
2906 var MySetOfMyUnionBT vl_expected :={ {i:=1},{i:=2011}};
2907 f_compareAndVerdict(
2908 encode_mySetOfInt(valueof(t_msetofiIntValueAfterOmit1(1,2,3))),
2909 encode_mySetOfMyUnionBT( vl_expected ));
2910 }
2911 testcase tc_MySetOfIntFloatValueAfterOmit1() runs on MyComp {
2912 var MySetOfMyUnionBT vl_expected :={ {i:=1},{r:=0.1}};
2913 f_compareAndVerdict(
2914 encode_mySetOfInt(valueof(t_msetofiFloatValueAfterOmit1(1,2,3))),
2915 encode_mySetOfMyUnionBT( vl_expected ));
2916 }
2917 testcase tc_MySetOfIntFloatValueAfterOmit1_2() runs on MyComp {
2918 var MySetOfMyUnionBT vl_expected :={ {r:=0.1},{i:=2}};
2919 f_compareAndVerdict(
2920 encode_mySetOfInt(valueof(t_msetofiFloatValueAfterOmit1_2(1,2,3))),
2921 encode_mySetOfMyUnionBT( vl_expected ));
2922 }
2923 //MyEnum
2924 testcase tc_MySetOfMyEnumValueDiffType() runs on MyComp {
2925 var MySetOfMyUnionBT vl_expected :={ {r:=1.414}, {e:=second}, {b:=true}};
2926 f_compareAndVerdict(
2927 encode_mySetOfMyEnum(valueof(t_msetofeValueDiffType(first, second, third))),
2928 encode_mySetOfMyUnionBT( vl_expected ));
2929 }
2930 testcase tc_MySetOfMyEnumValueDiffTypeRaw() runs on MyComp {
2931 var MySetOfMyUnionBT vl_expected :={ {b:=true}, {e:=second}, {b:=true}};
2932 f_compareAndVerdict(
2933 encode_mySetOfMyEnum(valueof(t_msetofeValueDiffTypeRaw(first, second, third))),
2934 encode_mySetOfMyUnionBT( vl_expected ));
2935 }
2936 testcase tc_MySetOfMyEnumBeforeOmit2() runs on MyComp {
2937 var MySetOfMyUnionBT vl_expected :={ {e:=third} };
2938 f_compareAndVerdict(
2939 encode_mySetOfMyEnum(valueof(t_msetofeBeforeOmit2(first, second, third))),
2940 encode_mySetOfMyUnionBT( vl_expected ));
2941 }
2942 testcase tc_MySetOfMyEnumIntValueBeforeOmit2() runs on MyComp {
2943 var MySetOfMyUnionBT vl_expected :={ {i:=2011}};
2944 f_compareAndVerdict(
2945 encode_mySetOfMyEnum(valueof(t_msetofeIntValueBeforeOmit2(first, second, third))),
2946 encode_mySetOfMyUnionBT( vl_expected ));
2947 }
2948 testcase tc_MySetOfMyEnumFloatValueBeforeOmit2() runs on MyComp {
2949 var MySetOfMyUnionBT vl_expected :={ {r:=0.1}};
2950 f_compareAndVerdict(
2951 encode_mySetOfMyEnum(valueof(t_msetofeFloatValueBeforeOmit2(first, second, third))),
2952 encode_mySetOfMyUnionBT( vl_expected ));
2953 }
2954 testcase tc_MySetOfMyEnumBeforeOmit1() runs on MyComp {
2955 var MySetOfMyUnionBT vl_expected :={ {e:=second},{e:=third} };
2956 f_compareAndVerdict(
2957 encode_mySetOfMyEnum(valueof(t_msetofeBeforeOmit1(first, second, third))),
2958 encode_mySetOfMyUnionBT( vl_expected ));
2959 }
2960 testcase tc_MySetOfMyEnumIntValueBeforeOmit1() runs on MyComp {
2961 var MySetOfMyUnionBT vl_expected :={ {i:=2011}, {e:=third}};
2962 f_compareAndVerdict(
2963 encode_mySetOfMyEnum(valueof(t_msetofeIntValueBeforeOmit1(first, second, third))),
2964 encode_mySetOfMyUnionBT( vl_expected ));
2965 }
2966 testcase tc_MySetOfMyEnumFloatValueBeforeOmit1() runs on MyComp {
2967 var MySetOfMyUnionBT vl_expected :={ {r:=0.1},{e:=third}};
2968 f_compareAndVerdict(
2969 encode_mySetOfMyEnum(valueof(t_msetofeFloatValueBeforeOmit1(first, second, third))),
2970 encode_mySetOfMyUnionBT( vl_expected ));
2971 }
2972 testcase tc_MySetOfMyEnumFloatValueBeforeOmit1_2() runs on MyComp {
2973 var MySetOfMyUnionBT vl_expected :={ {e:=second},{r:=0.1}};
2974 f_compareAndVerdict(
2975 encode_mySetOfMyEnum(valueof(t_msetofeFloatValueBeforeOmit1_2(first, second, third))),
2976 encode_mySetOfMyUnionBT( vl_expected ));
2977 }
2978
2979 testcase tc_MySetOfMyEnumAfterOmit1() runs on MyComp {
2980 var MySetOfMyUnionBT vl_expected :={ {e:=first}, {e:=second} } ;
2981 f_compareAndVerdict(
2982 encode_mySetOfMyEnum(valueof(t_msetofeAfterOmit1(first, second, third))),
2983 encode_mySetOfMyUnionBT( vl_expected ));
2984 }
2985 testcase tc_MySetOfMyEnumIntValueAfterOmit1() runs on MyComp {
2986 var MySetOfMyUnionBT vl_expected :={ {e:=first},{i:=2011}};
2987 f_compareAndVerdict(
2988 encode_mySetOfMyEnum(valueof(t_msetofeIntValueAfterOmit1(first, second, third))),
2989 encode_mySetOfMyUnionBT( vl_expected ));
2990 }
2991 testcase tc_MySetOfMyEnumFloatValueAfterOmit1() runs on MyComp {
2992 var MySetOfMyUnionBT vl_expected :={ {e:=first},{r:=0.1}};
2993 f_compareAndVerdict(
2994 encode_mySetOfMyEnum(valueof(t_msetofeFloatValueAfterOmit1(first, second, third))),
2995 encode_mySetOfMyUnionBT( vl_expected ));
2996 }
2997 testcase tc_MySetOfMyEnumFloatValueAfterOmit1_2() runs on MyComp {
2998 var MySetOfMyUnionBT vl_expected :={ {r:=0.1},{e:=second}};
2999 f_compareAndVerdict(
3000 encode_mySetOfMyEnum(valueof(t_msetofeFloatValueAfterOmit1_2(first, second, third))),
3001 encode_mySetOfMyUnionBT( vl_expected ));
3002 }
3003
3004 //Real (Float)
3005 testcase tc_MySetOfRealValueDiffType() runs on MyComp {
3006 var MySetOfMyUnionBT vl_expected :={ {r:=1.414}, {r:=2.0}, {b:=true}};
3007 f_compareAndVerdict(
3008 encode_mySetOfReal(valueof(t_msetofrValueDiffType(1.0, 2.0, 3.0))),
3009 encode_mySetOfMyUnionBT( vl_expected ));
3010 }
3011 testcase tc_MySetOfRealValueDiffTypeRaw() runs on MyComp {
3012 var MySetOfMyUnionBT vl_expected :={ {b:=true}, {r:=2.0}, {b:=true}};
3013 f_compareAndVerdict(
3014 encode_mySetOfReal(valueof(t_msetofrValueDiffTypeRaw(1.0, 2.0, 3.0))),
3015 encode_mySetOfMyUnionBT( vl_expected ));
3016 }
3017 testcase tc_MySetOfRealBeforeOmit2() runs on MyComp {
3018 var MySetOfMyUnionBT vl_expected :={ {r:=3.0} };
3019 f_compareAndVerdict(
3020 encode_mySetOfReal(valueof(t_msetofrBeforeOmit2(1.0, 2.0, 3.0))),
3021 encode_mySetOfMyUnionBT( vl_expected ));
3022 }
3023 testcase tc_MySetOfRealIntValueBeforeOmit2() runs on MyComp {
3024 var MySetOfMyUnionBT vl_expected :={ {i:=2011}};
3025 f_compareAndVerdict(
3026 encode_mySetOfReal(valueof(t_msetofrIntValueBeforeOmit2(1.0, 2.0, 3.0))),
3027 encode_mySetOfMyUnionBT( vl_expected ));
3028 }
3029 testcase tc_MySetOfRealFloatValueBeforeOmit2() runs on MyComp {
3030 var MySetOfMyUnionBT vl_expected :={ {r:=0.1}};
3031 f_compareAndVerdict(
3032 encode_mySetOfReal(valueof(t_msetofrFloatValueBeforeOmit2(1.0, 2.0, 3.0))),
3033 encode_mySetOfMyUnionBT( vl_expected ));
3034 }
3035 testcase tc_MySetOfRealBeforeOmit1() runs on MyComp {
3036 var MySetOfMyUnionBT vl_expected :={ {r:=2.0},{r:=3.0} };
3037 f_compareAndVerdict(
3038 encode_mySetOfReal(valueof(t_msetofrBeforeOmit1(1.0, 2.0, 3.0))),
3039 encode_mySetOfMyUnionBT( vl_expected ));
3040 }
3041 testcase tc_MySetOfRealIntValueBeforeOmit1() runs on MyComp {
3042 var MySetOfMyUnionBT vl_expected :={ {i:=2011}, {r:=3.0}};
3043 f_compareAndVerdict(
3044 encode_mySetOfReal(valueof(t_msetofrIntValueBeforeOmit1(1.0, 2.0, 3.0))),
3045 encode_mySetOfMyUnionBT( vl_expected ));
3046 }
3047 testcase tc_MySetOfRealFloatValueBeforeOmit1() runs on MyComp {
3048 var MySetOfMyUnionBT vl_expected :={ {r:=0.1},{r:=3.0}};
3049 f_compareAndVerdict(
3050 encode_mySetOfReal(valueof(t_msetofrFloatValueBeforeOmit1(1.0, 2.0, 3.0))),
3051 encode_mySetOfMyUnionBT( vl_expected ));
3052 }
3053 testcase tc_MySetOfRealFloatValueBeforeOmit1_2() runs on MyComp {
3054 var MySetOfMyUnionBT vl_expected :={ {r:=2.0},{r:=0.1}};
3055 f_compareAndVerdict(
3056 encode_mySetOfReal(valueof(t_msetofrFloatValueBeforeOmit1_2(1.0, 2.0, 3.0))),
3057 encode_mySetOfMyUnionBT( vl_expected ));
3058 }
3059
3060 testcase tc_MySetOfRealAfterOmit1() runs on MyComp {
3061 var MySetOfMyUnionBT vl_expected :={ {r:=1.0}, {r:=2.0} } ;
3062 f_compareAndVerdict(
3063 encode_mySetOfReal(valueof(t_msetofrAfterOmit1(1.0, 2.0, 3.0))),
3064 encode_mySetOfMyUnionBT( vl_expected ));
3065 }
3066 testcase tc_MySetOfRealIntValueAfterOmit1() runs on MyComp {
3067 var MySetOfMyUnionBT vl_expected :={ {r:=1.0},{i:=2011}};
3068 f_compareAndVerdict(
3069 encode_mySetOfReal(valueof(t_msetofrIntValueAfterOmit1(1.0, 2.0, 3.0))),
3070 encode_mySetOfMyUnionBT( vl_expected ));
3071 }
3072 testcase tc_MySetOfRealFloatValueAfterOmit1() runs on MyComp {
3073 var MySetOfMyUnionBT vl_expected :={ {r:=1.0},{r:=0.1}};
3074 f_compareAndVerdict(
3075 encode_mySetOfReal(valueof(t_msetofrFloatValueAfterOmit1(1.0, 2.0, 3.0))),
3076 encode_mySetOfMyUnionBT( vl_expected ));
3077 }
3078 testcase tc_MySetOfRealFloatValueAfterOmit1_2() runs on MyComp {
3079 var MySetOfMyUnionBT vl_expected :={ {r:=0.1},{r:=2.0}};
3080 f_compareAndVerdict(
3081 encode_mySetOfReal(valueof(t_msetofrFloatValueAfterOmit1_2(1.0, 2.0, 3.0))),
3082 encode_mySetOfMyUnionBT( vl_expected ));
3083 }
3084
3085 }//SetOf
3086
3087
3088
3089 group Union {
3090
3091 testcase tc_myUnionBasicTypes_boolean3() runs on MyComp {
3092 //0. just for fun:
3093 var MyUnionBasicTypes vl_mubt:={b:=true};
3094 //'0101FF'O: T:01 (UNIV,P,BOOLEAN), L:01, V:'11111111'O (TRUE)
3095 f_compareAndVerdict(encode_myUnionBasicTypes(vl_mubt), '0101FF'O );
3096
3097 //Compilation fault (ok):
3098 //log( "encoded value: ", encode_myUnionBasicTypes( valueof(t_mubt_boolean2( true ))));
3099
3100 vl_mubt:={b:=false};
3101 f_compareAndVerdict(
3102 encode_myUnionBasicTypes(valueof(t_mubt_boolean3(true))),
3103 encode_myUnionBasicTypes( vl_mubt ) );
3104 }
3105
3106 testcase tc_myUnionBasicTypes_booleanRaw() runs on MyComp {
3107 f_compareAndVerdict( encode_myUnionBasicTypes(valueof(t_mubt_booleanRaw(true))), 'ABBA'O)
3108 }//tc_
3109
3110
3111 testcase tc_myUnionBasicTypes_nullRaw() runs on MyComp {
3112 f_compareAndVerdict( encode_myUnionBasicTypes(valueof(t_mubt_nullRaw)), 'ABBA'O)
3113 }//tc_
3114
3115 testcase tc_myUnionBasicTypes_integerRaw() runs on MyComp {
3116 f_compareAndVerdict(encode_myUnionBasicTypes(valueof(t_mubt_integerRaw(129))),'ABBA'O)
3117 }//tc_
3118
3119 testcase tc_myUnionBasicTypes_enumRaw() runs on MyComp {
3120 f_compareAndVerdict(encode_myUnionBasicTypes(valueof(t_mubt_enumRaw(second))), 'ABBA'O )
3121 }//tc_
3122
3123 testcase tc_myUnionBasicTypes_realRaw() runs on MyComp {
3124 f_compareAndVerdict(encode_myUnionBasicTypes(valueof(t_mubt_realRaw(3.8))), 'ABBA'O )
3125 }//tc_
3126
3127 testcase tc_myUnionBasicTypes_bitstrRaw() runs on MyComp {
3128 f_compareAndVerdict(encode_myUnionBasicTypes(valueof(t_mubt_bitstrRaw('101011111'B))), 'ABBA'O )
3129 }//tc_
3130
3131 testcase tc_myUnionBasicTypes_octetstrRaw() runs on MyComp {
3132 f_compareAndVerdict(encode_myUnionBasicTypes(valueof(t_mubt_octetstrRaw('BABAB0B0'O))), 'ABBA'O )
3133 }//tc_
3134
3135 testcase tc_myUnionBasicTypes_objidRaw() runs on MyComp {
3136 f_compareAndVerdict(encode_myUnionBasicTypes(valueof(t_mubt_objidRaw(objid{ itu_t identified_organization etsi(0) inDomain(1)}))), 'ABBA'O )
3137 }//tc_
3138
3139 testcase tc_myUnionComplexTypes_omit_0_1() runs on MyComp {
3140 var MySeqOfReal vl_expected:= { 3.0 }
3141 f_compareAndVerdict(encode_myUnionComplexTypes(valueof(t_muct_0_1( 1.0,2.0,3.0 ) )), encode_mySeqOfReal(vl_expected));
3142 }//tc_
3143
3144 testcase tc_myUnionComplexTypes_omit_0_2() runs on MyComp {
3145 var MySeqOfReal vl_expected:= { 2.0 }
3146 f_compareAndVerdict(encode_myUnionComplexTypes(valueof(t_muct_0_2( 1.0,2.0,3.0 ) )), encode_mySeqOfReal(vl_expected));
3147 }//tc_
3148
3149 testcase tc_myUnionComplexTypes_omit_1_2() runs on MyComp {
3150 var MySeqOfReal vl_expected:= { 1.0 }
3151 f_compareAndVerdict(encode_myUnionComplexTypes(valueof(t_muct_1_2( 1.0,2.0,3.0 ) )), encode_mySeqOfReal(vl_expected));
3152 }//tc_
3153 testcase tc_myUnionComplexTypes_omit_2_1() runs on MyComp {
3154 var MySeqOfReal vl_expected:= { 1.0 }
3155 f_compareAndVerdict(encode_myUnionComplexTypes(valueof(t_muct_2_1( 1.0,2.0,3.0 ) )), encode_mySeqOfReal(vl_expected));
3156 }//tc_
3157 testcase tc_myUnionComplexTypes_omit_0_1_2() runs on MyComp {
3158 var MySeqOfReal vl_expected:= { }
3159 f_compareAndVerdict(encode_myUnionComplexTypes(valueof(t_muct_0_1_2 ( 10.0,11.0,12.0 ) )), encode_mySeqOfReal(vl_expected));
3160 //log("decoded value:", decode_myUnionComplexTypes('300909070331312E452B30'O));
3161 }//tc_
3162
3163 testcase tc_myUnionComplexTypes_omit_0_2_1() runs on MyComp {
3164 var MySeqOfReal vl_expected:= { }
3165 f_compareAndVerdict(encode_myUnionComplexTypes(valueof(t_muct_0_2_1 ( 1.0,2.0,3.0 ) )), encode_mySeqOfReal(vl_expected));
3166
3167 }//tc_
3168
3169 }//group Union
3170
3171 control {
3172 //SEQUENCE:
3173 execute(tc_mySeqIntOmit()); // <========{ integer }
3174 //execute(tc_mySeqIntBeforeOmit());
3175 //execute(tc_mySeqIntAfterOmit());
3176 execute(tc_mySeqIntValueSameTypeE());
3177 execute(tc_mySeqIntValueSameTypeI());
3178 execute(tc_mySeqIntValueDiffTypeExplicitBool());
3179 execute(tc_mySeqIntValueDiffTypeImplicitBool());
3180 //execute(tc_mySeqIntValueDiffTypeExplicitNull());
3181 //execute(tc_mySeqIntValueDiffTypeImplicitNull());
3182 execute(tc_mySeqIntValueDiffTypeExplicitOctStr());
3183 execute(tc_mySeqIntValueDiffTypeImplicitOctStr());
3184 execute(tc_mySeqIntValueDiffTypeExplicitBitStr());
3185 execute(tc_mySeqIntValueDiffTypeImplicitBitStr());
3186 execute(tc_mySeqIntValueDiffTypeExplicitEnum());
3187 execute(tc_mySeqIntValueDiffTypeExplicitFloat());
3188 execute(tc_mySeqIntValueDiffTypeImplicitFloat());
3189 execute(tc_mySeqIntValueDiffTypeExplicitStr());
3190 //execute(tc_mySeqIntValueDiffTypeImplicitStr());
3191
3192 execute(tc_mySeqIntValueDiffTypeRawOctStr());
3193 execute(tc_mySeqInt2Omiti());//<===== {integer, integer}
3194 execute(tc_mySeqInt2Omitj());
3195 //execute(tc_mySeqInt2BeforeOmiti());
3196 execute(tc_mySeqInt2BeforeOmitj());
3197 execute(tc_mySeqInt2AfterOmiti());
3198 //execute(tc_mySeqInt2AfterOmitj());
3199 execute(tc_mySeqInt2ValueSameTypeE());
3200 execute(tc_mySeqInt2ValueSameTypeI());
3201 execute(tc_mySeqInt2ValueDiffTypeExplicitFloat());
3202 execute(tc_mySeqInt2ValueDiffTypeImplicitFloat());
3203 execute(tc_mySeqInt2ValueDiffTypeExplicitStr());
3204 execute(tc_mySeqInt2ValueDiffTypeExplicitBitStr());
3205 execute(tc_mySeqInt2ValueDiffTypeImplicitBitStr());
3206 execute(tc_mySeqInt2ValueSeqIntV());
3207 execute(tc_mySeqInt2ValueSeqIntOptV());
3208 execute(tc_mySeqInt2ValueSeqIntC());
3209 execute(tc_mySeqInt2ValueSeqInt2OptC());
3210 execute(tc_mySeqInt2ValueSeqInt2OptOmitC());
3211 execute(tc_mySeqInt2ValueSeqInt2iiC());
3212 execute(tc_mySeqInt2ValueSeqInt2ijC());
3213 execute(tc_mySeqInt2ValueSeqInt2jiC());
3214 execute(tc_mySeqInt2ValueSeqInt2jjC());
3215
3216 execute(tc_mySeqIntSeqInt2ValueOmiti()); //=== Sequence { integer, {integer, integer} )
3217 execute(tc_mySeqIntSeqInt2ValueOmitjki());
3218 execute(tc_mySeqIntSeqInt2ValueOmitjkj());
3219
3220 execute(tc_mySeqIntSeqInt2ValueRawjki());
3221 execute(tc_mySeqIntSeqInt2ValueRawjkj());
3222 execute(tc_mySeqIntSeqInt2AfteriBeforej());
3223 //<===== {integer, integer,integer, integer}
3224 execute(tc_mySeqInt4Omiti());
3225 execute(tc_mySeqInt4Omitj());
3226 execute(tc_mySeqInt4Omitk());
3227 execute(tc_mySeqInt4Omitl());
3228 execute(tc_mySeqInt4optOmitl());
3229 execute(tc_mySeqInt4optValueLInteger());
3230 execute(tc_mySeqInt4optBeforeLInteger());
3231 execute(tc_mySeqInt4optAfterLInteger());
3232 execute(tc_mySeqInt4ValueiOctetStr());
3233 execute(tc_mySeqInt4ValuejOctetStr());
3234 execute(tc_mySeqInt4ValueiRaw());execute(tc_mySeqInt4ValuejRaw());execute(tc_mySeqInt4ValuekRaw());execute(tc_mySeqInt4ValuelRaw());
3235 execute(tc_mySeqISKL_ValueSomit());
3236 execute(tc_mySeqISKL_ValueSIomit());
3237 execute(tc_mySeqISKL_ValueSISJomit());
3238 execute(tc_mySeqISKL_ValueSraw());
3239
3240 //===== sequence of sequence of sequence ====
3241 execute(tc_MySeqIntSeqIntSeqInt2SeqReal2_omiti());
3242 execute(tc_MySeqIntSeqIntSeqInt2SeqReal2_omitjkl());
3243 execute(tc_MySeqIntSeqIntSeqInt2SeqReal2_omitxy() );
3244 execute(tc_MySeqIntSeqIntSeqInt2SeqReal2_omitjkll());
3245 execute(tc_MySeqIntSeqIntSeqInt2SeqReal2_valuexy());
3246 execute(tc_MySeqIntSeqIntSeqInt2SeqReal2_valuex_y());//47.
3247 execute(tc_MySeqIntSeqIntSeqInt2SeqReal2_valuex_y());
3248 execute(tc_MySeqIntSeqIntSeqInt2SeqReal2_valuex_y_expr1());
3249 execute(tc_MySeqIntSeqIntSeqInt2SeqReal2_valuex_y_expr2());//50
3250 execute(tc_MySeq_SeqSeqIntSeqInt2SeqReal2_SeqSeqIntSeqInt2SeqReal2_omit());
3251 //======= { boolean, integer, octetstring,enumeration, real }
3252
3253 //Deeper encapsulation: -
3254 //========= SEQUENCE OF=====================
3255 //Bool:
3256 execute(tc_MySeqOfBoolValueSameType1());
3257 execute(tc_MySeqOfBoolValueSameType2());
3258 execute(tc_MySeqOfBoolValueDiffType());
3259 execute(tc_MySeqOfBoolValueRaw());
3260 execute(tc_MySeqOfBoolValueOmit());
3261 execute(tc_MySeqOfBoolAfterOmit());
3262 execute(tc_MySeqOfBoolValueAfterOmit());
3263 execute(tc_MySeqOfBoolBeforeOmit2());
3264 execute(tc_MySeqOfBoolValueBeforeOmit2());
3265 execute(tc_MySeqOfBoolBeforeOmit1());
3266 execute(tc_MySeqOfBoolValueBeforeOmit1());
3267 //NULL:
3268 execute(tc_MySeqOfNullValueDiffType());
3269 execute(tc_MySeqOfNullValueDiffTypeRaw());
3270 execute(tc_MySeqOfNullBeforeOmit2());
3271 execute(tc_MySeqOfNullIntValueBeforeOmit2());
3272 execute(tc_MySeqOfNullFloatValueBeforeOmit2());
3273 execute(tc_MySeqOfNullBeforeOmit1());
3274 execute(tc_MySeqOfNullIntValueBeforeOmit1());
3275 execute(tc_MySeqOfNullFloatValueBeforeOmit1() );
3276 execute(tc_MySeqOfNullFloatValueBeforeOmit1_2());
3277 execute(tc_MySeqOfNullAfterOmit1());
3278 execute(tc_MySeqOfNullIntValueAfterOmit1());
3279 execute(tc_MySeqOfNullFloatValueAfterOmit1() );
3280 execute(tc_MySeqOfNullFloatValueBeforeOmit1_2());
3281 //INTEGER:
3282 execute(tc_MySeqOfIntValueDiffType());
3283 execute(tc_MySeqOfIntValueDiffTypeRaw());
3284 execute(tc_MySeqOfIntBeforeOmit2());
3285 execute(tc_MySeqOfIntIntValueBeforeOmit2());
3286 execute(tc_MySeqOfIntFloatValueBeforeOmit2());
3287 execute(tc_MySeqOfIntBeforeOmit1());
3288 execute(tc_MySeqOfIntIntValueBeforeOmit1());
3289 execute(tc_MySeqOfIntFloatValueBeforeOmit1() );
3290 execute(tc_MySeqOfIntFloatValueBeforeOmit1_2());
3291 execute(tc_MySeqOfIntAfterOmit1());
3292 execute(tc_MySeqOfIntIntValueAfterOmit1());
3293 execute(tc_MySeqOfIntFloatValueAfterOmit1() );
3294 execute(tc_MySeqOfIntFloatValueAfterOmit1_2());
3295 //MyEnum
3296 execute(tc_MySeqOfMyEnumValueDiffType());
3297 execute(tc_MySeqOfMyEnumValueDiffTypeRaw());
3298 execute(tc_MySeqOfMyEnumBeforeOmit2());
3299 execute(tc_MySeqOfMyEnumIntValueBeforeOmit2());
3300 execute(tc_MySeqOfMyEnumFloatValueBeforeOmit2());
3301 execute(tc_MySeqOfMyEnumBeforeOmit1());
3302 execute(tc_MySeqOfMyEnumIntValueBeforeOmit1());
3303 execute(tc_MySeqOfMyEnumFloatValueBeforeOmit1() );
3304 execute(tc_MySeqOfMyEnumFloatValueBeforeOmit1_2());
3305 execute(tc_MySeqOfMyEnumAfterOmit1());
3306 execute(tc_MySeqOfMyEnumIntValueAfterOmit1());
3307 execute(tc_MySeqOfMyEnumFloatValueAfterOmit1() );
3308 execute(tc_MySeqOfMyEnumFloatValueAfterOmit1_2());
3309 //REAL (float)
3310 execute(tc_MySeqOfRealValueDiffType());
3311 execute(tc_MySeqOfRealValueDiffTypeRaw());
3312 execute(tc_MySeqOfRealBeforeOmit2());
3313 execute(tc_MySeqOfRealIntValueBeforeOmit2());
3314 execute(tc_MySeqOfRealFloatValueBeforeOmit2());
3315 execute(tc_MySeqOfRealBeforeOmit1());
3316 execute(tc_MySeqOfRealIntValueBeforeOmit1());
3317 execute(tc_MySeqOfRealFloatValueBeforeOmit1() );
3318 execute(tc_MySeqOfRealFloatValueBeforeOmit1_2());
3319 execute(tc_MySeqOfRealAfterOmit1());
3320 execute(tc_MySeqOfRealIntValueAfterOmit1());
3321 execute(tc_MySeqOfRealFloatValueAfterOmit1() );
3322 execute(tc_MySeqOfRealFloatValueAfterOmit1_2());
3323 //Depth 3-4:
3324 execute(tc_MySeqOf_SeqSeqIntSeqInt2SeqReal2_omitj());
3325 execute(tc_MySeqOf_SeqSeqIntSeqInt2SeqReal2_beforeafteromit());
3326 execute(tc_MySeqOf_SeqSeqIntSeqInt2SeqReal2_arglist_omit());
3327 execute(tc_MySeqOf_SeqSeqIntSeqInt2SeqReal2_arglist_afteromit());
3328 execute(tc_MySeqOf_SeqSeqIntSeqInt2SeqReal2_arglist_beforeomit());
3329 //========= SET ============================
3330
3331 execute(tc_MySetIntOmit()); // <========{ integer }
3332 //execute(tc_MySetIntBeforeOmit());
3333 //execute(tc_MySetIntAfterOmit());
3334 execute(tc_MySetIntValueSameTypeE());
3335 execute(tc_MySetIntValueSameTypeI());
3336 execute(tc_MySetIntValueDiffTypeExplicitBool());
3337 execute(tc_MySetIntValueDiffTypeImplicitBool());
3338 //execute(tc_MySetIntValueDiffTypeExplicitNull());
3339 //execute(tc_MySetIntValueDiffTypeImplicitNull());
3340 execute(tc_MySetIntValueDiffTypeExplicitOctStr());
3341 execute(tc_MySetIntValueDiffTypeImplicitOctStr());
3342 execute(tc_MySetIntValueDiffTypeExplicitBitStr());
3343 execute(tc_MySetIntValueDiffTypeImplicitBitStr());
3344 execute(tc_MySetIntValueDiffTypeExplicitEnum());
3345 execute(tc_MySetIntValueDiffTypeExplicitFloat());
3346 execute(tc_MySetIntValueDiffTypeImplicitFloat());
3347 execute(tc_MySetIntValueDiffTypeExplicitStr());
3348 //execute(tc_MySetIntValueDiffTypeImplicitStr());
3349
3350 execute(tc_MySetIntValueDiffTypeRawOctStr());
3351 execute(tc_MySetInt2Omiti());//<===== {integer, integer}
3352 execute(tc_MySetInt2Omitj());
3353 //execute(tc_MySetInt2BeforeOmiti());
3354 execute(tc_MySetInt2BeforeOmitj());
3355 execute(tc_MySetInt2AfterOmiti());
3356 //execute(tc_MySetInt2AfterOmitj());
3357 execute(tc_MySetInt2ValueSameTypeE()); //<<<==== FAILED, wrong encode!!!
3358 //execute(tc_MySetInt2ValueSameTypeI());
3359 execute(tc_MySetInt2ValueDiffTypeExplicitFloat());
3360 execute(tc_MySetInt2ValueDiffTypeImplicitFloat());
3361 execute(tc_MySetInt2ValueDiffTypeExplicitStr());
3362 execute(tc_MySetInt2ValueDiffTypeExplicitBitStr());
3363 execute(tc_MySetInt2ValueDiffTypeImplicitBitStr());
3364 execute(tc_MySetInt2ValueSeqIntV());
3365 execute(tc_MySetInt2ValueSeqIntOptV());
3366 execute(tc_MySetInt2ValueSeqIntC());
3367 execute(tc_MySetInt2ValueSeqInt2OptC());
3368 execute(tc_MySetInt2ValueSeqInt2OptOmitC());
3369 execute(tc_MySetInt2ValueSeqInt2iiC());
3370 //execute(tc_MySetInt2ValueSeqInt2ijC());
3371 //execute(tc_MySetInt2ValueSeqInt2jiC());
3372 execute(tc_MySetInt2ValueSeqInt2jjC());
3373
3374 execute(tc_MySetIntSeqInt2ValueOmiti()); //=== Set { integer, {integer, integer} )
3375 execute(tc_MySetIntSeqInt2ValueOmitjki());
3376 execute(tc_MySetIntSeqInt2ValueOmitjkj());
3377
3378 execute(tc_MySetIntSeqInt2ValueRawjki());
3379 execute(tc_MySetIntSeqInt2ValueRawjkj());
3380 execute(tc_MySetIntSeqInt2AfteriBeforej());
3381 //<===== {integer, integer,integer, integer}
3382 execute(tc_MySetInt4Omiti());
3383 execute(tc_MySetInt4Omitj());
3384 execute(tc_MySetInt4Omitk());
3385 execute(tc_MySetInt4Omitl());
3386 execute(tc_MySetInt4ValueiOctetStr());
3387 execute(tc_MySetInt4ValuejOctetStr());
3388 execute(tc_MySetInt4ValueiRaw());
3389 execute(tc_MySetInt4ValuejRaw());
3390 execute(tc_MySetInt4ValuekRaw());
3391 execute(tc_MySetInt4ValuelRaw());
3392 execute(tc_MySetISKL_ValueSomit()); //fail
3393 execute(tc_MySetISKL_ValueSIomit()); //error, DTCE
3394 execute(tc_MySetISKL_ValueSISJomit());//error, DTCE
3395 execute(tc_MySetISKL_ValueSraw()); //fail
3396 execute(tc_MySetISOKL_ValueSomit()); //pass
3397 execute(tc_MySetIOSKL_ValueSomit());//fail
3398 //========= SET OF =========================
3399 //Bool:
3400 execute(tc_MySetOfBoolValueSameType1());
3401 execute(tc_MySetOfBoolValueSameType2());
3402 execute(tc_MySetOfBoolValueDiffType());
3403 execute(tc_MySetOfBoolValueRaw());
3404 execute(tc_MySetOfBoolValueOmit());
3405 execute(tc_MySetOfBoolAfterOmit());
3406 execute(tc_MySetOfBoolValueAfterOmit());
3407 execute(tc_MySetOfBoolBeforeOmit2());
3408 execute(tc_MySetOfBoolValueBeforeOmit2());
3409 execute(tc_MySetOfBoolBeforeOmit1());
3410 execute(tc_MySetOfBoolValueBeforeOmit1());
3411 //NULL:
3412 execute(tc_MySetOfNullValueDiffType());
3413 execute(tc_MySetOfNullValueDiffTypeRaw());
3414 execute(tc_MySetOfNullBeforeOmit2());
3415 execute(tc_MySetOfNullIntValueBeforeOmit2());
3416 execute(tc_MySetOfNullFloatValueBeforeOmit2());
3417 execute(tc_MySetOfNullBeforeOmit1());
3418 execute(tc_MySetOfNullIntValueBeforeOmit1());
3419 execute(tc_MySetOfNullFloatValueBeforeOmit1() );
3420 execute(tc_MySetOfNullFloatValueBeforeOmit1_2());
3421 execute(tc_MySetOfNullAfterOmit1());
3422 execute(tc_MySetOfNullIntValueAfterOmit1());
3423 execute(tc_MySetOfNullFloatValueAfterOmit1() );
3424 execute(tc_MySetOfNullFloatValueBeforeOmit1_2());
3425 //INTEGER:
3426 execute(tc_MySetOfIntValueDiffType());
3427 execute(tc_MySetOfIntValueDiffTypeRaw());
3428 execute(tc_MySetOfIntBeforeOmit2());
3429 execute(tc_MySetOfIntIntValueBeforeOmit2());
3430 execute(tc_MySetOfIntFloatValueBeforeOmit2());
3431 execute(tc_MySetOfIntBeforeOmit1());
3432 execute(tc_MySetOfIntIntValueBeforeOmit1());
3433 execute(tc_MySetOfIntFloatValueBeforeOmit1() );
3434 execute(tc_MySetOfIntFloatValueBeforeOmit1_2());
3435 execute(tc_MySetOfIntAfterOmit1());
3436 execute(tc_MySetOfIntIntValueAfterOmit1());
3437 execute(tc_MySetOfIntFloatValueAfterOmit1() );
3438 execute(tc_MySetOfIntFloatValueAfterOmit1_2());
3439 //MyEnum
3440 execute(tc_MySetOfMyEnumValueDiffType());
3441 execute(tc_MySetOfMyEnumValueDiffTypeRaw());
3442 execute(tc_MySetOfMyEnumBeforeOmit2());
3443 execute(tc_MySetOfMyEnumIntValueBeforeOmit2());
3444 execute(tc_MySetOfMyEnumFloatValueBeforeOmit2());
3445 execute(tc_MySetOfMyEnumBeforeOmit1());
3446 execute(tc_MySetOfMyEnumIntValueBeforeOmit1());
3447 execute(tc_MySetOfMyEnumFloatValueBeforeOmit1() );
3448 execute(tc_MySetOfMyEnumFloatValueBeforeOmit1_2());
3449 execute(tc_MySetOfMyEnumAfterOmit1());
3450 execute(tc_MySetOfMyEnumIntValueAfterOmit1());
3451 execute(tc_MySetOfMyEnumFloatValueAfterOmit1() );
3452 execute(tc_MySetOfMyEnumFloatValueAfterOmit1_2());
3453 //REAL (float)
3454 execute(tc_MySetOfRealValueDiffType());
3455 execute(tc_MySetOfRealValueDiffTypeRaw());
3456 execute(tc_MySetOfRealBeforeOmit2());
3457 execute(tc_MySetOfRealIntValueBeforeOmit2());
3458 execute(tc_MySetOfRealFloatValueBeforeOmit2());
3459 execute(tc_MySetOfRealBeforeOmit1());
3460 execute(tc_MySetOfRealIntValueBeforeOmit1());
3461 execute(tc_MySetOfRealFloatValueBeforeOmit1() );
3462 execute(tc_MySetOfRealFloatValueBeforeOmit1_2());
3463 execute(tc_MySetOfRealAfterOmit1());
3464 execute(tc_MySetOfRealIntValueAfterOmit1());
3465 execute(tc_MySetOfRealFloatValueAfterOmit1() );
3466 execute(tc_MySetOfRealFloatValueAfterOmit1_2());
3467
3468 //========= UNION ==========================
3469 execute(tc_myUnionBasicTypes_boolean3());
3470 execute(tc_myUnionBasicTypes_booleanRaw());
3471 execute(tc_myUnionBasicTypes_nullRaw());
3472 execute(tc_myUnionBasicTypes_integerRaw());
3473 execute(tc_myUnionBasicTypes_enumRaw());
3474 execute(tc_myUnionBasicTypes_realRaw());
3475 execute(tc_myUnionBasicTypes_bitstrRaw());
3476 execute(tc_myUnionBasicTypes_octetstrRaw());
3477 execute(tc_myUnionComplexTypes_omit_0_1());
3478 execute(tc_myUnionComplexTypes_omit_0_2());
3479 execute(tc_myUnionComplexTypes_omit_1_2());
3480 execute(tc_myUnionComplexTypes_omit_2_1());
3481 execute(tc_myUnionComplexTypes_omit_0_1_2());
3482 execute(tc_myUnionComplexTypes_omit_0_2_1());
3483 }
3484
3485 }
This page took 0.112773 seconds and 5 git commands to generate.