0024742: Remove rarely used collection classes: SList
[occt.git] / src / QANCollection / QANCollection_FuncMaps.hxx
CommitLineData
b311480e 1// Created on: 2002-04-30
2// Created by: Alexander KARTOMIN (akm)
973c2be1 3// Copyright (c) 2002-2014 OPEN CASCADE SAS
b311480e 4//
973c2be1 5// This file is part of Open CASCADE Technology software library.
b311480e 6//
d5f74e42 7// This library is free software; you can redistribute it and/or modify it under
8// the terms of the GNU Lesser General Public License version 2.1 as published
973c2be1 9// by the Free Software Foundation, with special exception defined in the file
10// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11// distribution for complete text of the license and disclaimer of any warranty.
b311480e 12//
973c2be1 13// Alternatively, this file may be used under the terms of Open CASCADE
14// commercial license or contractual agreement.
7fd59977 15
16#ifndef QANCollection_FuncMaps_HeaderFile
17#define QANCollection_FuncMaps_HeaderFile
18
19// ===================== Test methods of Map type =============================
20////////////////////////////////void TestMap (QANCollection_Map& theM)
21void TestMap (QANCollection_MapFunc& theM)
22{
23 // Extent
24 Standard_Integer iExt=theM.Extent();
25 Standard_Integer i;
26
27 printf ("Info: testing Map(l=%d)\n", iExt);
28 theM.Statistics(cout);
29 // Resize
30 theM.ReSize(8);
31 theM.Statistics(cout);
32 cout.flush();
33 // Constructor
34 ////////////////////////////////QANCollection_Map aM;
35 QANCollection_MapFunc aM;
36 // Add
37 Key1Type aKey;
38 for (i=0; i<8; i++)
39 {
40 Random (aKey);
41 aM.Add (aKey);
42 }
43 // Contains, Remove
44 if (!aM.Contains(aKey))
45 {
46 printf("Error : map says that it does not contain its key ");
47 PrintItem(aKey);
48 }
49 else
50 {
51 aM.Remove(aKey);
52 printf(" successfully removed item, l=%d\n", aM.Size());
53 }
54 // Copy constructor (including operator=)
55 ////////////////////////////////QANCollection_Map aM2 = QANCollection_Map(aM);
56 QANCollection_MapFunc aM2 = QANCollection_MapFunc(aM);
57 // Assign
58 AssignCollection (aM2,theM);
59
60 // Clear
61 aM.Clear();
62}
63
64// ===================== Test methods of DataMap type =========================
65////////////////////////////////void TestDataMap (QANCollection_DataMap& theM)
66void TestDataMap (QANCollection_DataMapFunc& theM)
67{
68 // Extent
69 Standard_Integer iExt=theM.Extent();
70 Standard_Integer i;
71
72 printf ("Info: testing DataMap(l=%d)\n", iExt);
73 theM.Statistics(cout);
74 // Resize
75 theM.ReSize(8);
76 theM.Statistics(cout);
77 cout.flush();
78 // Constructor
79 ////////////////////////////////QANCollection_DataMap aM;
80 QANCollection_DataMapFunc aM;
81 // Bind, Find, ChangeFind, ()
82 Key1Type aKey;
83 ItemType anItem;
84 for (i=0; i<8; i++)
85 {
86 Random (aKey);
87 Random (anItem);
88 aM.Bind (aKey, anItem);
89 PrintItem(aM.Find(aKey));
90 Random(aM(aKey));
91 }
92 // IsBound, UnBind
93 if (!aM.IsBound(aKey))
94 {
95 printf("Error : map says that it does not contain its key ");
96 PrintItem(aKey);
97 }
98 else
99 {
100 aM.UnBind(aKey);
101 printf(" successfully unbound the key, l=%d\n", aM.Size());
102 }
103 // Copy constructor (including operator=)
104 ////////////////////////////////theM = QANCollection_DataMap(aM);
105 theM = QANCollection_DataMapFunc(aM);
106 // Assign - prohibited
107 // AssignCollection (aM2,theM);
108 printCollection (theM, "DataMap:");
109
110 // Clear
111 aM.Clear();
112}
113
114
115// ===================== Test methods of DoubleMap type =======================
116////////////////////////////////void TestDoubleMap (QANCollection_DoubleMap& theM)
117void TestDoubleMap (QANCollection_DoubleMapFunc& theM)
118{
119 // Extent
120 Standard_Integer iExt=theM.Extent();
121 Standard_Integer i;
122
123 printf ("Info: testing DoubleMap(l=%d)\n", iExt);
124 theM.Statistics(cout);
125 // Resize
126 theM.ReSize(8);
127 theM.Statistics(cout);
128 cout.flush();
129 // Constructor
130 ////////////////////////////////QANCollection_DoubleMap aM;
131 QANCollection_DoubleMapFunc aM;
132 // Bind, Find?,
133 Key1Type aKey1;
134 Key2Type aKey2;
135 for (i=0; i<8; i++)
136 {
137 Random (aKey1);
138 Random (aKey2);
139 aM.Bind (aKey1, aKey2);
140 PrintItem(aM.Find1(aKey1));
141 if (!aM.IsBound1(aKey1))
142 {
143 printf("Error : map says that it does not contain its key ");
144 PrintItem(aKey1);
145 }
146 PrintItem(aM.Find2(aKey2));
147 if (!aM.IsBound2(aKey2))
148 {
149 printf("Error : map says that it does not contain its key ");
150 PrintItem(aKey2);
151 }
152 }
153 // AreBound, UnBind
154 if (!aM.AreBound(aKey1,aKey2))
155 {
156 printf("Error : map says that it does not contain its keys ");
157 PrintItem(aKey1);
158 PrintItem(aKey2);
159 }
160 else
161 {
162 if (aM.UnBind2(aKey2))
163 printf(" successfully unbound the key, l=%d\n", aM.Size());
164 if (aM.UnBind1(aKey1))
165 printf("Error : unbound both keys?!\n");
166 }
167 // Copy constructor (including operator=)
168 ////////////////////////////////theM = QANCollection_DoubleMap(aM);
169 theM = QANCollection_DoubleMapFunc(aM);
170 // Assign - prohibited
171 // AssignCollection (aM2,theM);
172 printCollection (theM, "DoubleMap:");
173
174 // Clear
175 aM.Clear();
176}
177
178// ===================== Test methods of IndexedMap type ======================
179////////////////////////////////void TestIndexedMap (QANCollection_IndexedMap& theM)
180void TestIndexedMap (QANCollection_IndexedMapFunc& theM)
181{
182 // Extent
183 Standard_Integer iExt=theM.Extent();
184 Standard_Integer i;
185
186 printf ("Info: testing IndexedMap(l=%d)\n", iExt);
187 theM.Statistics(cout);
188 // Resize
189 theM.ReSize(8);
190 theM.Statistics(cout);
191 cout.flush();
192 // Constructor
193 ////////////////////////////////QANCollection_IndexedMap aM;
194 QANCollection_IndexedMapFunc aM;
195 // Add, FindKey, FindIndex
196 Key1Type aKey;
197 for (i=0; i<8; i++)
198 {
199 Random (aKey);
200 aM.Add (aKey);
201 Standard_Integer iIndex=aM.FindIndex(aKey);
202 printf (" added a key, i=%d, k=",iIndex);
203 PrintItem(aM(iIndex));
204 }
205 // Contains, Remove
206 if (!aM.Contains(aM.FindKey(aM.FindIndex(aKey))))
207 {
208 printf("Error : map says that it does not contain its key ");
209 PrintItem(aKey);
210 }
211 else
212 {
213 aM.RemoveLast();
214 printf(" successfully removed item, l=%d\n", aM.Size());
215 }
216 // Substitute
217 Random(aKey);
218 aM.Substitute(1,aKey);
219 // Copy constructor (including operator=)
220 ////////////////////////////////QANCollection_IndexedMap aM2 = QANCollection_IndexedMap(aM);
221 QANCollection_IndexedMapFunc aM2 = QANCollection_IndexedMapFunc(aM);
222 // Assign
223 AssignCollection (aM2,theM);
224
225 // Clear
226 aM.Clear();
227}
228
229// ===================== Test methods of IndexedDataMap type ==================
230////////////////////////////////void TestIndexedDataMap (QANCollection_IDMap& theM)
231void TestIndexedDataMap (QANCollection_IDMapFunc& theM)
232{
233 // Extent
234 Standard_Integer iExt=theM.Extent();
235 Standard_Integer i;
236
237 printf ("Info: testing IndexedDataMap(l=%d)\n", iExt);
238 theM.Statistics(cout);
239 // Resize
240 theM.ReSize(8);
241 theM.Statistics(cout);
242 cout.flush();
243 // Constructor
244 ////////////////////////////////QANCollection_IDMap aM;
245 QANCollection_IDMapFunc aM;
246 // Add, FindKey, FindIndex, FindFromIndex, Change..., ()
247 Key1Type aKey;
248 ItemType anItem;
249 for (i=0; i<8; i++)
250 {
251 Random (aKey);
252 Random (anItem);
253 aM.Add (aKey, anItem);
254 Standard_Integer iIndex=aM.FindIndex(aKey);
255 printf (" added a key, i=%d, k=",iIndex);
256 PrintItem(aM.FindKey(iIndex));
257 PrintItem(aM(iIndex));
258 Random(aM.ChangeFromIndex(iIndex));
259 }
260 // Contains, Remove, FindFromKey
261 if (!aM.Contains(aM.FindKey(aM.FindIndex(aKey))))
262 {
263 printf("Error : map says that it does not contain its key ");
264 PrintItem(aKey);
265 }
266 else
267 {
268 anItem = aM.FindFromKey(aKey);
269 aM.RemoveLast();
270 printf(" successfully removed item, l=%d\n", aM.Size());
271 }
272 // Substitute
273 Random(aKey);
274 aM.Substitute (1, aKey, anItem);
275 // Copy constructor (including operator=)
276 ////////////////////////////////theM = QANCollection_IDMap(aM);
277 theM = QANCollection_IDMapFunc(aM);
278 // Assign - prohibited
279 // AssignCollection (aM2,theM);
280 printCollection (theM, "DoubleMap:");
281
282 // Clear
283 aM.Clear();
284}
285
286
287#endif