proxygen
FBVectorTests.cpp.h File Reference

Go to the source code of this file.

Functions

 TESTFUN (clause_23_3_6_1_1)
 
 TESTFUN (clause_23_3_6_1_3)
 
 TESTFUN (clause_23_3_6_1_9)
 
 TESTFUN (clause_23_3_6_1_11)
 
 TESTFUN (clause_23_3_6_1_12)
 
 TESTFUN (clause_23_3_6_2_1)
 
 TESTFUN (clause_23_3_6_2_7)
 
 TESTFUN (clause_23_3_6_2_9)
 
 TESTFUN (clause_23_3_6_2_11)
 
 TESTFUN (clause_absent_element_access)
 
 TESTFUN (clause_23_3_6_3_1)
 
 TESTFUN (clause_23_3_6_4_1_a)
 
 TESTFUN (clause_23_3_6_4_1_c)
 
 TESTFUN (clause_23_3_6_4_1_d)
 
 TESTFUN (clause_23_3_6_4_3)
 
 TESTFUN (clause_23_3_6_4_4)
 
 TESTFUN (clause_23_3_6_4_clear)
 

Function Documentation

TESTFUN ( clause_23_3_6_1_1  )

This file is supposed to be included from within FBVectorTest. Do not use otherwise.

Definition at line 22 of file FBVectorTests.cpp.h.

References a, EXPECT_TRUE, v, and VECTOR.

22  {
23  VECTOR v;
24  EXPECT_TRUE(v.empty());
25  VECTOR::allocator_type a;
26  VECTOR v1(a);
27  EXPECT_TRUE(v1.empty());
28 }
auto v
char a
#define VECTOR
#define EXPECT_TRUE(condition)
Definition: gtest.h:1859
TESTFUN ( clause_23_3_6_1_3  )

Definition at line 30 of file FBVectorTests.cpp.h.

References EXPECT_EQ, FOR_EACH, i, random(), v, and VECTOR.

30  {
31  auto const n = random(0U, 10000U);
32  VECTOR v(n);
33  EXPECT_EQ(v.size(), n);
34  FOR_EACH (i, v) { EXPECT_EQ(*i, VECTOR::value_type()); }
35 }
Integral2 random(Integral1 low, Integral2 up)
auto v
#define EXPECT_EQ(val1, val2)
Definition: gtest.h:1922
#define VECTOR
#define FOR_EACH(i, c)
Definition: Foreach.h:143
TESTFUN ( clause_23_3_6_1_9  )

Definition at line 37 of file FBVectorTests.cpp.h.

References EXPECT_EQ, FOR_EACH, FOR_EACH_RANGE, i, random(), v, and VECTOR.

37  {
38  // Insert with iterators
39  list<VECTOR::value_type> lst;
40  auto const n = random(0U, 10000U);
41  FOR_EACH_RANGE (i, 0, n) {
42  lst.push_back(randomObject<VECTOR::value_type>());
43  }
44  VECTOR v(lst.begin(), lst.end());
45  EXPECT_EQ(v.size(), lst.size());
46  size_t j = 0;
47  FOR_EACH (i, lst) {
48  EXPECT_EQ(v[j], *i);
49  j++;
50  }
51 }
Integral2 random(Integral1 low, Integral2 up)
auto v
#define EXPECT_EQ(val1, val2)
Definition: gtest.h:1922
#define FOR_EACH_RANGE(i, begin, end)
Definition: Foreach.h:313
#define VECTOR
#define FOR_EACH(i, c)
Definition: Foreach.h:143
TESTFUN ( clause_23_3_6_1_11  )

Definition at line 53 of file FBVectorTests.cpp.h.

References EXPECT_EQ, FOR_EACH, FOR_EACH_RANGE, i, random(), v, and VECTOR.

53  {
54  // assign with iterators
55  list<VECTOR::value_type> lst;
56  auto const n = random(0U, 10000U);
57  FOR_EACH_RANGE (i, 0, n) {
58  lst.push_back(randomObject<VECTOR::value_type>());
59  }
60  VECTOR v;
61  v.assign(lst.begin(), lst.end());
62  EXPECT_EQ(v.size(), lst.size());
63  size_t j = 0;
64  FOR_EACH (i, lst) {
65  EXPECT_EQ(v[j], *i);
66  j++;
67  }
68 
69  // aliased assign
70  v.assign(v.begin(), v.begin() + v.size() / 2);
71  EXPECT_EQ(v.size(), lst.size() / 2);
72  j = 0;
73  FOR_EACH (i, lst) {
74  if (j == v.size()) {
75  break;
76  }
77  EXPECT_EQ(v[j], *i);
78  j++;
79  }
80 }
Integral2 random(Integral1 low, Integral2 up)
auto v
#define EXPECT_EQ(val1, val2)
Definition: gtest.h:1922
#define FOR_EACH_RANGE(i, begin, end)
Definition: Foreach.h:313
#define VECTOR
#define FOR_EACH(i, c)
Definition: Foreach.h:143
TESTFUN ( clause_23_3_6_1_12  )

Definition at line 82 of file FBVectorTests.cpp.h.

References EXPECT_EQ, FOR_EACH, i, random(), v, and VECTOR.

82  {
83  VECTOR v;
84  auto const n = random(0U, 10000U);
85  auto const obj = randomObject<VECTOR::value_type>();
86  v.assign(n, obj);
87  EXPECT_EQ(v.size(), n);
88  FOR_EACH (i, v) { EXPECT_EQ(*i, obj); }
89 }
Integral2 random(Integral1 low, Integral2 up)
auto v
#define EXPECT_EQ(val1, val2)
Definition: gtest.h:1922
#define VECTOR
#define FOR_EACH(i, c)
Definition: Foreach.h:143
TESTFUN ( clause_23_3_6_2_1  )

Definition at line 91 of file FBVectorTests.cpp.h.

References EXPECT_GE, random(), v, and VECTOR.

91  {
92  VECTOR v;
93  auto const n = random(0U, 10000U);
94  v.reserve(n);
95  EXPECT_GE(v.capacity(), n);
96 }
Integral2 random(Integral1 low, Integral2 up)
auto v
#define EXPECT_GE(val1, val2)
Definition: gtest.h:1932
#define VECTOR
TESTFUN ( clause_23_3_6_2_7  )

Definition at line 98 of file FBVectorTests.cpp.h.

References EXPECT_EQ, FOR_EACH, i, random(), and VECTOR.

98  {
99  auto const n1 = random(0U, 10000U);
100  auto const n2 = random(0U, 10000U);
101  auto const obj1 = randomObject<VECTOR::value_type>();
102  auto const obj2 = randomObject<VECTOR::value_type>();
103  VECTOR v1(n1, obj1), v2(n2, obj2);
104  v1.swap(v2);
105  EXPECT_EQ(v1.size(), n2);
106  EXPECT_EQ(v2.size(), n1);
107  FOR_EACH (i, v1) { EXPECT_EQ(*i, obj2); }
108  FOR_EACH (i, v2) { EXPECT_EQ(*i, obj1); }
109 }
Integral2 random(Integral1 low, Integral2 up)
#define EXPECT_EQ(val1, val2)
Definition: gtest.h:1922
#define VECTOR
#define FOR_EACH(i, c)
Definition: Foreach.h:143
TESTFUN ( clause_23_3_6_2_9  )

Definition at line 111 of file FBVectorTests.cpp.h.

References EXPECT_EQ, FOR_EACH, i, random(), v, and VECTOR.

111  {
112  VECTOR v;
113  auto const n1 = random(0U, 10000U);
114  v.resize(n1);
115  FOR_EACH (i, v) { EXPECT_EQ(*i, VECTOR::value_type()); }
116  FOR_EACH (i, v) { EXPECT_EQ(*i, VECTOR::value_type()); }
117 }
Integral2 random(Integral1 low, Integral2 up)
auto v
#define EXPECT_EQ(val1, val2)
Definition: gtest.h:1922
#define VECTOR
#define FOR_EACH(i, c)
Definition: Foreach.h:143
TESTFUN ( clause_23_3_6_2_11  )

Definition at line 119 of file FBVectorTests.cpp.h.

References EXPECT_EQ, FOR_EACH, FOR_EACH_RANGE, i, random(), v, and VECTOR.

119  {
120  VECTOR v;
121  auto const n1 = random(0U, 10000U);
122  auto const obj1 = randomObject<VECTOR::value_type>();
123  v.resize(n1, obj1);
124  FOR_EACH (i, v) { EXPECT_EQ(*i, obj1); }
125  auto const n2 = random(0U, 10000U);
126  auto const obj2 = randomObject<VECTOR::value_type>();
127  v.resize(n2, obj2);
128  if (n1 < n2) {
129  FOR_EACH_RANGE (i, n1, n2) { EXPECT_EQ(v[i], obj2); }
130  }
131 }
Integral2 random(Integral1 low, Integral2 up)
auto v
#define EXPECT_EQ(val1, val2)
Definition: gtest.h:1922
#define FOR_EACH_RANGE(i, begin, end)
Definition: Foreach.h:313
#define VECTOR
#define FOR_EACH(i, c)
Definition: Foreach.h:143
TESTFUN ( clause_absent_element_access  )

Definition at line 133 of file FBVectorTests.cpp.h.

References EXPECT_EQ, random(), v, and VECTOR.

133  {
134  VECTOR v;
135  auto const n1 = random(1U, 10000U);
136  auto const obj1 = randomObject<VECTOR::value_type>();
137  v.resize(n1, obj1);
138  auto const n = random(0U, v.size() - 1);
139  EXPECT_EQ(v[n], v.at(n));
140  auto const obj2 = randomObject<VECTOR::value_type>();
141  v[n] = obj2;
142  EXPECT_EQ(v[n], v.at(n));
143  EXPECT_EQ(v[n], obj2);
144  auto const obj3 = randomObject<VECTOR::value_type>();
145  v.at(n) = obj3;
146  EXPECT_EQ(v[n], v.at(n));
147  EXPECT_EQ(v[n], obj3);
148 }
Integral2 random(Integral1 low, Integral2 up)
auto v
#define EXPECT_EQ(val1, val2)
Definition: gtest.h:1922
#define VECTOR
TESTFUN ( clause_23_3_6_3_1  )

Definition at line 150 of file FBVectorTests.cpp.h.

References EXPECT_EQ, random(), v, and VECTOR.

150  {
151  VECTOR v;
152  auto const n1 = random(1U, 10000U);
153  auto const obj1 = randomObject<VECTOR::value_type>();
154  v.resize(n1, obj1);
155  EXPECT_EQ(v.data(), &v.front());
156 }
Integral2 random(Integral1 low, Integral2 up)
auto v
#define EXPECT_EQ(val1, val2)
Definition: gtest.h:1922
#define VECTOR
TESTFUN ( clause_23_3_6_4_1_a  )

Definition at line 158 of file FBVectorTests.cpp.h.

References EXPECT_EQ, FOR_EACH_RANGE, i, random(), v, and VECTOR.

158  {
159  VECTOR v, w;
160  auto const n1 = random(1U, 10000U);
161  FOR_EACH_RANGE (i, 0, n1) {
162  auto const obj1 = randomObject<VECTOR::value_type>();
163  v.push_back(obj1);
164  w.push_back(obj1);
165  }
166  auto const n2 = random(0U, n1 - 1);
167  auto pos = v.begin() + n2;
168  auto const obj2 = randomObject<VECTOR::value_type>();
169 
170  auto r = v.insert(pos, obj2);
171 
172  EXPECT_EQ(v.size(), w.size() + 1);
173  EXPECT_EQ(r - v.begin(), n2);
174  EXPECT_EQ(*r, obj2);
175  FOR_EACH_RANGE (i, 0, r - v.begin()) { EXPECT_EQ(v[i], w[i]); }
176  FOR_EACH_RANGE (i, r - v.begin() + 1, v.size()) { EXPECT_EQ(v[i], w[i - 1]); }
177 }
Integral2 random(Integral1 low, Integral2 up)
auto v
#define EXPECT_EQ(val1, val2)
Definition: gtest.h:1922
#define FOR_EACH_RANGE(i, begin, end)
Definition: Foreach.h:313
#define VECTOR
TESTFUN ( clause_23_3_6_4_1_c  )

Definition at line 179 of file FBVectorTests.cpp.h.

References EXPECT_EQ, FOR_EACH_RANGE, i, random(), and v.

179  {
180  // This test only works for fbvector
181  fbvector<VECTOR::value_type> v, w;
182  auto const n1 = random(1U, 10000U);
183  FOR_EACH_RANGE (i, 0, n1) {
184  auto const obj1 = randomObject<VECTOR::value_type>();
185  v.push_back(obj1);
186  w.push_back(obj1);
187  }
188  auto const n2 = random(0U, n1 - 1);
189  auto pos = v.begin() + n2;
190  auto const obj2 = randomObject<VECTOR::value_type>();
191  auto const n3 = random(0U, 10000U);
192 
193  auto r = v.insert(pos, n3, obj2);
194 
195  EXPECT_EQ(v.size(), w.size() + n3);
196  EXPECT_EQ(r - v.begin(), n2);
197  FOR_EACH_RANGE (i, 0, r - v.begin()) { EXPECT_EQ(v[i], w[i]); }
198  FOR_EACH_RANGE (i, r - v.begin(), r - v.begin() + n3) {
199  EXPECT_EQ(v[i], obj2);
200  }
201  FOR_EACH_RANGE (i, r - v.begin() + n3, v.size()) {
202  EXPECT_EQ(v[i], w[i - n3]);
203  }
204 }
Integral2 random(Integral1 low, Integral2 up)
auto v
#define EXPECT_EQ(val1, val2)
Definition: gtest.h:1922
#define FOR_EACH_RANGE(i, begin, end)
Definition: Foreach.h:313
TESTFUN ( clause_23_3_6_4_1_d  )

Definition at line 206 of file FBVectorTests.cpp.h.

References EXPECT_EQ, FOR_EACH_RANGE, i, random(), v, and VECTOR.

206  {
207  VECTOR v, w;
208  auto const n1 = random(0U, 10000U);
209  FOR_EACH_RANGE (i, 0, n1) {
210  auto const obj1 = randomObject<VECTOR::value_type>();
211  v.push_back(obj1);
212  w.push_back(obj1);
213  }
214  EXPECT_EQ(v.size(), n1);
215 
216  auto const obj2 = randomObject<VECTOR::value_type>();
217  v.push_back(obj2);
218  EXPECT_EQ(v.back(), obj2);
219  EXPECT_EQ(v.size(), w.size() + 1);
220 
221  FOR_EACH_RANGE (i, 0, w.size()) { EXPECT_EQ(v[i], w[i]); }
222 }
Integral2 random(Integral1 low, Integral2 up)
auto v
#define EXPECT_EQ(val1, val2)
Definition: gtest.h:1922
#define FOR_EACH_RANGE(i, begin, end)
Definition: Foreach.h:313
#define VECTOR
TESTFUN ( clause_23_3_6_4_3  )

Definition at line 224 of file FBVectorTests.cpp.h.

References EXPECT_EQ, FOR_EACH_RANGE, i, random(), v, and VECTOR.

224  {
225  VECTOR v, w;
226  auto const n1 = random(1U, 10000U);
227  FOR_EACH_RANGE (i, 0, n1) {
228  auto const obj1 = randomObject<VECTOR::value_type>();
229  v.push_back(obj1);
230  w.push_back(obj1);
231  }
232  EXPECT_EQ(v.size(), n1);
233 
234  auto const n2 = random(0U, n1 - 1);
235  auto it = v.erase(v.begin() + n2);
236  EXPECT_EQ(v.size() + 1, w.size());
237 
238  FOR_EACH_RANGE (i, 0, it - v.begin()) { EXPECT_EQ(v[i], w[i]); }
239 
240  FOR_EACH_RANGE (i, it - v.begin(), v.size()) { EXPECT_EQ(v[i], w[i + 1]); }
241 }
Integral2 random(Integral1 low, Integral2 up)
auto v
#define EXPECT_EQ(val1, val2)
Definition: gtest.h:1922
#define FOR_EACH_RANGE(i, begin, end)
Definition: Foreach.h:313
#define VECTOR
TESTFUN ( clause_23_3_6_4_4  )

Definition at line 243 of file FBVectorTests.cpp.h.

References EXPECT_EQ, FOR_EACH_RANGE, i, random(), v, and VECTOR.

243  {
244  VECTOR v, w;
245  auto const n1 = random(1U, 10000U);
246  FOR_EACH_RANGE (i, 0, n1) {
247  auto const obj1 = randomObject<VECTOR::value_type>();
248  v.push_back(obj1);
249  w.push_back(obj1);
250  }
251  EXPECT_EQ(v.size(), n1);
252 
253  auto const n2 = random(0U, n1 - 1);
254  auto const n3 = random(n2, n1 - 1);
255  auto it = v.erase(v.begin() + n2, v.begin() + n3);
256  EXPECT_EQ(v.size() + (n3 - n2), w.size());
257 
258  FOR_EACH_RANGE (i, 0, it - v.begin()) { EXPECT_EQ(v[i], w[i]); }
259 
260  FOR_EACH_RANGE (i, it - v.begin(), v.size()) {
261  EXPECT_EQ(v[i], w[i + (n3 - n2)]);
262  }
263 }
Integral2 random(Integral1 low, Integral2 up)
auto v
#define EXPECT_EQ(val1, val2)
Definition: gtest.h:1922
#define FOR_EACH_RANGE(i, begin, end)
Definition: Foreach.h:313
#define VECTOR
TESTFUN ( clause_23_3_6_4_clear  )

Definition at line 265 of file FBVectorTests.cpp.h.

References c, EXPECT_EQ, EXPECT_TRUE, random(), v, and VECTOR.

265  {
266  VECTOR v;
267  v.clear();
268  EXPECT_TRUE(v.empty());
269  v.resize(random(0U, 10000U));
270  auto c = v.capacity();
271  v.clear();
272  EXPECT_TRUE(v.empty());
273  EXPECT_EQ(v.capacity(), c);
274 }
Integral2 random(Integral1 low, Integral2 up)
auto v
#define EXPECT_EQ(val1, val2)
Definition: gtest.h:1922
#define VECTOR
#define EXPECT_TRUE(condition)
Definition: gtest.h:1859
char c