Skip to content

Commit 218b90f

Browse files
committed
Refactor test file
1 parent 1366251 commit 218b90f

File tree

1 file changed

+23
-69
lines changed

1 file changed

+23
-69
lines changed

libcxx/test/std/containers/sequences/vector.bool/flip.pass.cpp

Lines changed: 23 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -11,89 +11,43 @@
1111
// void flip();
1212

1313
#include <cassert>
14+
#include <memory>
1415
#include <vector>
1516

1617
#include "min_allocator.h"
1718
#include "test_allocator.h"
1819
#include "test_macros.h"
1920

21+
template <typename Allocator = std::allocator<bool> >
22+
TEST_CONSTEXPR_CXX20 void test_vector_flip(std::size_t n, Allocator a = Allocator()) {
23+
std::vector<bool, Allocator > v(n, false, a);
24+
for (std::size_t i = 0; i < n; ++i)
25+
v[i] = i & 1;
26+
std::vector<bool, Allocator > original = v;
27+
v.flip();
28+
for (size_t i = 0; i < n; ++i)
29+
assert(v[i] == !original[i]);
30+
v.flip();
31+
assert(v == original);
32+
}
33+
2034
TEST_CONSTEXPR_CXX20 bool tests() {
21-
//
22-
// Testing flip() function with small vectors and various allocators
23-
//
24-
{
25-
std::vector<bool> v;
26-
v.push_back(true);
27-
v.push_back(false);
28-
v.push_back(true);
29-
v.flip();
30-
assert(!v[0]);
31-
assert(v[1]);
32-
assert(!v[2]);
33-
}
34-
{
35-
std::vector<bool, min_allocator<bool> > v;
36-
v.push_back(true);
37-
v.push_back(false);
38-
v.push_back(true);
39-
v.flip();
40-
assert(!v[0]);
41-
assert(v[1]);
42-
assert(!v[2]);
43-
}
44-
{
45-
std::vector<bool, test_allocator<bool> > v(test_allocator<bool>(5));
46-
v.push_back(true);
47-
v.push_back(false);
48-
v.push_back(true);
49-
v.flip();
50-
assert(!v[0]);
51-
assert(v[1]);
52-
assert(!v[2]);
53-
}
35+
// Test small vectors with different allocators
36+
test_vector_flip(3);
37+
test_vector_flip(3, min_allocator<bool>());
38+
test_vector_flip(3, test_allocator<bool>(5));
5439

55-
//
56-
// Testing flip() function with larger vectors
57-
//
58-
{
59-
std::vector<bool> v(1000);
60-
for (std::size_t i = 0; i < v.size(); ++i)
61-
v[i] = i & 1;
62-
std::vector<bool> original = v;
63-
v.flip();
64-
for (size_t i = 0; i < v.size(); ++i) {
65-
assert(v[i] == !original[i]);
66-
}
67-
}
68-
{
69-
std::vector<bool, min_allocator<bool> > v(1000, false, min_allocator<bool>());
70-
for (std::size_t i = 0; i < v.size(); ++i)
71-
v[i] = i & 1;
72-
std::vector<bool, min_allocator<bool> > original = v;
73-
v.flip();
74-
for (size_t i = 0; i < v.size(); ++i)
75-
assert(v[i] == !original[i]);
76-
v.flip();
77-
assert(v == original);
78-
}
79-
{
80-
std::vector<bool, test_allocator<bool> > v(1000, false, test_allocator<bool>(5));
81-
for (std::size_t i = 0; i < v.size(); ++i)
82-
v[i] = i & 1;
83-
std::vector<bool, test_allocator<bool> > original = v;
84-
v.flip();
85-
for (size_t i = 0; i < v.size(); ++i)
86-
assert(v[i] == !original[i]);
87-
v.flip();
88-
assert(v == original);
89-
}
40+
// Test large vectors with different allocators
41+
test_vector_flip(1000);
42+
test_vector_flip(1000, min_allocator<bool>());
43+
test_vector_flip(1000, test_allocator<bool>(5));
9044

9145
return true;
9246
}
9347

9448
int main(int, char**) {
9549
tests();
96-
#if TEST_STD_VER > 17
50+
#if TEST_STD_VER >= 20
9751
static_assert(tests());
9852
#endif
9953
return 0;

0 commit comments

Comments
 (0)