Skip to content

Commit c3d3ca6

Browse files
committed
Use std::generate
1 parent 7aad782 commit c3d3ca6

File tree

1 file changed

+17
-28
lines changed

1 file changed

+17
-28
lines changed

sort_test.cpp

Lines changed: 17 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,12 @@
1212
static std::mt19937 gen(std::chrono::high_resolution_clock::now().time_since_epoch().count());
1313

1414
TEST_CASE("general sorting functions") {
15-
constexpr std::size_t ELEMENTS_COUNT = 500;
16-
17-
std::vector<int> to_sort;
18-
to_sort.reserve(ELEMENTS_COUNT);
15+
std::vector<int> to_sort(500);
1916

2017
std::uniform_int_distribution<> dist;
21-
for (std::size_t i = 0; i < ELEMENTS_COUNT; ++i) {
22-
to_sort.push_back(dist(gen));
23-
}
18+
std::generate(to_sort.begin(), to_sort.end(), [&dist]() {
19+
return dist(gen);
20+
});
2421

2522
SECTION("bubble_sort") {
2623
SECTION("default compare") {
@@ -95,16 +92,14 @@ TEST_CASE("general sorting functions") {
9592
}
9693

9794
TEST_CASE("radix_sort & counting_sort") {
98-
constexpr std::size_t ELEMENTS_COUNT = 500;
99-
100-
std::vector<unsigned> to_sort;
101-
to_sort.reserve(ELEMENTS_COUNT);
95+
std::vector<unsigned> to_sort(500);
10296

10397
constexpr auto MAX_ELEMENT = 100U;
10498
std::uniform_int_distribution<unsigned> dist(0U, MAX_ELEMENT);
105-
for (std::size_t i = 0; i < ELEMENTS_COUNT; ++i) {
106-
to_sort.push_back(dist(gen));
107-
}
99+
100+
std::generate(to_sort.begin(), to_sort.end(), [&dist]() {
101+
return dist(gen);
102+
});
108103

109104
SECTION("counting_sort") {
110105
alg::counting_sort(to_sort.begin(), to_sort.end(), MAX_ELEMENT);
@@ -117,15 +112,12 @@ TEST_CASE("radix_sort & counting_sort") {
117112
}
118113

119114
TEST_CASE("bucket_sort") {
120-
constexpr std::size_t ELEMENTS_COUNT = 100;
121-
122-
std::vector<double> to_sort;
123-
to_sort.reserve(ELEMENTS_COUNT);
115+
std::vector<double> to_sort(500);
124116

125117
std::uniform_real_distribution<> dist;
126-
for (std::size_t i = 0; i < ELEMENTS_COUNT; ++i) {
127-
to_sort.push_back(dist(gen));
128-
}
118+
std::generate(to_sort.begin(), to_sort.end(), [&dist]() {
119+
return dist(gen);
120+
});
129121

130122
SECTION("random access iterator") {
131123
alg::bucket_sort(to_sort.begin(), to_sort.end());
@@ -144,15 +136,12 @@ TEST_CASE("bucket_sort") {
144136
}
145137

146138
TEST_CASE("quick_select") {
147-
constexpr std::size_t ELEMENTS_COUNT = 100;
148-
149-
std::vector<int> sample_array;
150-
sample_array.reserve(ELEMENTS_COUNT);
139+
std::vector<int> sample_array(500);
151140

152141
std::uniform_int_distribution<> dist;
153-
for (std::size_t i = 0; i < ELEMENTS_COUNT; ++i) {
154-
sample_array.push_back(dist(gen));
155-
}
142+
std::generate(sample_array.begin(), sample_array.end(), [&dist]() {
143+
return dist(gen);
144+
});
156145

157146
auto sorted = sample_array;
158147
std::sort(sorted.begin(), sorted.end());

0 commit comments

Comments
 (0)