b7e69409e47ea46bdfe746454372e21093944629
[occt.git] / src / QANCollection / QANCollection_FuncLists.hxx
1 // Created on: 2002-04-30
2 // Created by: Alexander KARTOMIN (akm)
3 // Copyright (c) 2002-2014 OPEN CASCADE SAS
4 //
5 // This file is part of Open CASCADE Technology software library.
6 //
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
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.
12 //
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
15
16 #ifndef QANCollection_FuncLists_HeaderFile
17 #define QANCollection_FuncLists_HeaderFile
18
19 // ===================== Test methods of List type ==========================
20 ////////////////////////////////void TestList (QANCollection_List&     theL)
21 void TestList (QANCollection_ListFunc&     theL)
22 {
23   // Extent
24   Standard_Integer iExt=theL.Extent();
25   Standard_Integer i;
26
27   printf ("Info: testing List(%d)\n", iExt);
28   // Append(2), Prepend(2), InsertBefore(2), InsertAfter(2), 
29   // Remove, RemoveFirst, First, Last
30   ItemType anItem;
31   ////////////////////////////////QANCollection_List aL, aL1;
32   QANCollection_ListFunc aL, aL1;
33   for (i=0; i<4; i++)
34   {
35     Random (anItem);
36     aL.Append (anItem); // #1
37     aL.Append (aL1);    // #2
38     Random (anItem);
39     aL1.Prepend (anItem); // #3
40     aL1.Prepend (aL);     // #4
41     ////////////////////////////////QANCollection_List::Iterator anI(theL);
42     QANCollection_ListFunc::Iterator anI(theL);
43     if (anI.More())
44     {
45       Random (anItem);
46       theL.InsertBefore (anItem, anI); // #5
47       theL.InsertBefore (aL1, anI);    // #6
48       Random (anItem);
49       theL.InsertAfter (anItem, anI); // #7
50       theL.InsertAfter (aL, anI);     // #8
51       theL.Remove (anI);  // #9
52       if (theL.Extent() > 0)
53         theL.RemoveFirst(); // #10
54     }
55     else
56     {
57       theL.Prepend (anItem);
58       PrintItem(theL.First());
59       PrintItem(theL.Last());
60     }
61   }
62   // Copy constructor + operator=
63   ////////////////////////////////aL = QANCollection_List(theL);
64   aL = QANCollection_ListFunc(theL);
65
66   // Assign
67   AssignCollection (theL, aL);
68
69   // Clear
70   aL.Clear();
71 }
72
73 // ===================== Test methods of Sequence type ========================
74 ////////////////////////////////void TestSequence (QANCollection_Sequence& theS)
75 void TestSequence (QANCollection_SequenceFunc& theS)
76 {
77   Standard_Integer i;
78
79   printf ("Info: testing Sequence\n");
80   // Append(2)
81   ItemType anItem;
82   ////////////////////////////////QANCollection_Sequence aS, aS1;
83   QANCollection_SequenceFunc aS, aS1;
84   // Append(2), Prepend(2), InsertBefore(2), InsertAfter(2), 
85   // Remove, RemoveFirst, First, Last
86   for (i=0; i<4; i++)
87   {
88     Random (anItem);
89     aS.Append (anItem); // #1
90     aS.Append (aS1);    // #2
91     Random (anItem);
92     aS1.Prepend (anItem); // #3
93     aS1.Prepend (aS);     // #4
94     if (theS.Length() > 0)
95     {
96       Random (anItem);
97       theS.InsertBefore (1, anItem); // #5
98       theS.InsertBefore (2, aS1);    // #6
99       Random (anItem);
100       theS.InsertAfter (1, anItem); // #7
101       theS.InsertAfter (2, aS);     // #8
102       theS.Remove (1);  // #9
103       if (theS.Length() > 0)
104         theS.Remove(1); // #10
105     }
106     else
107     {
108       theS.Prepend (anItem);
109       PrintItem(theS.First());
110       PrintItem(theS.Last());
111     }
112   }
113
114   // ()
115   PrintItem(theS(1));
116
117   // Handle, Split
118   ////////////////////////////////Handle(QANCollection_HSequence) aHS = new QANCollection_HSequence(aS1);
119   Handle(QANCollection_HSequenceFunc) aHS = new QANCollection_HSequenceFunc(aS1);
120   theS.Split (3, aHS->ChangeSequence());
121
122   // Assign
123   AssignCollection (theS, aS);
124
125   // Clear
126   aS.Clear();
127 }
128
129 #endif