|
1 |
|
2 // STLport regression testsuite component. |
|
3 // To compile as a separate example, please #define MAIN. |
|
4 #include <iterator> |
|
5 |
|
6 #include <algorithm> |
|
7 #include <vector> |
|
8 #include <iostream> |
|
9 #include <iterator> |
|
10 // #include <functional> |
|
11 #include <numeric> |
|
12 |
|
13 #ifdef MAIN |
|
14 #define rotcopy1_test main |
|
15 #endif |
|
16 |
|
17 #if !defined (STLPORT) || defined(__STL_USE_NAMESPACES) |
|
18 using namespace std; |
|
19 #endif |
|
20 int rotcopy1_test(int, char**) |
|
21 { |
|
22 int failures=0; |
|
23 cout<<"Results of rotcopy1_test:"<<endl; |
|
24 vector <int> v1(10); |
|
25 iota(v1.begin(), v1.end(), 0); |
|
26 ostream_iterator <int> iter(cout, " "); |
|
27 copy(v1.begin(), v1.end(), iter); |
|
28 cout << endl; |
|
29 |
|
30 if(0!=v1[0]) |
|
31 failures++; |
|
32 else if(1!=v1[1]) |
|
33 failures++; |
|
34 else if(2!=v1[2]) |
|
35 failures++; |
|
36 else if(3!=v1[3]) |
|
37 failures++; |
|
38 else if(4!=v1[4]) |
|
39 failures++; |
|
40 else if(5!=v1[5]) |
|
41 failures++; |
|
42 else if(6!=v1[6]) |
|
43 failures++; |
|
44 else if(7!=v1[7]) |
|
45 failures++; |
|
46 else if(8!=v1[8]) |
|
47 failures++; |
|
48 else if(9!=v1[9]) |
|
49 failures++; |
|
50 |
|
51 vector <int> v2(v1.size()); |
|
52 for(int i = 0; i < v1.size(); i++) |
|
53 { |
|
54 rotate_copy(v1.begin(), |
|
55 v1.begin() + i, |
|
56 v1.end(), |
|
57 v2.begin()); |
|
58 ostream_iterator <int> iter(cout, " "); |
|
59 copy(v2.begin(), v2.end(), iter); |
|
60 |
|
61 switch(i) |
|
62 { |
|
63 case 0: if(0!=v1[0]) |
|
64 failures++; |
|
65 else if(1!=v1[1]) |
|
66 failures++; |
|
67 else if(2!=v1[2]) |
|
68 failures++; |
|
69 else if(3!=v1[3]) |
|
70 failures++; |
|
71 else if(4!=v1[4]) // 0 1 2 3 4 5 6 7 8 9 |
|
72 failures++; |
|
73 else if(5!=v1[5]) |
|
74 failures++; |
|
75 else if(6!=v1[6]) |
|
76 failures++; |
|
77 else if(7!=v1[7]) |
|
78 failures++; |
|
79 else if(8!=v1[8]) |
|
80 failures++; |
|
81 else if(9!=v1[9]) |
|
82 failures++; |
|
83 break; |
|
84 case 1: if(1!=v1[0]) |
|
85 failures++; |
|
86 else if(2!=v1[1]) |
|
87 failures++; |
|
88 else if(3!=v1[2]) |
|
89 failures++; |
|
90 else if(4!=v1[3]) |
|
91 failures++; |
|
92 else if(5!=v1[4]) // 1 2 3 4 5 6 7 8 9 0 |
|
93 failures++; |
|
94 else if(6!=v1[5]) |
|
95 failures++; |
|
96 else if(7!=v1[6]) |
|
97 failures++; |
|
98 else if(8!=v1[7]) |
|
99 failures++; |
|
100 else if(9!=v1[8]) |
|
101 failures++; |
|
102 else if(0!=v1[9]) |
|
103 failures++; |
|
104 break; |
|
105 case 2: if(2!=v1[0]) |
|
106 failures++; |
|
107 else if(3!=v1[1]) |
|
108 failures++; // 2 3 4 5 6 7 8 9 0 1 |
|
109 else if(4!=v1[2]) |
|
110 failures++; |
|
111 else if(5!=v1[3]) |
|
112 failures++; |
|
113 else if(6!=v1[4]) |
|
114 failures++; |
|
115 else if(7!=v1[5]) |
|
116 failures++; |
|
117 else if(8!=v1[6]) |
|
118 failures++; |
|
119 else if(9!=v1[7]) |
|
120 failures++; |
|
121 else if(0!=v1[8]) |
|
122 failures++; |
|
123 else if(1!=v1[9]) |
|
124 failures++; |
|
125 break; |
|
126 |
|
127 case 3: if(3!=v1[0]) |
|
128 failures++; |
|
129 else if(4!=v1[1]) |
|
130 failures++; |
|
131 else if(5!=v1[2]) |
|
132 failures++; |
|
133 else if(6!=v1[3]) |
|
134 failures++; |
|
135 else if(7!=v1[4]) |
|
136 failures++; |
|
137 else if(8!=v1[5]) // 3 4 5 6 7 8 9 0 1 2 |
|
138 failures++; |
|
139 else if(9!=v1[6]) |
|
140 failures++; |
|
141 else if(0!=v1[7]) |
|
142 failures++; |
|
143 else if(1!=v1[8]) |
|
144 failures++; |
|
145 else if(2!=v1[9]) |
|
146 failures++; |
|
147 break; |
|
148 |
|
149 case 4: if(4!=v1[0]) |
|
150 failures++; |
|
151 else if(5!=v1[1]) |
|
152 failures++; |
|
153 else if(6!=v1[2]) |
|
154 failures++; |
|
155 else if(7!=v1[3]) |
|
156 failures++; |
|
157 else if(8!=v1[4]) |
|
158 failures++; // 4 5 6 7 8 9 0 1 2 3 |
|
159 else if(9!=v1[5]) |
|
160 failures++; |
|
161 else if(0!=v1[6]) |
|
162 failures++; |
|
163 else if(1!=v1[7]) |
|
164 failures++; |
|
165 else if(2!=v1[8]) |
|
166 failures++; |
|
167 else if(3!=v1[9]) |
|
168 failures++; |
|
169 break; |
|
170 case 5: if(5!=v1[0]) |
|
171 failures++; |
|
172 else if(6!=v1[1]) |
|
173 failures++; |
|
174 else if(7!=v1[2]) |
|
175 failures++; |
|
176 else if(8!=v1[3]) |
|
177 failures++; |
|
178 else if(9!=v1[4]) // 5 6 7 8 9 0 1 2 3 4 |
|
179 failures++; |
|
180 else if(0!=v1[5]) |
|
181 failures++; |
|
182 else if(1!=v1[6]) |
|
183 failures++; |
|
184 else if(2!=v1[7]) |
|
185 failures++; |
|
186 else if(3!=v1[8]) |
|
187 failures++; |
|
188 else if(4!=v1[9]) |
|
189 failures++; |
|
190 break; |
|
191 case 6: if(6!=v1[0]) |
|
192 failures++; |
|
193 else if(7!=v1[1]) |
|
194 failures++; |
|
195 else if(8!=v1[2]) |
|
196 failures++; |
|
197 else if(9!=v1[3]) |
|
198 failures++; // 6 7 8 9 0 1 2 3 4 5 |
|
199 else if(9!=v1[4]) |
|
200 failures++; |
|
201 else if(1!=v1[5]) |
|
202 failures++; |
|
203 else if(2!=v1[6]) |
|
204 failures++; |
|
205 else if(3!=v1[7]) |
|
206 failures++; |
|
207 else if(4!=v1[8]) |
|
208 failures++; |
|
209 else if(5!=v1[9]) |
|
210 failures++; |
|
211 break; |
|
212 case 7: if(7!=v1[0]) |
|
213 failures++; |
|
214 else if(8!=v1[1]) |
|
215 failures++; |
|
216 else if(9!=v1[2]) |
|
217 failures++; |
|
218 else if(0!=v1[3]) |
|
219 failures++; //7 8 9 0 1 2 3 4 5 6 |
|
220 else if(1!=v1[4]) |
|
221 failures++; |
|
222 else if(2!=v1[5]) |
|
223 failures++; |
|
224 else if(3!=v1[6]) |
|
225 failures++; |
|
226 else if(4!=v1[7]) |
|
227 failures++; |
|
228 else if(5!=v1[8]) |
|
229 failures++; |
|
230 else if(6!=v1[9]) |
|
231 failures++; |
|
232 break; |
|
233 |
|
234 case 8: if(8!=v1[0]) |
|
235 failures++; //8 9 0 1 2 3 4 5 6 7 |
|
236 else if(9!=v1[1]) |
|
237 failures++; |
|
238 else if(0!=v1[2]) |
|
239 failures++; |
|
240 else if(1!=v1[3]) |
|
241 failures++; |
|
242 else if(2!=v1[4]) |
|
243 failures++; |
|
244 else if(3!=v1[5]) |
|
245 failures++; |
|
246 else if(4!=v1[6]) |
|
247 failures++; |
|
248 else if(5!=v1[7]) |
|
249 failures++; |
|
250 else if(6!=v1[8]) |
|
251 failures++; |
|
252 else if(7!=v1[9]) |
|
253 failures++; |
|
254 break; |
|
255 case 9: if(9!=v1[0]) |
|
256 failures++; |
|
257 else if(0!=v1[1]) |
|
258 failures++; |
|
259 else if(1!=v1[2]) //9 0 1 2 3 4 5 6 7 8 |
|
260 failures++; |
|
261 else if(2!=v1[3]) |
|
262 failures++; |
|
263 else if(3!=v1[4]) |
|
264 failures++; |
|
265 else if(4!=v1[5]) |
|
266 failures++; |
|
267 else if(5!=v1[6]) |
|
268 failures++; |
|
269 else if(6!=v1[7]) |
|
270 failures++; |
|
271 else if(7!=v1[8]) |
|
272 failures++; |
|
273 else if(8!=v1[9]) |
|
274 failures++; |
|
275 break; |
|
276 |
|
277 } |
|
278 |
|
279 cout << endl; |
|
280 } |
|
281 cout << endl; |
|
282 return 0; |
|
283 } |
|
284 |