FEI Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
test_utils
test_Set.cpp
Go to the documentation of this file.
1
/*--------------------------------------------------------------------*/
2
/* Copyright 2005 Sandia Corporation. */
3
/* Under the terms of Contract DE-AC04-94AL85000, there is a */
4
/* non-exclusive license for use of this work by or on behalf */
5
/* of the U.S. Government. Export of this program may require */
6
/* a license from the United States Government. */
7
/*--------------------------------------------------------------------*/
8
9
#include <
fei_macros.hpp
>
10
#include <
fei_mpi.h
>
11
12
#include <
test_utils/test_Set.hpp
>
13
14
#include <
snl_fei_Utils.hpp
>
15
#include <
fei_ctg_set.hpp
>
16
17
#undef fei_file
18
#define fei_file "test_Set.cpp"
19
#include <
fei_ErrMacros.hpp
>
20
21
test_Set::test_Set
(
MPI_Comm
comm)
22
:
tester
(comm)
23
{
24
}
25
26
test_Set::~test_Set
()
27
{
28
}
29
30
template
<
typename
SET_TYPE>
31
void
set_test1
(SET_TYPE& set_obj)
32
{
33
if
(set_obj.size() < 1) {
34
typename
SET_TYPE::const_iterator
35
s_beg = set_obj.begin(),
36
s_end = set_obj.end();
37
38
if
(s_beg != s_end) {
39
throw
std::runtime_error(
"failed test 1"
);
40
}
41
}
42
else
set_obj.clear();
43
44
std::pair<typename SET_TYPE::const_iterator,bool> result = set_obj.insert(5);
45
46
if
(!result.second) {
47
throw
std::runtime_error(
"failed test 2"
);
48
}
49
50
result = set_obj.insert(4);
51
52
if
(!result.second) {
53
throw
std::runtime_error(
"failed test 3"
);
54
}
55
56
result = set_obj.insert(7);
57
58
++(result.first);
59
if
(result.first != set_obj.end()) {
60
throw
std::runtime_error(
"failed test 4"
);
61
}
62
63
result = set_obj.insert(6);
64
65
if
(!result.second) {
66
throw
std::runtime_error(
"failed test 5"
);
67
}
68
69
++(result.first);
70
71
if
(*(result.first) != 7) {
72
throw
std::runtime_error(
"failed test 6"
);
73
}
74
75
++(result.first);
76
if
(result.first != set_obj.end()) {
77
throw
std::runtime_error(
"failed test 7"
);
78
}
79
80
result = set_obj.insert(2);
81
result = set_obj.insert(3);
82
83
++(result.first);
84
if
(*(result.first) != 4) {
85
throw
std::runtime_error(
"failed test 8"
);
86
}
87
88
SET_TYPE set_copy(set_obj);
89
90
if
(set_copy.size() != set_obj.size()) {
91
throw
std::runtime_error(
"failed test 9"
);
92
}
93
94
typename
SET_TYPE::const_iterator
95
s_iter = set_obj.begin(),
96
s_end = set_obj.end();
97
98
typename
SET_TYPE::const_iterator
99
c_iter = set_copy.begin(),
100
c_end = set_copy.end();
101
102
for
(; s_iter != s_end; ++s_iter) {
103
if
(*s_iter != *c_iter) {
104
throw
std::runtime_error(
"failed test 10"
);
105
}
106
++c_iter;
107
}
108
109
if
(c_iter != c_end) {
110
throw
std::runtime_error(
"failed test 11"
);
111
}
112
}
113
114
template
<
typename
SET_TYPE>
115
void
set_test2
(SET_TYPE& set_obj)
116
{
117
if
(set_obj.size() < 1) {
118
typename
SET_TYPE::const_iterator
119
s_beg = set_obj.begin(),
120
s_end = set_obj.end();
121
122
if
(s_beg != s_end) {
123
throw
std::runtime_error(
"failed test2 1"
);
124
}
125
}
126
else
set_obj.clear();
127
128
set_obj.insert2(5);
129
set_obj.insert2(4);
130
set_obj.insert2(7);
131
set_obj.insert2(6);
132
set_obj.insert2(2);
133
set_obj.insert2(3);
134
135
SET_TYPE set_copy(set_obj);
136
137
if
(set_copy.size() != set_obj.size()) {
138
throw
std::runtime_error(
"failed test2 2"
);
139
}
140
141
typename
SET_TYPE::const_iterator
142
s_iter = set_obj.begin(),
143
s_end = set_obj.end();
144
145
typename
SET_TYPE::const_iterator
146
c_iter = set_copy.begin(),
147
c_end = set_copy.end();
148
149
for
(; s_iter != s_end; ++s_iter) {
150
if
(*s_iter != *c_iter) {
151
throw
std::runtime_error(
"failed test2 3"
);
152
}
153
++c_iter;
154
}
155
156
if
(c_iter != c_end) {
157
throw
std::runtime_error(
"failed test2 4"
);
158
}
159
}
160
161
int
test_Set::runtests
()
162
{
163
if
(
numProcs_
> 1)
return
(0);
164
165
CHK_ERR
(
test1
() );
166
CHK_ERR
(
test2
() );
167
CHK_ERR
(
test3
() );
168
CHK_ERR
(
test4
() );
169
CHK_ERR
(
test5
() );
170
CHK_ERR
(
test6
() );
171
CHK_ERR
(
test7
() );
172
CHK_ERR
(
test8
() );
173
CHK_ERR
(
test9
() );
174
175
return
(0);
176
}
177
178
int
test_Set::test1
()
179
{
180
return
(0);
181
}
182
183
int
test_Set::test2
()
184
{
185
FEI_COUT
<<
"testing fei::ctg_set<int> insert,insert2,find,iterate..."
;
186
fei::ctg_set<int>
sset2;
187
188
sset2.
insert
(5);
189
sset2.
insert
(8);
190
sset2.
insert
(3);
191
sset2.
insert
(0);
192
sset2.
insert
(4);
193
sset2.
insert
(1);
194
sset2.
insert
(2);
195
196
fei::ctg_set<int>::const_iterator
197
ss2_iter = sset2.
begin
(),
198
ss2_end = sset2.
end
();
199
200
int
i=0;
201
for
(; ss2_iter != ss2_end; ++ss2_iter) {
202
if
(*ss2_iter != i && *ss2_iter != 8) {
203
return
(-1);
204
}
205
++i;
206
}
207
208
int
size2 = sset2.
size
();
209
if
(size2 != 7) {
210
return
(-1);
211
}
212
213
fei::ctg_set<int>::const_iterator
iter4 = sset2.
find
(4);
214
if
(*iter4 != 4) {
215
return
(-2);
216
}
217
218
++iter4;
219
if
(*iter4 != 5) {
220
return
(-3);
221
}
222
223
fei::ctg_set<int>::const_iterator
iter8 = sset2.
find
(8);
224
if
(*iter8 != 8) {
225
return
(-4);
226
}
227
228
set_test2
(sset2);
229
230
fei::ctg_set<int>
sset3;
231
232
sset3.
insert2
(1);
233
sset3.
insert2
(3);
234
sset3.
insert2
(6);
235
sset3.
insert2
(8);
236
sset3.
insert2
(0);
237
sset3.
insert2
(2);
238
sset3.
insert2
(9);
239
sset3.
insert2
(11);
240
sset3.
insert2
(4);
241
sset3.
insert2
(10);
242
243
int
size3 = sset3.
size
();
244
if
(size3 != 10) {
245
return
(-1);
246
}
247
248
fei::ctg_set<int>::const_iterator
ss3_iter4 = sset3.
find
(4);
249
if
(*ss3_iter4 != 4) {
250
return
(-2);
251
}
252
253
++ss3_iter4;
254
if
(*ss3_iter4 != 6) {
255
return
(-3);
256
}
257
258
fei::ctg_set<int>::const_iterator
ss3_iter8 = sset3.
find
(8);
259
if
(*ss3_iter8 != 8) {
260
return
(-4);
261
}
262
263
FEI_COUT
<<
"ok"
<<
FEI_ENDL
;
264
return
(0);
265
}
266
267
int
test_Set::test3
()
268
{
269
return
(0);
270
}
271
272
int
test_Set::test4
()
273
{
274
275
return
(0);
276
}
277
278
int
test_Set::test5
()
279
{
280
FEI_COUT
<<
"testing fei::binarySearch(...,start,end,...)..."
;
281
282
std::vector<int> array;
283
for
(
int
i=0; i<10; ++i) array.push_back(i);
284
285
int
start = 2;
286
int
end = 6;
287
int
insertPoint = -1;
288
int
offset =
fei::binarySearch
(9, &array[0], array.size(),
289
start, end, insertPoint);
290
if
(offset >= 0) {
291
return
(-1);
292
}
293
294
offset =
fei::binarySearch
(4, &array[0], array.size(),
295
start, end, insertPoint);
296
297
if
(offset < 0) {
298
return
(-1);
299
}
300
301
fei::ctg_set<int>
sset;
302
sset.
insert2
(1);
303
sset.
insert2
(5);
304
sset.
insert2
(9);
305
sset.
insert2
(0);
306
sset.
insert2
(4);
307
sset.
insert2
(8);
308
309
if
(sset.
size
() != 6) {
310
ERReturn
(-1);
311
}
312
313
if
(sset.
find
(0) == sset.
end
()) {
314
ERReturn
(-1);
315
}
316
317
FEI_COUT
<<
"ok"
<<
FEI_ENDL
;
318
319
return
(0);
320
}
321
322
int
test_Set::test6
()
323
{
324
return
(0);
325
}
326
327
int
test_Set::test7
()
328
{
329
return
(0);
330
}
331
332
333
int
test_Set::test8
()
334
{
335
return
(0);
336
}
337
338
int
test_Set::test9
()
339
{
340
341
return
(0);
342
}
fei::ctg_set::const_iterator
Definition
fei_ctg_set.hpp:64
fei::ctg_set
Definition
fei_ctg_set.hpp:39
fei::ctg_set::size
int size() const
Definition
fei_ctg_set.hpp:490
fei::ctg_set::end
static const_iterator end()
Definition
fei_ctg_set.hpp:155
fei::ctg_set::insert
std::pair< const_iterator, bool > insert(const T &item)
Definition
fei_ctg_set.hpp:198
fei::ctg_set::find
const_iterator find(const T &item)
Definition
fei_ctg_set.hpp:437
fei::ctg_set::insert2
void insert2(const T &item)
Definition
fei_ctg_set.hpp:326
fei::ctg_set::begin
const_iterator begin() const
Definition
fei_ctg_set.hpp:145
test_Set::~test_Set
virtual ~test_Set()
Definition
test_Set.cpp:26
test_Set::test6
int test6()
Definition
test_Set.cpp:322
test_Set::test_Set
test_Set(MPI_Comm comm)
Definition
test_Set.cpp:21
test_Set::test8
int test8()
Definition
test_Set.cpp:333
test_Set::runtests
int runtests()
Definition
test_Set.cpp:161
test_Set::test5
int test5()
Definition
test_Set.cpp:278
test_Set::test4
int test4()
Definition
test_Set.cpp:272
test_Set::test7
int test7()
Definition
test_Set.cpp:327
test_Set::test3
int test3()
Definition
test_Set.cpp:267
test_Set::test2
int test2()
Definition
test_Set.cpp:183
test_Set::test9
int test9()
Definition
test_Set.cpp:338
test_Set::test1
int test1()
Definition
test_Set.cpp:178
tester::tester
tester(MPI_Comm comm)
Definition
tester.cpp:17
tester::numProcs_
int numProcs_
Definition
tester.hpp:38
fei_ErrMacros.hpp
ERReturn
#define ERReturn(a)
Definition
fei_ErrMacros.hpp:37
CHK_ERR
#define CHK_ERR(a)
Definition
fei_ErrMacros.hpp:26
fei_ctg_set.hpp
FEI_ENDL
#define FEI_ENDL
Definition
fei_iostream.hpp:34
FEI_COUT
#define FEI_COUT
Definition
fei_iostream.hpp:33
fei_macros.hpp
fei_mpi.h
MPI_Comm
#define MPI_Comm
Definition
fei_mpi.h:56
fei::binarySearch
int binarySearch(const T &item, const T *list, int len)
Definition
fei_ArrayUtils.hpp:68
snl_fei_Utils.hpp
set_test1
void set_test1(SET_TYPE &set_obj)
Definition
test_Set.cpp:31
set_test2
void set_test2(SET_TYPE &set_obj)
Definition
test_Set.cpp:115
test_Set.hpp
Generated by
1.17.0