1- // Copyright (c) 2015-2022 The Bitcoin Core developers
1+ // Copyright (c) 2015-present The Bitcoin Core developers
22// Distributed under the MIT software license, see the accompanying
33// file COPYING or http://www.opensource.org/licenses/mit-license.php.
44
1515
1616BOOST_FIXTURE_TEST_SUITE (prevector_tests, TestingSetup)
1717
18- template<unsigned int N, typename T>
19- class prevector_tester {
18+ template <unsigned int N, typename T>
19+ class prevector_tester
20+ {
2021 typedef std::vector<T> realtype;
2122 realtype real_vector;
2223 realtype real_vector_alt;
@@ -31,36 +32,37 @@ class prevector_tester {
3132
3233
3334 template <typename A, typename B>
34- void local_check_equal (A a, B b)
35- {
36- local_check (a == b);
37- }
35+ void local_check_equal (A a, B b)
36+ {
37+ local_check (a == b);
38+ }
3839 void local_check (bool b)
3940 {
4041 passed &= b;
4142 }
42- void test () {
43+ void test ()
44+ {
4345 const pretype& const_pre_vector = pre_vector;
4446 local_check_equal (real_vector.size (), pre_vector.size ());
4547 local_check_equal (real_vector.empty (), pre_vector.empty ());
4648 for (Size s = 0 ; s < real_vector.size (); s++) {
47- local_check (real_vector[s] == pre_vector[s]);
48- local_check (&(pre_vector[s]) == &(pre_vector.begin ()[s]));
49- local_check (&(pre_vector[s]) == &*(pre_vector.begin () + s));
50- local_check (&(pre_vector[s]) == &*((pre_vector.end () + s) - real_vector.size ()));
49+ local_check (real_vector[s] == pre_vector[s]);
50+ local_check (&(pre_vector[s]) == &(pre_vector.begin ()[s]));
51+ local_check (&(pre_vector[s]) == &*(pre_vector.begin () + s));
52+ local_check (&(pre_vector[s]) == &*((pre_vector.end () + s) - real_vector.size ()));
5153 }
5254 // local_check(realtype(pre_vector) == real_vector);
5355 local_check (pretype (real_vector.begin (), real_vector.end ()) == pre_vector);
5456 local_check (pretype (pre_vector.begin (), pre_vector.end ()) == pre_vector);
5557 size_t pos = 0 ;
5658 for (const T& v : pre_vector) {
57- local_check (v == real_vector[pos++]);
59+ local_check (v == real_vector[pos++]);
5860 }
5961 for (const T& v : pre_vector | std::views::reverse) {
6062 local_check (v == real_vector[--pos]);
6163 }
6264 for (const T& v : const_pre_vector) {
63- local_check (v == real_vector[pos++]);
65+ local_check (v == real_vector[pos++]);
6466 }
6567 for (const T& v : const_pre_vector | std::views::reverse) {
6668 local_check (v == real_vector[--pos]);
@@ -76,90 +78,105 @@ class prevector_tester {
7678 }
7779
7880public:
79- void resize (Size s) {
81+ void resize (Size s)
82+ {
8083 real_vector.resize (s);
8184 local_check_equal (real_vector.size (), s);
8285 pre_vector.resize (s);
8386 local_check_equal (pre_vector.size (), s);
8487 test ();
8588 }
8689
87- void reserve (Size s) {
90+ void reserve (Size s)
91+ {
8892 real_vector.reserve (s);
8993 local_check (real_vector.capacity () >= s);
9094 pre_vector.reserve (s);
9195 local_check (pre_vector.capacity () >= s);
9296 test ();
9397 }
9498
95- void insert (Size position, const T& value) {
99+ void insert (Size position, const T& value)
100+ {
96101 real_vector.insert (real_vector.begin () + position, value);
97102 pre_vector.insert (pre_vector.begin () + position, value);
98103 test ();
99104 }
100105
101- void insert (Size position, Size count, const T& value) {
106+ void insert (Size position, Size count, const T& value)
107+ {
102108 real_vector.insert (real_vector.begin () + position, count, value);
103109 pre_vector.insert (pre_vector.begin () + position, count, value);
104110 test ();
105111 }
106112
107- template <typename I>
108- void insert_range (Size position, I first, I last) {
113+ template <typename I>
114+ void insert_range (Size position, I first, I last)
115+ {
109116 real_vector.insert (real_vector.begin () + position, first, last);
110117 pre_vector.insert (pre_vector.begin () + position, first, last);
111118 test ();
112119 }
113120
114- void erase (Size position) {
121+ void erase (Size position)
122+ {
115123 real_vector.erase (real_vector.begin () + position);
116124 pre_vector.erase (pre_vector.begin () + position);
117125 test ();
118126 }
119127
120- void erase (Size first, Size last) {
128+ void erase (Size first, Size last)
129+ {
121130 real_vector.erase (real_vector.begin () + first, real_vector.begin () + last);
122131 pre_vector.erase (pre_vector.begin () + first, pre_vector.begin () + last);
123132 test ();
124133 }
125134
126- void update (Size pos, const T& value) {
135+ void update (Size pos, const T& value)
136+ {
127137 real_vector[pos] = value;
128138 pre_vector[pos] = value;
129139 test ();
130140 }
131141
132- void push_back (const T& value) {
142+ void push_back (const T& value)
143+ {
133144 real_vector.push_back (value);
134145 pre_vector.push_back (value);
135146 test ();
136147 }
137148
138- void pop_back () {
149+ void pop_back ()
150+ {
139151 real_vector.pop_back ();
140152 pre_vector.pop_back ();
141153 test ();
142154 }
143155
144- void clear () {
156+ void clear ()
157+ {
145158 real_vector.clear ();
146159 pre_vector.clear ();
147160 }
148161
149- void assign (Size n, const T& value) {
162+ void assign (Size n, const T& value)
163+ {
150164 real_vector.assign (n, value);
151165 pre_vector.assign (n, value);
152166 }
153167
154- Size size () const {
168+ Size size () const
169+ {
155170 return real_vector.size ();
156171 }
157172
158- Size capacity () const {
173+ Size capacity () const
174+ {
159175 return pre_vector.capacity ();
160176 }
161177
162- void shrink_to_fit () {
178+ void shrink_to_fit ()
179+ {
163180 pre_vector.shrink_to_fit ();
164181 test ();
165182 }
@@ -171,19 +188,22 @@ class prevector_tester {
171188 test ();
172189 }
173190
174- void move () {
191+ void move ()
192+ {
175193 real_vector = std::move (real_vector_alt);
176194 real_vector_alt.clear ();
177195 pre_vector = std::move (pre_vector_alt);
178196 pre_vector_alt.clear ();
179197 }
180198
181- void copy () {
199+ void copy ()
200+ {
182201 real_vector = real_vector_alt;
183202 pre_vector = pre_vector_alt;
184203 }
185204
186- void resize_uninitialized (realtype values) {
205+ void resize_uninitialized (realtype values)
206+ {
187207 size_t r = values.size ();
188208 size_t s = real_vector.size () / 2 ;
189209 if (real_vector.capacity () < s + r) {
@@ -203,11 +223,13 @@ class prevector_tester {
203223 test ();
204224 }
205225
206- ~prevector_tester () {
226+ ~prevector_tester ()
227+ {
207228 BOOST_CHECK_MESSAGE (passed, " insecure_rand: " + rand_seed.ToString ());
208229 }
209230
210- prevector_tester (FastRandomContext& rng) {
231+ prevector_tester (FastRandomContext& rng)
232+ {
211233 rand_seed = rng.rand256 ();
212234 rng.Reseed (rand_seed);
213235 }
0 commit comments