14 #include "util/test.h"
15 #include "util/logging.h"
16 #include "re2/testing/string_generator.h"
21 const std::vector<std::string>&
alphabet)
22 : maxlen_(maxlen), alphabet_(
alphabet),
23 generate_null_(
false),
24 random_(
false), nrandom_(0) {
47 for (
int i =
static_cast<int>(
digits_.size()) - 1; i >= 0; i--) {
68 std::uniform_int_distribution<int> random_len(0,
maxlen_);
69 std::uniform_int_distribution<int> random_alphabet_index(
70 0,
static_cast<int>(
alphabet_.size()) - 1);
75 for (
int i = 0;
i <
len;
i++)
92 for (
size_t i = 0;
i <
digits_.size();
i++) {
117 const size_t size =
size_t{1} <<
static_cast<size_t>(
n);
118 const size_t mask =
size - 1;
119 std::vector<bool> did(
size,
false);
121 s.reserve(
static_cast<size_t>(n) +
size);
122 for (
size_t i = 0; i < static_cast<size_t>(n - 1);
i++)
125 for (
size_t i = 0;
i <
size;
i++) {
128 if (!did[
bits | 1]) {