#include "components/zucchini/suffix_array.h"
#include <stddef.h>
#include <stdint.h>
#include <algorithm>
#include <initializer_list>
#include <string>
#include <vector>
#include "testing/gtest/include/gtest/gtest.h"
namespace zucchini {
namespace {
SLType;
}
ustring;
constexpr uint16_t kNumChar = …;
ustring MakeUnsignedString(const std::string& str) { … }
template <class T>
std::vector<T> MakeVector(const std::initializer_list<T>& ilist) { … }
void TestSlPartition(std::initializer_list<SLType> expected_sl_partition,
std::initializer_list<size_t> expected_lms_indices,
std::string str) { … }
TEST(InducedSuffixSortTest, BuildSLPartition) { … }
std::vector<size_t> BucketCount(const std::initializer_list<unsigned char> str,
uint16_t max_key) { … }
TEST(InducedSuffixSortTest, BucketCount) { … }
std::vector<size_t> InducedSortSubstring(ustring str) { … }
TEST(InducedSuffixSortTest, InducedSortSubstring) { … }
template <class Algorithm>
void TestSuffixSort(ustring test_str) { … }
constexpr const char* test_strs[] = …;
TEST(SuffixSortTest, NaiveSuffixSort) { … }
TEST(SuffixSortTest, InducedSuffixSortSort) { … }
TEST(SuffixSortTest, AllChar) { … }
void TestSuffixLowerBound(ustring base_str, ustring search_str) { … }
TEST(SuffixArrayTest, LowerBound) { … }
TEST(SuffixArrayTest, LowerBoundExact) { … }
}