diff --git a/src/test/settings_tests.cpp b/src/test/settings_tests.cpp --- a/src/test/settings_tests.cpp +++ b/src/test/settings_tests.cpp @@ -4,8 +4,8 @@ #include -#include #include +#include #include #include diff --git a/src/test/util.h b/src/test/util.h --- a/src/test/util.h +++ b/src/test/util.h @@ -26,50 +26,6 @@ std::shared_ptr PrepareBlock(const Config &config, const CScript &coinbase_scriptPubKey); -/** - * Increment a string. Useful to enumerate all fixed length strings with - * characters in [min_char, max_char]. - */ -template -bool NextString(CharType (&string)[StringLength], CharType min_char, - CharType max_char) { - for (CharType &elem : string) { - bool has_next = elem != max_char; - elem = - elem < min_char || elem >= max_char ? min_char : CharType(elem + 1); - if (has_next) { - return true; - } - } - return false; -} - -/** - * Iterate over string values and call function for each string without - * successive duplicate characters. - */ -template -void ForEachNoDup(CharType (&string)[StringLength], CharType min_char, - CharType max_char, Fn &&fn) { - for (bool has_next = true; has_next; - has_next = NextString(string, min_char, max_char)) { - int prev = -1; - bool skip_string = false; - for (CharType c : string) { - if (c == prev) { - skip_string = true; - } - if (skip_string || c < min_char || c > max_char) { - break; - } - prev = c; - } - if (!skip_string) { - fn(); - } - } -} - // RPC-like // /** Import the address to the wallet */ diff --git a/src/test/util/str.h b/src/test/util/str.h --- a/src/test/util/str.h +++ b/src/test/util/str.h @@ -9,4 +9,48 @@ bool CaseInsensitiveEqual(const std::string &s1, const std::string &s2); +/** + * Increment a string. Useful to enumerate all fixed length strings with + * characters in [min_char, max_char]. + */ +template +bool NextString(CharType (&string)[StringLength], CharType min_char, + CharType max_char) { + for (CharType &elem : string) { + bool has_next = elem != max_char; + elem = + elem < min_char || elem >= max_char ? min_char : CharType(elem + 1); + if (has_next) { + return true; + } + } + return false; +} + +/** + * Iterate over string values and call function for each string without + * successive duplicate characters. + */ +template +void ForEachNoDup(CharType (&string)[StringLength], CharType min_char, + CharType max_char, Fn &&fn) { + for (bool has_next = true; has_next; + has_next = NextString(string, min_char, max_char)) { + int prev = -1; + bool skip_string = false; + for (CharType c : string) { + if (c == prev) { + skip_string = true; + } + if (skip_string || c < min_char || c > max_char) { + break; + } + prev = c; + } + if (!skip_string) { + fn(); + } + } +} + #endif // BITCOIN_TEST_UTIL_STR_H diff --git a/src/test/util_tests.cpp b/src/test/util_tests.cpp --- a/src/test/util_tests.cpp +++ b/src/test/util_tests.cpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include #include