Skip to content

Commit 8750935

Browse files
committed
single character coverage
1 parent 8082c9e commit 8750935

File tree

1 file changed

+28
-5
lines changed
  • tests/std/tests/VSO_0000000_vector_algorithms

1 file changed

+28
-5
lines changed

tests/std/tests/VSO_0000000_vector_algorithms/test.cpp

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1218,12 +1218,31 @@ void test_bitset(mt19937_64& gen) {
12181218
test_randomized_bitset_base_count<512 - 5, 32 + 10>(gen);
12191219
}
12201220

1221+
template <class T>
1222+
void test_case_string_find(const basic_string<T>& input_haystack, const T ch) {
1223+
const auto expected_iter = last_known_good_find(input_haystack.begin(), input_haystack.end(), ch);
1224+
const auto expected =
1225+
(expected_iter != input_haystack.end()) ? expected_iter - input_haystack.begin() : ptrdiff_t{-1};
1226+
const auto actual = static_cast<ptrdiff_t>(input_haystack.find(ch));
1227+
assert(expected == actual);
1228+
}
1229+
1230+
template <class T>
1231+
void test_case_string_rfind(const basic_string<T>& input_haystack, const T ch) {
1232+
const auto expected_iter = last_known_good_find_last(input_haystack.begin(), input_haystack.end(), ch);
1233+
const auto expected =
1234+
(expected_iter != input_haystack.end()) ? expected_iter - input_haystack.begin() : ptrdiff_t{-1};
1235+
const auto actual = static_cast<ptrdiff_t>(input_haystack.rfind(ch));
1236+
assert(expected == actual);
1237+
}
1238+
12211239
template <class T>
12221240
void test_case_string_find_first_of(const basic_string<T>& input_haystack, const basic_string<T>& input_needle) {
1223-
auto expected_iter = last_known_good_find_first_of(
1241+
const auto expected_iter = last_known_good_find_first_of(
12241242
input_haystack.begin(), input_haystack.end(), input_needle.begin(), input_needle.end());
1225-
auto expected = (expected_iter != input_haystack.end()) ? expected_iter - input_haystack.begin() : ptrdiff_t{-1};
1226-
auto actual = static_cast<ptrdiff_t>(input_haystack.find_first_of(input_needle));
1243+
const auto expected =
1244+
(expected_iter != input_haystack.end()) ? expected_iter - input_haystack.begin() : ptrdiff_t{-1};
1245+
const auto actual = static_cast<ptrdiff_t>(input_haystack.find_first_of(input_needle));
12271246
assert(expected == actual);
12281247
}
12291248

@@ -1242,8 +1261,8 @@ size_t last_known_good_find_last_of(const basic_string<T>& h, const basic_string
12421261

12431262
template <class T>
12441263
void test_case_string_find_last_of(const basic_string<T>& input_haystack, const basic_string<T>& input_needle) {
1245-
size_t expected = last_known_good_find_last_of(input_haystack, input_needle);
1246-
size_t actual = input_haystack.find_last_of(input_needle);
1264+
const size_t expected = last_known_good_find_last_of(input_haystack, input_needle);
1265+
const size_t actual = input_haystack.find_last_of(input_needle);
12471266
assert(expected == actual);
12481267
}
12491268

@@ -1255,6 +1274,10 @@ void test_basic_string_dis(mt19937_64& gen, D& dis) {
12551274
input_needle.reserve(needleDataCount);
12561275

12571276
for (;;) {
1277+
const T ch = static_cast<T>(dis(gen));
1278+
test_case_string_find(input_haystack, ch);
1279+
test_case_string_rfind(input_haystack, ch);
1280+
12581281
input_needle.clear();
12591282

12601283
test_case_string_find_first_of(input_haystack, input_needle);

0 commit comments

Comments
 (0)