24 #include <gtest/gtest.h>
39 bssl::UniquePtr<TEST_INT>
ret(
58 static const int kNull = INT_MIN;
61 const std::vector<int> &vec) {
62 EXPECT_EQ(vec.size(), sk_TEST_INT_num(sk));
63 for (
size_t i = 0;
i < vec.size();
i++) {
94 for (
int i = 0;
i < 6;
i++) {
137 bssl::UniquePtr<TEST_INT> removed(sk_TEST_INT_pop(sk.get()));
141 removed.reset(sk_TEST_INT_shift(sk.get()));
145 removed.reset(sk_TEST_INT_delete(sk.get(), 2));
150 removed.reset(sk_TEST_INT_delete_ptr(sk.get(), raw));
160 ASSERT_TRUE(sk_TEST_INT_insert(sk.get(),
nullptr, 0));
167 return x == nullptr ? nullptr : TEST_INT_new(*x).release();
175 ASSERT_EQ(sk_TEST_INT_num(sk.get()), sk_TEST_INT_num(shallow.get()));
176 for (
size_t i = 0;
i < sk_TEST_INT_num(sk.get());
i++) {
178 sk_TEST_INT_value(shallow.get(),
i));
184 return x == nullptr || *x == 4
186 : TEST_INT_new(*x).release();
193 sk_TEST_INT_zero(shallow2.get());
201 std::vector<int> expected;
202 static const int kCount = 100000;
203 for (
int i = 0;
i < kCount;
i++) {
207 expected.push_back(
i);
230 std::vector<int> vec_sorted = {0, 1, 2, 3, 4, 5, 6};
231 std::vector<int> vec = vec_sorted;
255 sk_TEST_INT_sort(sk.get());
261 sk_TEST_INT_sort(sk.get());
300 sk_TEST_INT_sort(sk.get());
312 }
while (std::next_permutation(vec.begin(), vec.end()));
321 for (
int i = 0;
i < 10;
i++) {
327 const TEST_INT *two = sk_TEST_INT_value(sk.get(), 1);
334 sk_TEST_INT_set_cmp_func(sk.get(),
compare);
340 sk_TEST_INT_sort(sk.get());
347 sk_TEST_INT_sort(sk.get());
355 static const size_t kCount = 100;
356 for (
size_t i = 0;
i < kCount;
i++) {
358 for (
size_t j =
i; j <= kCount; j++) {
364 for (
size_t k = 0;
k <
i;
k++) {
369 for (
size_t k =
i;
k < j;
k++) {
374 for (
size_t k = j;
k < kCount;
k++) {
379 sk_TEST_INT_sort(sk.get());
385 int found = sk_TEST_INT_find(sk.get(), &
idx,
key.get());