From 264017b1419ddd1834070b2127cbf9317cecfe39 Mon Sep 17 00:00:00 2001 From: Ben Hanson Date: Sun, 4 Nov 2018 18:33:49 +0000 Subject: [PATCH 01/23] Experimental partial_match support. --- include/ctre/evaluation.hpp | 191 ++++++++++++++++++++++-------------- include/ctre/wrapper.hpp | 42 ++++---- 2 files changed, 138 insertions(+), 95 deletions(-) diff --git a/include/ctre/evaluation.hpp b/include/ctre/evaluation.hpp index 71a0562a..4379d5b6 100644 --- a/include/ctre/evaluation.hpp +++ b/include/ctre/evaluation.hpp @@ -7,12 +7,14 @@ #include "find_captures.hpp" namespace ctre { + enum match_type { full_match, partial_match }; // calling with pattern prepare stack and triplet of iterators template -constexpr inline auto match_re(const Iterator begin, const EndIterator end, Pattern pattern) noexcept { +constexpr inline auto match_re(const Iterator begin, const EndIterator end, Pattern pattern, + const match_type mtype) noexcept { using return_type = decltype(regex_results(std::declval(), find_captures(pattern))); - return evaluate(begin, begin, end, return_type{}, ctll::list()); + return evaluate(begin, begin, end, mtype, return_type{}, ctll::list()); } template @@ -21,13 +23,13 @@ constexpr inline auto search_re(const Iterator begin, const EndIterator end, Pat auto it = begin; for (; end != it; ++it) { - if (auto out = evaluate(begin, it, end, return_type{}, ctll::list())) { + if (auto out = evaluate(begin, it, end, full_match, return_type{}, ctll::list())) { return out; } } // in case the RE is empty - return evaluate(begin, it, end, return_type{}, ctll::list()); + return evaluate(begin, it, end, full_match, return_type{}, ctll::list()); } @@ -35,25 +37,29 @@ constexpr inline auto search_re(const Iterator begin, const EndIterator end, Pat // if we found "accept" object on stack => ACCEPT template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator, Iterator, const EndIterator, R captures, ctll::list) noexcept { +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator, Iterator, const EndIterator, + const match_type mtype, R captures, ctll::list) noexcept { return captures.matched(); } // mark start of outer capture template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list) noexcept { - return evaluate(begin, current, end, captures.set_start_mark(current), ctll::list()); +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list) noexcept { + return evaluate(begin, current, end, mtype, captures.set_start_mark(current), ctll::list()); } // mark end of outer capture template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list) noexcept { - return evaluate(begin, current, end, captures.set_end_mark(current), ctll::list()); +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list) noexcept { + return evaluate(begin, current, end, mtype, captures.set_end_mark(current), ctll::list()); } // mark end of cycle template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator, Iterator current, const EndIterator, R captures, ctll::list) noexcept { +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator, Iterator current, const EndIterator, + const match_type mtype, R captures, ctll::list) noexcept { return captures.set_end_mark(current).matched(); } @@ -61,10 +67,19 @@ constexpr CTRE_FORCE_INLINE R evaluate(const Iterator, Iterator current, const E // matching everything which behave as a one character matcher template ::template value())>)>> -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list) noexcept { - if (end == current) return not_matched; +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list) noexcept { + if (end == current) + { + if (mtype == partial_match && sizeof...(Tail) > 1) + { + return captures.set_end_mark(current).matched(); + } + else + return not_matched; + } if (!CharacterLike::match_char(*current)) return not_matched; - return evaluate(begin, current+1, end, captures, ctll::list()); + return evaluate(begin, current+1, end, mtype, captures, ctll::list()); } // matching strings in patterns @@ -87,11 +102,12 @@ template co } template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...>) noexcept { +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list, Tail...>) noexcept { if constexpr (sizeof...(String) == 0) { - return evaluate(begin, current, end, captures, ctll::list()); + return evaluate(begin, current, end, mtype, captures, ctll::list()); } else if (auto tmp = evaluate_match_string(current, end); tmp.match) { - return evaluate(begin, tmp.current, end, captures, ctll::list()); + return evaluate(begin, tmp.current, end, mtype, captures, ctll::list()); } else { return not_matched; } @@ -99,26 +115,29 @@ constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, c // matching select in patterns template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...>) noexcept { - if (auto r = evaluate(begin, current, end, captures, ctll::list())) { +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list, Tail...>) noexcept { + if (auto r = evaluate(begin, current, end, mtype, captures, ctll::list())) { return r; } else { - return evaluate(begin, current, end, captures, ctll::list, Tail...>()); + return evaluate(begin, current, end, mtype, captures, ctll::list, Tail...>()); } } template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator, Iterator, const EndIterator, R, ctll::list, Tail...>) noexcept { +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator, Iterator, const EndIterator, + const match_type mtype, R, ctll::list, Tail...>) noexcept { // no previous option was matched => REJECT return not_matched; } // matching optional in patterns template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...>) noexcept { - if (auto r1 = evaluate(begin, current, end, captures, ctll::list, Tail...>())) { +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list, Tail...>) noexcept { + if (auto r1 = evaluate(begin, current, end, mtype, captures, ctll::list, Tail...>())) { return r1; - } else if (auto r2 = evaluate(begin, current, end, captures, ctll::list())) { + } else if (auto r2 = evaluate(begin, current, end, mtype, captures, ctll::list())) { return r2; } else { return not_matched; @@ -127,10 +146,11 @@ constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, c // lazy optional template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...>) noexcept { - if (auto r1 = evaluate(begin, current, end, captures, ctll::list())) { +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list, Tail...>) noexcept { + if (auto r1 = evaluate(begin, current, end, mtype, captures, ctll::list())) { return r1; - } else if (auto r2 = evaluate(begin, current, end, captures, ctll::list, Tail...>())) { + } else if (auto r2 = evaluate(begin, current, end, mtype, captures, ctll::list, Tail...>())) { return r2; } else { return not_matched; @@ -139,45 +159,51 @@ constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, c // matching sequence in patterns template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...>) noexcept { +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list, Tail...>) noexcept { if constexpr (sizeof...(TailContent) > 0) { - return evaluate(begin, current, end, captures, ctll::list, Tail...>()); + return evaluate(begin, current, end, mtype, captures, ctll::list, Tail...>()); } else { - return evaluate(begin, current, end, captures, ctll::list()); + return evaluate(begin, current, end, mtype, captures, ctll::list()); } } // matching empty in patterns template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list) noexcept { - return evaluate(begin, current, end, captures, ctll::list()); +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list) noexcept { + return evaluate(begin, current, end, mtype, captures, ctll::list()); } // matching asserts template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list) noexcept { +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list) noexcept { if (begin != current) { return not_matched; } - return evaluate(begin, current, end, captures, ctll::list()); + return evaluate(begin, current, end, mtype, captures, ctll::list()); } template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list) noexcept { +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list) noexcept { if (end != current) { return not_matched; } - return evaluate(begin, current, end, captures, ctll::list()); + return evaluate(begin, current, end, mtype, captures, ctll::list()); } // lazy repeat template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...>) noexcept { +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list, Tail...>) noexcept { // A..B size_t i{0}; for (; i < A && (A != 0); ++i) { - if (auto outer_result = evaluate(begin, current, end, captures, ctll::list, end_cycle_mark>())) { + if (auto outer_result = evaluate(begin, current, end, mtype, captures, + ctll::list, end_cycle_mark>())) { captures = outer_result.unmatch(); current = outer_result.get_end_position(); } else { @@ -185,12 +211,12 @@ constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, c } } - if (auto outer_result = evaluate(begin, current, end, captures, ctll::list())) { + if (auto outer_result = evaluate(begin, current, end, mtype, captures, ctll::list())) { return outer_result; } else { for (; (i < B) || (B == 0); ++i) { - if (auto inner_result = evaluate(begin, current, end, captures, ctll::list, end_cycle_mark>())) { - if (auto outer_result = evaluate(begin, inner_result.get_end_position(), end, inner_result.unmatch(), ctll::list())) { + if (auto inner_result = evaluate(begin, current, end, mtype, captures, ctll::list, end_cycle_mark>())) { + if (auto outer_result = evaluate(begin, inner_result.get_end_position(), end, mtype, inner_result.unmatch(), ctll::list())) { return outer_result; } else { captures = inner_result.unmatch(); @@ -201,17 +227,18 @@ constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, c return not_matched; } } - return evaluate(begin, current, end, captures, ctll::list()); + return evaluate(begin, current, end, mtype, captures, ctll::list()); } } // possessive repeat template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...>) noexcept { +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list, Tail...>) noexcept { // A..B size_t i{0}; for (; i < A && (A != 0); ++i) { - if (auto inner_result = evaluate(begin, current, end, captures, ctll::list, end_cycle_mark>())) { + if (auto inner_result = evaluate(begin, current, end, mtype, captures, ctll::list, end_cycle_mark>())) { captures = inner_result.unmatch(); current = inner_result.get_end_position(); } else { @@ -221,43 +248,46 @@ constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, c for (; (i < B) || (B == 0); ++i) { // try as many of inner as possible and then try outer once - if (auto inner_result = evaluate(begin, current, end, captures, ctll::list, end_cycle_mark>())) { + if (auto inner_result = evaluate(begin, current, end, mtype, captures, ctll::list, end_cycle_mark>())) { current = inner_result.get_end_position(); } else { - return evaluate(begin, current, end, captures, ctll::list()); + return evaluate(begin, current, end, mtype, captures, ctll::list()); } } - return evaluate(begin, current, end, captures, ctll::list()); + return evaluate(begin, current, end, mtype, captures, ctll::list()); } // (gready) repeat template -constexpr inline R evaluate_recursive(size_t i, const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...> stack) { +constexpr inline R evaluate_recursive(size_t i, const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list, Tail...> stack) { if ((i < B) || (B == 0)) { // a*ab // aab - if (auto inner_result = evaluate(begin, current, end, captures, ctll::list, end_cycle_mark>())) { + if (auto inner_result = evaluate(begin, current, end, mtype, captures, ctll::list, end_cycle_mark>())) { // TODO MSVC issue: // if I uncomment this return it will not fail in constexpr (but the matching result will not be correct) // return inner_result // I tried to add all constructors to R but without any success - if (auto rec_result = evaluate_recursive(i+1, begin, inner_result.get_end_position(), end, inner_result.unmatch(), stack)) { + if (auto rec_result = evaluate_recursive(i+1, begin, inner_result.get_end_position(), end, + mtype, inner_result.unmatch(), stack)) { return rec_result; } } } - return evaluate(begin, current, end, captures, ctll::list()); + return evaluate(begin, current, end, mtype, captures, ctll::list()); } template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...> stack) { +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list, Tail...> stack) { // A..B size_t i{0}; for (; i < A && (A != 0); ++i) { - if (auto inner_result = evaluate(begin, current, end, captures, ctll::list, end_cycle_mark>())) { + if (auto inner_result = evaluate(begin, current, end, mtype, captures, ctll::list, end_cycle_mark>())) { captures = inner_result.unmatch(); current = inner_result.get_end_position(); } else { @@ -265,63 +295,72 @@ constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, c } } - return evaluate_recursive(i, begin, current, end, captures, stack); + return evaluate_recursive(i, begin, current, end, mtype, captures, stack); } // repeat lazy_star template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...>) noexcept { - return evaluate(begin, current, end, captures, ctll::list, Tail...>()); +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list, Tail...>) noexcept { + return evaluate(begin, current, end, mtype, captures, ctll::list, Tail...>()); } // repeat (lazy_plus) template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...>) noexcept { - return evaluate(begin, current, end, captures, ctll::list, Tail...>()); +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list, Tail...>) noexcept { + return evaluate(begin, current, end, mtype, captures, ctll::list, Tail...>()); } // repeat (possessive_star) template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...>) noexcept { - return evaluate(begin, current, end, captures, ctll::list, Tail...>()); +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list, Tail...>) noexcept { + return evaluate(begin, current, end, mtype, captures, ctll::list, Tail...>()); } // repeat (possessive_plus) template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...>) noexcept { - return evaluate(begin, current, end, captures, ctll::list, Tail...>()); +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list, Tail...>) noexcept { + return evaluate(begin, current, end, mtype, captures, ctll::list, Tail...>()); } // repeat (greedy) star template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...>) noexcept { - return evaluate(begin, current, end, captures, ctll::list, Tail...>()); +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list, Tail...>) noexcept { + return evaluate(begin, current, end, mtype, captures, ctll::list, Tail...>()); } // repeat (greedy) plus template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...>) noexcept { - return evaluate(begin, current, end, captures, ctll::list, Tail...>()); +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list, Tail...>) noexcept { + return evaluate(begin, current, end, mtype, captures, ctll::list, Tail...>()); } // capture (numeric ID) template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...>) noexcept { - return evaluate(begin, current, end, captures.template start_capture(current), ctll::list, numeric_mark, Tail...>()); +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list, Tail...>) noexcept { + return evaluate(begin, current, end, mtype, captures.template start_capture(current), ctll::list, numeric_mark, Tail...>()); } // capture end mark (numeric and string ID) template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...>) noexcept { - return evaluate(begin, current, end, captures.template end_capture(current), ctll::list()); +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list, Tail...>) noexcept { + return evaluate(begin, current, end, mtype, captures.template end_capture(current), ctll::list()); } // capture (string ID) template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...>) noexcept { - return evaluate(begin, current, end, captures.template start_capture(current), ctll::list, numeric_mark, Tail...>()); +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list, Tail...>) noexcept { + return evaluate(begin, current, end, mtype, captures.template start_capture(current), ctll::list, numeric_mark, Tail...>()); } // backreference support (match agains content of iterators) @@ -339,11 +378,12 @@ template constexpr CTRE_FORCE_INLINE s // backreference with name template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...>) noexcept { +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list, Tail...>) noexcept { if (const auto ref = captures.template get()) { if (auto tmp = match_against_range(current, end, ref.begin(), ref.end()); tmp.match) { - return evaluate(begin, tmp.current, end, captures, ctll::list()); + return evaluate(begin, tmp.current, end, mtype, captures, ctll::list()); } } return not_matched; @@ -351,11 +391,12 @@ constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, c // backreference template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...>) noexcept { +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list, Tail...>) noexcept { if (const auto ref = captures.template get()) { if (auto tmp = match_against_range(current, end, ref.begin(), ref.end()); tmp.match) { - return evaluate(begin, tmp.current, end, captures, ctll::list()); + return evaluate(begin, tmp.current, end, mtype, captures, ctll::list()); } } return not_matched; diff --git a/include/ctre/wrapper.hpp b/include/ctre/wrapper.hpp index 55543145..8e25f1af 100644 --- a/include/ctre/wrapper.hpp +++ b/include/ctre/wrapper.hpp @@ -25,40 +25,42 @@ struct zero_terminated_string_end_iterator { }; template struct regular_expression { - template constexpr CTRE_FORCE_INLINE static auto match_2(IteratorBegin begin, IteratorEnd end) noexcept { - return match_re(begin, end, RE()); + template + constexpr CTRE_FORCE_INLINE static auto match_2(IteratorBegin begin, IteratorEnd end, const match_type mtype) noexcept { + return match_re(begin, end, RE(), mtype); } template constexpr CTRE_FORCE_INLINE static auto search_2(IteratorBegin begin, IteratorEnd end) noexcept { return search_re(begin, end, RE()); } constexpr CTRE_FORCE_INLINE regular_expression() noexcept { }; constexpr CTRE_FORCE_INLINE regular_expression(RE) noexcept { }; - template constexpr CTRE_FORCE_INLINE static auto match(Iterator begin, Iterator end) noexcept { - return match_re(begin, end, RE()); + template constexpr CTRE_FORCE_INLINE static auto match(Iterator begin, Iterator end, + match_type mtype = full_match) noexcept { + return match_re(begin, end, RE(), mtype); } - static constexpr CTRE_FORCE_INLINE auto match(const char * s) noexcept { - return match_2(s, zero_terminated_string_end_iterator()); + static constexpr CTRE_FORCE_INLINE auto match(const char * s, const match_type mtype = full_match) noexcept { + return match_2(s, zero_terminated_string_end_iterator(), mtype); } - static constexpr CTRE_FORCE_INLINE auto match(const wchar_t * s) noexcept { - return match_2(s, zero_terminated_string_end_iterator()); + static constexpr CTRE_FORCE_INLINE auto match(const wchar_t * s, const match_type mtype = full_match) noexcept { + return match_2(s, zero_terminated_string_end_iterator(), mtype); } - static constexpr CTRE_FORCE_INLINE auto match(const std::string & s) noexcept { - return match_2(s.c_str(), zero_terminated_string_end_iterator()); + static constexpr CTRE_FORCE_INLINE auto match(const std::string & s, const match_type mtype = full_match) noexcept { + return match_2(s.c_str(), zero_terminated_string_end_iterator(), mtype); } - static constexpr CTRE_FORCE_INLINE auto match(const std::wstring & s) noexcept { - return match_2(s.c_str(), zero_terminated_string_end_iterator()); + static constexpr CTRE_FORCE_INLINE auto match(const std::wstring & s, const match_type mtype = full_match) noexcept { + return match_2(s.c_str(), zero_terminated_string_end_iterator(), mtype); } - static constexpr CTRE_FORCE_INLINE auto match(std::string_view sv) noexcept { - return match(sv.begin(), sv.end()); + static constexpr CTRE_FORCE_INLINE auto match(std::string_view sv, const match_type mtype = full_match) noexcept { + return match(sv.begin(), sv.end(), mtype); } - static constexpr CTRE_FORCE_INLINE auto match(std::wstring_view sv) noexcept { - return match(sv.begin(), sv.end()); + static constexpr CTRE_FORCE_INLINE auto match(std::wstring_view sv, const match_type mtype = full_match) noexcept { + return match(sv.begin(), sv.end(), mtype); } - static constexpr CTRE_FORCE_INLINE auto match(std::u16string_view sv) noexcept { - return match(sv.begin(), sv.end()); + static constexpr CTRE_FORCE_INLINE auto match(std::u16string_view sv, const match_type mtype = full_match) noexcept { + return match(sv.begin(), sv.end(), mtype); } - static constexpr CTRE_FORCE_INLINE auto match(std::u32string_view sv) noexcept { - return match(sv.begin(), sv.end()); + static constexpr CTRE_FORCE_INLINE auto match(std::u32string_view sv, const match_type mtype = full_match) noexcept { + return match(sv.begin(), sv.end(), mtype); } template constexpr CTRE_FORCE_INLINE static auto search(Iterator begin, Iterator end) noexcept { return search_re(begin, end, RE()); From 2d7e6105d1559249e401f68e4c3a22c1902ab5ff Mon Sep 17 00:00:00 2001 From: Ben Hanson Date: Mon, 5 Nov 2018 17:48:54 +0000 Subject: [PATCH 02/23] Put in early return to complete change and defaulted match_type to make tests pass. --- include/ctre/evaluation.hpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/include/ctre/evaluation.hpp b/include/ctre/evaluation.hpp index 4379d5b6..0c417170 100644 --- a/include/ctre/evaluation.hpp +++ b/include/ctre/evaluation.hpp @@ -12,7 +12,7 @@ namespace ctre { // calling with pattern prepare stack and triplet of iterators template constexpr inline auto match_re(const Iterator begin, const EndIterator end, Pattern pattern, - const match_type mtype) noexcept { + const match_type mtype = full_match) noexcept { using return_type = decltype(regex_results(std::declval(), find_captures(pattern))); return evaluate(begin, begin, end, mtype, return_type{}, ctll::list()); } @@ -71,7 +71,7 @@ constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, c const match_type mtype, R captures, ctll::list) noexcept { if (end == current) { - if (mtype == partial_match && sizeof...(Tail) > 1) + if (mtype == partial_match) { return captures.set_end_mark(current).matched(); } @@ -266,11 +266,12 @@ constexpr inline R evaluate_recursive(size_t i, const Iterator begin, Iterator c // a*ab // aab - + if (auto inner_result = evaluate(begin, current, end, mtype, captures, ctll::list, end_cycle_mark>())) { // TODO MSVC issue: // if I uncomment this return it will not fail in constexpr (but the matching result will not be correct) - // return inner_result + if (mtype == partial_match) + return inner_result; // I tried to add all constructors to R but without any success if (auto rec_result = evaluate_recursive(i+1, begin, inner_result.get_end_position(), end, mtype, inner_result.unmatch(), stack)) { From ad8a67f28c0e0268ef0d572d96cedbd3f737ede6 Mon Sep 17 00:00:00 2001 From: Ben Hanson Date: Tue, 6 Nov 2018 12:30:22 +0000 Subject: [PATCH 03/23] Followup fix for early return, added test file. --- include/ctre/evaluation.hpp | 2 +- tests/partial_match.cpp | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 tests/partial_match.cpp diff --git a/include/ctre/evaluation.hpp b/include/ctre/evaluation.hpp index 0c417170..9b0c3f33 100644 --- a/include/ctre/evaluation.hpp +++ b/include/ctre/evaluation.hpp @@ -270,7 +270,7 @@ constexpr inline R evaluate_recursive(size_t i, const Iterator begin, Iterator c if (auto inner_result = evaluate(begin, current, end, mtype, captures, ctll::list, end_cycle_mark>())) { // TODO MSVC issue: // if I uncomment this return it will not fail in constexpr (but the matching result will not be correct) - if (mtype == partial_match) + if (mtype == partial_match && end == inner_result.get<0>()._end) return inner_result; // I tried to add all constructors to R but without any success if (auto rec_result = evaluate_recursive(i+1, begin, inner_result.get_end_position(), end, diff --git a/tests/partial_match.cpp b/tests/partial_match.cpp new file mode 100644 index 00000000..b82de09a --- /dev/null +++ b/tests/partial_match.cpp @@ -0,0 +1,13 @@ +#include +#include + +static constexpr inline auto pattern = +ctll::basic_fixed_string{ "[-+]?([0-9]{1,19}([.][0-9]{0,2})?|[.][0-9]{1,2})" }; + +static_assert(ctre::re().match("-", ctre::partial_match)); +static_assert(ctre::re().match(".", ctre::partial_match)); +static_assert(!ctre::re().match("a", ctre::partial_match)); +static_assert(ctre::re().match("-1", ctre::partial_match)); +static_assert(ctre::re().match(".12", ctre::partial_match)); +static_assert(ctre::re().match("+12.34", ctre::partial_match)); +static_assert(!ctre::re().match("12.34duh", ctre::partial_match)); From 937ebff5c3c742f58a3ff7d0ad96635276458012 Mon Sep 17 00:00:00 2001 From: Ben Hanson Date: Tue, 6 Nov 2018 13:17:41 +0000 Subject: [PATCH 04/23] Switched to get_end_position(). --- include/ctre/evaluation.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/ctre/evaluation.hpp b/include/ctre/evaluation.hpp index 9b0c3f33..4cd1c555 100644 --- a/include/ctre/evaluation.hpp +++ b/include/ctre/evaluation.hpp @@ -270,7 +270,7 @@ constexpr inline R evaluate_recursive(size_t i, const Iterator begin, Iterator c if (auto inner_result = evaluate(begin, current, end, mtype, captures, ctll::list, end_cycle_mark>())) { // TODO MSVC issue: // if I uncomment this return it will not fail in constexpr (but the matching result will not be correct) - if (mtype == partial_match && end == inner_result.get<0>()._end) + if (mtype == partial_match && end == inner_result.get_end_position()) return inner_result; // I tried to add all constructors to R but without any success if (auto rec_result = evaluate_recursive(i+1, begin, inner_result.get_end_position(), end, From a72dce6c6b29ebb57fe54c1a46154000a1a8720d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hana=20Dusi=CC=81kova=CC=81?= Date: Mon, 19 Nov 2018 14:12:04 +0100 Subject: [PATCH 05/23] class nontype template parameter support in GCC9 --- include/ctll/fixed_string.hpp | 1 + include/ctll/grammars.hpp | 2 +- include/ctll/parser.hpp | 69 ++++++++++++++--------------------- include/ctre/functions.hpp | 59 +++++++++++++++++------------- include/ctre/iterators.hpp | 28 +++++++------- include/ctre/literals.hpp | 20 ++++++---- include/ctre/range.hpp | 18 ++++----- 7 files changed, 100 insertions(+), 97 deletions(-) diff --git a/include/ctll/fixed_string.hpp b/include/ctll/fixed_string.hpp index ddaaca32..f0e7c1ab 100644 --- a/include/ctll/fixed_string.hpp +++ b/include/ctll/fixed_string.hpp @@ -53,6 +53,7 @@ template class basic_fixed_string { }; template basic_fixed_string(const CharT (&)[N]) -> basic_fixed_string; +template basic_fixed_string(basic_fixed_string) -> basic_fixed_string; } diff --git a/include/ctll/grammars.hpp b/include/ctll/grammars.hpp index 61539c02..d02fea2b 100644 --- a/include/ctll/grammars.hpp +++ b/include/ctll/grammars.hpp @@ -95,7 +95,7 @@ template struct augment_grammar: public Grammar { static constexpr auto rule(...) -> ctll::reject; // start stack is just a list; - static constexpr inline auto start_stack = list{}; + using start_stack = list; }; diff --git a/include/ctll/parser.hpp b/include/ctll/parser.hpp index d9d7502a..227d2ed5 100644 --- a/include/ctll/parser.hpp +++ b/include/ctll/parser.hpp @@ -19,15 +19,21 @@ template void id(T); struct placeholder { }; +template struct result_of_parsing { + constexpr operator bool() const noexcept { + return Correct; + } + using output_type = Subject; +}; + #if !__cpp_nontype_template_parameter_class template struct parser { #else -template struct parser { // in c++20 +template struct parser { // in c++20 #endif using Actions = ctll::conditional, identity>; - static inline constexpr auto grammar = augment_grammar(); + using grammar = augment_grammar; - template struct seed; template static constexpr auto get_current_term() noexcept { if constexpr (Pos < input.size()) { @@ -50,17 +56,17 @@ template return true and subject template static constexpr auto move(ctll::accept, Terminal, Stack, Subject) noexcept { - return seed(); + return result_of_parsing{}; } // if rule is reject => return false and subject template static constexpr auto move(ctll::reject, Terminal, Stack, Subject) noexcept { - return seed(); + return result_of_parsing{}; } // if rule is pop_input => move to next character template - static constexpr auto move(ctll::pop_input, Terminal, Stack, Subject) noexcept { - return seed(); + static constexpr auto move(ctll::pop_input, Terminal, Stack stack, Subject subject) noexcept { + return decide(stack, subject); } // if rule is string => push it to the front of stack template @@ -75,14 +81,17 @@ template ) => move to next character // and push string without the character (quick LL(1)) template - static constexpr auto move(ctll::list, Content...>, term, Stack stack, Subject) noexcept { - return seed(), stack)), Subject, decision::undecided>(); + static constexpr auto move(ctll::list, Content...>, term, Stack stack, Subject subject) noexcept { + return decide(push_front(list(), stack), subject); + //return seed(), stack)), Subject, decision::undecided>(); } // if rule is string with any character at the beginning (compatible with current term) => move to next character // and push string without the character (quick LL(1)) template - static constexpr auto move(ctll::list, term, Stack stack, Subject) noexcept { - return seed(), stack)), Subject, decision::undecided>(); + static constexpr auto move(ctll::list, term, Stack stack, Subject subject) noexcept { + return decide(push_front(list(), stack), subject); + + //return seed(), stack)), Subject, decision::undecided>(); } // decide if we need to take action or move template static constexpr auto decide(Stack previous_stack, Subject previous_subject) noexcept { @@ -97,49 +106,26 @@ template reject input if constexpr (std::is_same_v) { - return seed(); + return result_of_parsing(); } else { return decide(stack, subject); } } else { // all other cases are ordinary for LL(1) parser auto current_term = get_current_term(); - auto rule = decltype(grammar.rule(top_symbol,current_term))(); + auto rule = decltype(grammar::rule(top_symbol,current_term))(); return move(rule, current_term, stack, previous_subject); } } - // helper type for trampoline - - template struct seed { - constexpr inline CTLL_FORCE_INLINE operator bool() const noexcept { - return Decision == decision::accept; - } - - using output_type = Subject; - - static constexpr auto parse() noexcept { - // push current position to decide function with current stack and subject - return decide(Stack{}, Subject{}); - } - - constexpr auto operator+(placeholder) const noexcept { - if constexpr (Decision == decision::undecided) { - // parse for current char (RPos) with previous stack and subject :) - return decltype(seed::parse()){}; - } else { - // if there is decision already => just push it to the end of fold expression - return *this; - } - } - }; template using index_placeholder = placeholder; +#if false // trampolines with folded expression template static constexpr auto trampoline_decide(Subject, std::index_sequence) noexcept { // parse everything for first char and than for next and next ... // Pos+1 is needed as we want to finish calculation with epsilons on stack - auto v = (seed<0, decltype(grammar.start_stack), Subject, decision::undecided>::parse() + ... + index_placeholder()); + auto v = (seed<0, grammar::start_stack, Subject, decision::undecided>::parse() + ... + index_placeholder()); //id(v); return v; } @@ -148,10 +134,11 @@ template ()); } +#endif - template using output = decltype(trampoline_decide()); - static inline constexpr bool correct = trampoline_decide(empty_subject()); - template static inline constexpr bool correct_with = trampoline_decide(); + template using output = decltype(decide<0, typename grammar::start_stack, Subject>({}, {})); + static inline constexpr bool correct = decide<0, typename grammar::start_stack, empty_subject>({}, {}); + template static inline constexpr bool correct_with = decide<0, typename grammar::start_stack, Subject>({}, {}); }; } // end of ctll namespace diff --git a/include/ctre/functions.hpp b/include/ctre/functions.hpp index d5af6324..5902018e 100644 --- a/include/ctre/functions.hpp +++ b/include/ctre/functions.hpp @@ -10,6 +10,7 @@ namespace ctre { +#if !__cpp_nontype_template_parameter_class // avoiding CTAD limitation in C++17 template class pattern: public ctll::basic_fixed_string { using parent = ctll::basic_fixed_string; @@ -27,27 +28,32 @@ template class fixed_string: public ctll::basic_fixed }; template fixed_string(const CharT (&)[N]) -> fixed_string; +#endif #if __cpp_nontype_template_parameter_class -template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto re() noexcept { +template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto re() noexcept { #else template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto re() noexcept { - using tmp = typename ctll::parser::template output>; +#endif + constexpr auto _input = input; + using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); using re = decltype(front(typename tmp::output_type::stack_type())); return ctre::regular_expression(re()); } -#endif + // in moment when we get C++20 support this will start to work :) -#if __cpp_nontype_template_parameter_class -template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto match(std::string_view sv) noexcept { +template void identify(T); - using tmp = typename ctll::parser::template output>; +#if __cpp_nontype_template_parameter_class +template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto match(std::string_view sv) noexcept { + constexpr auto _input = input; + using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); - using re = decltype(front(typename tmp::output_type::stack_type())); - auto re_obj = ctre::regular_expression(re()); + using re = decltype(ctll::front(typename tmp::output_type::stack_type())); + auto re_obj = ctre::regular_expression(re()); return re_obj.match(sv); } #else @@ -55,27 +61,27 @@ template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto match(std: using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); - using re = decltype(front(typename tmp::output_type::stack_type())); - auto re_obj = ctre::regular_expression(re()); + using re = decltype(ctll::front(typename tmp::output_type::stack_type())); + auto re_obj = ctre::regular_expression(re()); return re_obj.match(sv); } #endif #if __cpp_nontype_template_parameter_class -template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto match(ForwardIt first, ForwardIt last) noexcept { - - using tmp = typename ctll::parser::template output>; +template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto match(ForwardIt first, ForwardIt last) noexcept { + constexpr auto _input = input; + using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); - using re = decltype(front(typename tmp::output_type::stack_type())); + using re = decltype(ctll::front(typename tmp::output_type::stack_type())); return ctre::regular_expression(re()).match(first, last); } #else template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto match(ForwardIt first, ForwardIt last) noexcept { - - using tmp = typename ctll::parser::template output>; + constexpr auto _input = input; + using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); - using re = decltype(front(typename tmp::output_type::stack_type())); + using re = decltype(ctll::front(typename tmp::output_type::stack_type())); auto re_obj = ctre::regular_expression(re()); return re_obj.match(first,last); } @@ -83,11 +89,12 @@ template CTRE_FLATTEN constexpr CTRE_FORCE_IN #if __cpp_nontype_template_parameter_class -template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto search(std::string_view sv) noexcept { +template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto search(std::string_view sv) noexcept { - using tmp = typename ctll::parser::template output>; + constexpr auto _input = input; + using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); - using re = decltype(front(typename tmp::output_type::stack_type())); + using re = decltype(ctll::front(typename tmp::output_type::stack_type())); auto re_obj = ctre::regular_expression(re()); return re_obj.search(sv); } @@ -96,7 +103,7 @@ template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto search(std using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); - using re = decltype(front(typename tmp::output_type::stack_type())); + using re = decltype(ctll::front(typename tmp::output_type::stack_type())); auto re_obj = ctre::regular_expression(re()); return re_obj.search(sv); } @@ -104,11 +111,11 @@ template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto search(std #if __cpp_nontype_template_parameter_class -template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto search(ForwardIt first, ForwardIt last) noexcept { - - using tmp = typename ctll::parser::template output>; +template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto search(ForwardIt first, ForwardIt last) noexcept { + constexpr auto _input = input; + using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); - using re = decltype(front(typename tmp::output_type::stack_type())); + using re = decltype(ctll::front(typename tmp::output_type::stack_type())); auto re_obj = ctre::regular_expression(re()); return re_obj.search(first, last); } @@ -117,7 +124,7 @@ template CTRE_FLATTEN constexpr CTRE_FORCE_IN using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); - using re = decltype(front(typename tmp::output_type::stack_type())); + using re = decltype(ctll::front(typename tmp::output_type::stack_type())); auto re_obj = ctre::regular_expression(re()); return re_obj.search(first, last); } diff --git a/include/ctre/iterators.hpp b/include/ctre/iterators.hpp index d755b3be..7ebd3f0f 100644 --- a/include/ctre/iterators.hpp +++ b/include/ctre/iterators.hpp @@ -52,16 +52,6 @@ template constexpr a return regex_iterator(begin, end); } -#if __cpp_nontype_template_parameter_class -template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto iterator(BeginIterator begin, EndIterator end) noexcept { - - using tmp = typename ctll::parser::template output>; - static_assert(tmp(), "Regular Expression contains syntax error."); - using re = decltype(front(typename tmp::output_type::stack_type())); - return iterator(begin, end, re); -} -#endif - constexpr auto iterator() noexcept { return regex_end_iterator{}; } @@ -71,13 +61,25 @@ template constexpr auto iterator(const Subject & } + #if __cpp_nontype_template_parameter_class -template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto iterator(const Subject & subject) noexcept { +template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto iterator(BeginIterator begin, EndIterator end) noexcept { + constexpr auto _input = input; + using tmp = typename ctll::parser::template output>; + static_assert(tmp(), "Regular Expression contains syntax error."); + using re = decltype(front(typename tmp::output_type::stack_type())); + return iterator(begin, end, re()); +} +#endif - using tmp = typename ctll::parser::template output>; + +#if __cpp_nontype_template_parameter_class +template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto iterator(const Subject & subject) noexcept { + constexpr auto _input = input; + using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); using re = decltype(front(typename tmp::output_type::stack_type())); - return iterator(subject.begin(), subject.end(), re); + return iterator(subject.begin(), subject.end(), re()); } #endif diff --git a/include/ctre/literals.hpp b/include/ctre/literals.hpp index 8b1e893a..85220864 100644 --- a/include/ctre/literals.hpp +++ b/include/ctre/literals.hpp @@ -11,14 +11,16 @@ namespace ctre { -// in C++17 (clang & gcc with gnu extension) we need translate character pack into basic_fixed_string +// in C++17 (clang & gcc with gnu extension) we need translate character pack into ctll::basic_fixed_string // in C++20 we have `class nontype template parameters` #if !__cpp_nontype_template_parameter_class -template static inline constexpr auto _fixed_string_reference = ctll::basic_fixed_string({input...}); +template static inline constexpr auto _fixed_string_reference = ctll::ctll::basic_fixed_string({input...}); #endif namespace literals { + +#if false #ifndef _MSC_VER @@ -29,7 +31,7 @@ namespace literals { template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto operator""_ctre() noexcept { constexpr auto & input = _fixed_string_reference; #else -template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto operator""_ctre() noexcept { +template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto operator""_ctre() noexcept { #endif using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); @@ -40,9 +42,11 @@ template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE aut // this will need to be fixed with C++20 +#if !__cpp_nontype_template_parameter_class template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto operator""_ctre_id() noexcept { return id(); } +#endif #endif @@ -56,7 +60,7 @@ namespace test_literals { template CTRE_FLATTEN constexpr inline auto operator""_ctre_test() noexcept { constexpr auto & input = _fixed_string_reference; #else -template CTRE_FLATTEN constexpr inline auto operator""_ctre_test() noexcept { +template CTRE_FLATTEN constexpr inline auto operator""_ctre_test() noexcept { #endif return ctll::parser::correct; } @@ -65,7 +69,7 @@ template CTRE_FLATTEN constexpr inline auto operator" template CTRE_FLATTEN constexpr inline auto operator""_ctre_gen() noexcept { constexpr auto & input = _fixed_string_reference; #else -template CTRE_FLATTEN constexpr inline auto operator""_ctre_gen() noexcept { +template CTRE_FLATTEN constexpr inline auto operator""_ctre_gen() noexcept { #endif using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); @@ -77,7 +81,7 @@ template CTRE_FLATTEN constexpr inline auto operator" template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto operator""_ctre_syntax() noexcept { constexpr auto & input = _fixed_string_reference; #else -template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto operator""_ctre_syntax() noexcept { +template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto operator""_ctre_syntax() noexcept { #endif return ctll::parser::template correct_with>; } @@ -87,13 +91,15 @@ template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE aut template CTRE_FLATTEN constexpr inline auto operator""_simple_test() noexcept { constexpr auto & input = _fixed_string_reference; #else -template CTRE_FLATTEN constexpr inline auto operator""_simple_test() noexcept { +template CTRE_FLATTEN constexpr inline auto operator""_simple_test() noexcept { #endif return ctll::parser::correct; } #endif +#endif + } // literals diff --git a/include/ctre/range.hpp b/include/ctre/range.hpp index 450c4dd8..7c4c3535 100644 --- a/include/ctre/range.hpp +++ b/include/ctre/range.hpp @@ -20,16 +20,16 @@ template struct rege template constexpr auto range(BeginIterator begin, EndIterator end, RE) noexcept { - return regex_range(begin, end); + //return regex_range(begin, end); } #if __cpp_nontype_template_parameter_class -template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto range(BeginIterator begin, EndIterator end) noexcept { - - using tmp = typename ctll::parser::template output>; +template constexpr auto range(BeginIterator begin, EndIterator end) noexcept { + constexpr auto _input = input; + using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); using re = decltype(front(typename tmp::output_type::stack_type())); - return range(begin, end, re); + return range(begin, end, re()); } #endif @@ -42,12 +42,12 @@ template constexpr auto range(const char * subject, RE re) noexcep } #if __cpp_nontype_template_parameter_class -template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto range(const Subject & subject) noexcept { - - using tmp = typename ctll::parser::template output>; +template constexpr auto range(const Subject & subject) noexcept { + constexpr auto _input = input; + using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); using re = decltype(front(typename tmp::output_type::stack_type())); - return range(subject.begin(), subject.end(), re); + return range(subject.begin(), subject.end(), re()); } #endif From 4ce44b2e1801876dce4de8d65977fc93759a560c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hana=20Dusi=CC=81kova=CC=81?= Date: Wed, 21 Nov 2018 10:22:55 +0100 Subject: [PATCH 06/23] cnttp support in gcc9 experimental with workaround for bugs 88092 and 88095 --- Makefile | 21 ++++++++++------- a.cpp | 24 +++++++++++++++++++ cpp-20-check.sh | 11 +++++++++ include/ctll/parser.hpp | 3 +-- include/ctre/functions.hpp | 25 ++++++++++---------- include/ctre/literals.hpp | 33 +++++++++++++++------------ include/ctre/range.hpp | 2 +- result.cpp | 6 ++++- test.cpp | 16 ++++++++----- tests/benchmark-exec/baseline.cpp | 2 ++ tests/benchmark-exec/boost.cpp | 38 +++++++++++++++++++++++++++++++ tests/benchmark-exec/ctre.cpp | 4 +++- tests/benchmark-exec/pcre.cpp | 13 +++++++++-- tests/benchmark-exec/re2.cpp | 36 +++++++++++++++++++++++++++++ tests/benchmark-exec/std.cpp | 4 +++- tests/matching3.cpp | 20 ++++++++++++---- 16 files changed, 206 insertions(+), 52 deletions(-) create mode 100644 a.cpp create mode 100755 cpp-20-check.sh create mode 100644 tests/benchmark-exec/boost.cpp create mode 100644 tests/benchmark-exec/re2.cpp diff --git a/Makefile b/Makefile index 73ab7485..539c4815 100644 --- a/Makefile +++ b/Makefile @@ -2,26 +2,31 @@ default: all -TARGETS := result.cpp test.cpp $(wildcard tests/benchmark-exec/*.cpp) +TARGETS := a.cpp result.cpp test.cpp $(wildcard tests/benchmark-exec/*.cpp) +IGNORE := $(wildcard tests/benchmark/*.cpp) $(wildcard tests/benchmark-exec/*.cpp) tests/trampoline.cpp DESATOMAT := /www/root/desatomat/console/desatomat.php -CXXFLAGS := -std=c++17 -Iinclude -O3 -Wno-gnu-string-literal-operator-template -pedantic -Wall -Wextra -#-Xclang -fconcepts-ts -LDFLAGS := -lpcre2-8 +CPP_STANDARD := $(shell ./cpp-20-check.sh $(CXX)) +CXXFLAGS := $(CPP_STANDARD) -Iinclude -O3 -Wno-gnu-string-literal-operator-template -pedantic -Wall -Wextra +LDFLAGS := +#-lpcre2-8 -lboost_regex -lre2 TESTS := $(wildcard tests/*.cpp) $(wildcard tests/benchmark/*.cpp) TRUE_TARGETS := $(TARGETS:%.cpp=%) -IGNORE := $(wildcard tests/benchmark/*.cpp) tests/benchmark-exec/boost.cpp wildcard tests/benchmark-exec/re2.cpp -OBJECTS_PRE := $(TARGETS:%.cpp=%.o) $(TESTS:%.cpp=%.o) -OBJECTS := $(filter-out $(IGNORE:%.cpp=%.o), $(OBJECTS_PRE)) +override TRUE_TARGETS := $(filter-out $(IGNORE:%.cpp=%), $(TRUE_TARGETS)) +OBJECTS := $(TARGETS:%.cpp=%.o) $(TESTS:%.cpp=%.o) +override OBJECTS := $(filter-out $(IGNORE:%.cpp=%.o),$(OBJECTS)) DEPEDENCY_FILES := $(OBJECTS:%.o=%.d) all: $(TRUE_TARGETS) $(OBJECTS) +list: + echo $(SUPPORTED_CPP20) + $(TRUE_TARGETS): %: %.o - $(CXX) $< $(LDFLAGS) -o $@ + $(CXX) $< $(LDFLAGS) -o $@ > /dev/null $(OBJECTS): %.o: %.cpp $(CXX) $(CXXFLAGS) -MMD -c $< -o $@ diff --git a/a.cpp b/a.cpp new file mode 100644 index 00000000..684b8a84 --- /dev/null +++ b/a.cpp @@ -0,0 +1,24 @@ +#include +#include +#include +#include + + +struct name { std::string_view first, family; }; + +std::optional extract(std::string_view sv) noexcept { + #if __cpp_nontype_template_parameter_class + if (auto [re,f,l] = ctre::match<"([A-Za-z]+?),([A-Za-z]+?)">(sv); re) { + #else + using namespace ctre::literals; + if (auto [re,f,l] = "([A-Za-z]+?),([A-Za-z]+?)"_ctre.match(sv); re) { + #endif + return name{f,l}; + } else { + return std::nullopt; + } +} + +int main() { + +} \ No newline at end of file diff --git a/cpp-20-check.sh b/cpp-20-check.sh new file mode 100755 index 00000000..7ad71fec --- /dev/null +++ b/cpp-20-check.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +if echo "" | $1 -std=c++2a -E -x c++ - 2>/dev/null 1>/dev/null; then + VERSION=`$1 -v 2>&1 | grep "gcc" | grep "experimental"` + if [ -z "$VERSION" ]; then + echo "-std=c++2a"; + else + echo "-std=c++2a -DISABLE_GNU_EXTENSION_LITERALS"; + fi +else + echo "-std=c++17"; +fi diff --git a/include/ctll/parser.hpp b/include/ctll/parser.hpp index 227d2ed5..6e8a6eb7 100644 --- a/include/ctll/parser.hpp +++ b/include/ctll/parser.hpp @@ -125,8 +125,7 @@ template static constexpr auto trampoline_decide(Subject, std::index_sequence) noexcept { // parse everything for first char and than for next and next ... // Pos+1 is needed as we want to finish calculation with epsilons on stack - auto v = (seed<0, grammar::start_stack, Subject, decision::undecided>::parse() + ... + index_placeholder()); - //id(v); + auto v = (decide<0, typename grammar::start_stack, Subject>({}, {}) + ... + index_placeholder()); return v; } diff --git a/include/ctre/functions.hpp b/include/ctre/functions.hpp index 5902018e..19d47d8b 100644 --- a/include/ctre/functions.hpp +++ b/include/ctre/functions.hpp @@ -32,10 +32,12 @@ template fixed_string(const CharT (&)[N]) -> fixed_st #if __cpp_nontype_template_parameter_class template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto re() noexcept { +constexpr auto _input = input; // workaround for GCC 9 bug 88092 #else template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto re() noexcept { +constexpr auto & _input = input; #endif - constexpr auto _input = input; + using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); using re = decltype(front(typename tmp::output_type::stack_type())); @@ -49,7 +51,7 @@ template void identify(T); #if __cpp_nontype_template_parameter_class template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto match(std::string_view sv) noexcept { - constexpr auto _input = input; + constexpr auto _input = input; // workaround for GCC 9 bug 88092 using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); using re = decltype(ctll::front(typename tmp::output_type::stack_type())); @@ -58,8 +60,8 @@ template CTRE_FLATTEN constexpr CTRE_FORCE_INLI } #else template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto match(std::string_view sv) noexcept { - - using tmp = typename ctll::parser::template output>; + constexpr auto & _input = input; + using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); using re = decltype(ctll::front(typename tmp::output_type::stack_type())); auto re_obj = ctre::regular_expression(re()); @@ -70,7 +72,7 @@ template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto match(std: #if __cpp_nontype_template_parameter_class template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto match(ForwardIt first, ForwardIt last) noexcept { - constexpr auto _input = input; + constexpr auto _input = input; // workaround for GCC 9 bug 88092 using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); using re = decltype(ctll::front(typename tmp::output_type::stack_type())); @@ -78,7 +80,7 @@ template CTRE_FLATTEN const } #else template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto match(ForwardIt first, ForwardIt last) noexcept { - constexpr auto _input = input; + constexpr auto & _input = input; using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); using re = decltype(ctll::front(typename tmp::output_type::stack_type())); @@ -90,8 +92,7 @@ template CTRE_FLATTEN constexpr CTRE_FORCE_IN #if __cpp_nontype_template_parameter_class template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto search(std::string_view sv) noexcept { - - constexpr auto _input = input; + constexpr auto _input = input; // workaround for GCC 9 bug 88092 using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); using re = decltype(ctll::front(typename tmp::output_type::stack_type())); @@ -100,8 +101,8 @@ template CTRE_FLATTEN constexpr CTRE_FORCE_INLI } #else template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto search(std::string_view sv) noexcept { - - using tmp = typename ctll::parser::template output>; + constexpr auto & _input = input; + using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); using re = decltype(ctll::front(typename tmp::output_type::stack_type())); auto re_obj = ctre::regular_expression(re()); @@ -112,7 +113,7 @@ template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto search(std #if __cpp_nontype_template_parameter_class template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto search(ForwardIt first, ForwardIt last) noexcept { - constexpr auto _input = input; + constexpr auto _input = input; // workaround for GCC 9 bug 88092 using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); using re = decltype(ctll::front(typename tmp::output_type::stack_type())); @@ -121,7 +122,7 @@ template CTRE_FLATTEN const } #else template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto search(ForwardIt first, ForwardIt last) noexcept { - + constexpr auto & _input = input; using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); using re = decltype(ctll::front(typename tmp::output_type::stack_type())); diff --git a/include/ctre/literals.hpp b/include/ctre/literals.hpp index 85220864..2b63faab 100644 --- a/include/ctre/literals.hpp +++ b/include/ctre/literals.hpp @@ -15,25 +15,25 @@ namespace ctre { // in C++20 we have `class nontype template parameters` #if !__cpp_nontype_template_parameter_class -template static inline constexpr auto _fixed_string_reference = ctll::ctll::basic_fixed_string({input...}); +template static inline constexpr auto _fixed_string_reference = ctll::basic_fixed_string({input...}); #endif namespace literals { -#if false - #ifndef _MSC_VER +#ifndef ISABLE_GNU_EXTENSION_LITERALS // add this when we will have concepts // requires ctll::parser, ctre::pcre_actions>::template correct_with> #if !__cpp_nontype_template_parameter_class template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto operator""_ctre() noexcept { - constexpr auto & input = _fixed_string_reference; + constexpr auto & _input = _fixed_string_reference; #else template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto operator""_ctre() noexcept { + constexpr auto _input = input; // workaround for GCC 9 bug 88092 #endif - using tmp = typename ctll::parser::template output>; + using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); using re = decltype(front(typename tmp::output_type::stack_type())); return ctre::regular_expression(re()); @@ -55,23 +55,26 @@ template CTRE_FLATTEN constexpr CTRE_FORCE_I namespace test_literals { #ifndef _MSC_VER +#ifndef ISABLE_GNU_EXTENSION_LITERALS #if !__cpp_nontype_template_parameter_class template CTRE_FLATTEN constexpr inline auto operator""_ctre_test() noexcept { - constexpr auto & input = _fixed_string_reference; + constexpr auto & _input = _fixed_string_reference; #else template CTRE_FLATTEN constexpr inline auto operator""_ctre_test() noexcept { + constexpr auto _input = input; // workaround for GCC 9 bug 88092 #endif - return ctll::parser::correct; + return ctll::parser::correct; } #if !__cpp_nontype_template_parameter_class template CTRE_FLATTEN constexpr inline auto operator""_ctre_gen() noexcept { - constexpr auto & input = _fixed_string_reference; + constexpr auto & _input = _fixed_string_reference; #else template CTRE_FLATTEN constexpr inline auto operator""_ctre_gen() noexcept { + constexpr auto _input = input; // workaround for GCC 9 bug 88092 #endif - using tmp = typename ctll::parser::template output>; + using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); return typename tmp::output_type::stack_type(); } @@ -79,25 +82,27 @@ template CTRE_FLATTEN constexpr inline auto ope #if !__cpp_nontype_template_parameter_class template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto operator""_ctre_syntax() noexcept { - constexpr auto & input = _fixed_string_reference; + constexpr auto & _input = _fixed_string_reference; #else template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto operator""_ctre_syntax() noexcept { + constexpr auto _input = input; // workaround for GCC 9 bug 88092 #endif - return ctll::parser::template correct_with>; + return ctll::parser::template correct_with>; } #if !__cpp_nontype_template_parameter_class template CTRE_FLATTEN constexpr inline auto operator""_simple_test() noexcept { - constexpr auto & input = _fixed_string_reference; + constexpr auto & _input = _fixed_string_reference; #else template CTRE_FLATTEN constexpr inline auto operator""_simple_test() noexcept { + constexpr auto _input = input; // workaround for GCC 9 bug 88092 #endif - return ctll::parser::correct; + return ctll::parser::correct; } #endif - +#endif #endif diff --git a/include/ctre/range.hpp b/include/ctre/range.hpp index 7c4c3535..22b6fe9e 100644 --- a/include/ctre/range.hpp +++ b/include/ctre/range.hpp @@ -20,7 +20,7 @@ template struct rege template constexpr auto range(BeginIterator begin, EndIterator end, RE) noexcept { - //return regex_range(begin, end); + return regex_range(begin, end); } #if __cpp_nontype_template_parameter_class diff --git a/result.cpp b/result.cpp index 34a6c35a..3901e158 100644 --- a/result.cpp +++ b/result.cpp @@ -11,9 +11,13 @@ enum class type { }; std::pair match(std::string_view subject) { - using namespace ctre::literals; + #if __cpp_nontype_template_parameter_class + if (auto [matched, identifier, number] = ctre::match<"(?:([a-z]++)|([0-9]++))">(subject); matched) { + #else + using namespace ctre::literals; if (auto [matched, identifier, number] = "(?:([a-z]++)|([0-9]++))"_ctre.match(subject); matched) { + #endif if (identifier) return {type::identifier, std::string_view{identifier}}; else if (number) return {type::number, std::string_view{number}}; else return {type::matched, std::string_view{matched}}; diff --git a/test.cpp b/test.cpp index d50bef0c..da19c275 100644 --- a/test.cpp +++ b/test.cpp @@ -4,12 +4,16 @@ #include -static constexpr ctre::pattern pattern = "(?:hello|cau|guten tag|ola)|(?:hello|cau|guten tag|ola)|(?:hello|cau|guten tag|ola)|(?:hello|cau|guten tag|ola)|(?:hello|cau|guten tag|ola)|(?:hello|cau|guten tag|ola)|(?:hello|cau|guten tag|ola)"; - -bool fnc(std::string_view view) { - return ctre::match(view); -} +//static constexpr ctre::pattern pattern = "(?:hello|cau|guten tag|ola)|(?:hello|cau|guten tag|ola)|(?:hello|cau|guten tag|ola)|(?:hello|cau|guten tag|ola)|(?:hello|cau|guten tag|ola)|(?:hello|cau|guten tag|ola)|(?:hello|cau|guten tag|ola)"; +// +//bool fnc(std::string_view view) { +// return ctre::match(view); +//} +// +//int main() { +// std::cout << fnc("hello") << "\n"; +//} int main() { - std::cout << fnc("hello") << "\n"; + } \ No newline at end of file diff --git a/tests/benchmark-exec/baseline.cpp b/tests/benchmark-exec/baseline.cpp index d0492a78..e46ed4b9 100644 --- a/tests/benchmark-exec/baseline.cpp +++ b/tests/benchmark-exec/baseline.cpp @@ -3,6 +3,8 @@ #include #include #include "ctre.hpp" +#include +#include extern "C" { diff --git a/tests/benchmark-exec/boost.cpp b/tests/benchmark-exec/boost.cpp new file mode 100644 index 00000000..8ce6b45b --- /dev/null +++ b/tests/benchmark-exec/boost.cpp @@ -0,0 +1,38 @@ +#include +#include +#include +#include +#include "ctre.hpp" +#include +#include + +extern "C" { + +#define PCRE2_CODE_UNIT_WIDTH 8 +#define PCRE2_STATIC +#include + +} + +int main (int argc, char ** argv) +{ + + auto re = boost::regex( "[0-9a-fA-F]{8,16}" ); + //std::regex re("([aAbB]{4,}|[xXyY]{4,}|[1234]{4,})0"); + + auto grep = [&](auto && stream) { + std::string line; + while (std::getline(stream, line)) { + if (regex_search(line, re)) { + std::cout << line << '\n'; + } + } + }; + + if (argc == 1) { + grep(std::cin); + } else for (int i = 1; i < argc; ++i) { + std::string fname{std::string(argv[i])}; + grep(std::ifstream(fname, std::ifstream::in)); + } +} diff --git a/tests/benchmark-exec/ctre.cpp b/tests/benchmark-exec/ctre.cpp index 78c36c28..28372cbe 100644 --- a/tests/benchmark-exec/ctre.cpp +++ b/tests/benchmark-exec/ctre.cpp @@ -3,6 +3,8 @@ #include #include #include "ctre.hpp" +#include +#include extern "C" { @@ -15,7 +17,7 @@ extern "C" { int main (int argc, char ** argv) { using namespace ctre::literals; - constexpr auto re = "[0-9a-fA-F]{8,16}+"_ctre; + [[maybe_unused]] constexpr auto re = "[0-9a-fA-F]{8,16}?"_ctre; auto grep = [&](auto && stream) { std::string line; diff --git a/tests/benchmark-exec/pcre.cpp b/tests/benchmark-exec/pcre.cpp index 4bd7b603..62d205ff 100644 --- a/tests/benchmark-exec/pcre.cpp +++ b/tests/benchmark-exec/pcre.cpp @@ -3,6 +3,8 @@ #include #include #include "ctre.hpp" +#include +#include extern "C" { @@ -16,13 +18,20 @@ int main (int argc, char ** argv) { int errornumber = 0; size_t erroroffset = 0; - auto * pattern = reinterpret_cast("([aAbB]{4,}|[xXyY]{4,}|[1234]{4,})0"); + const auto * pattern = reinterpret_cast("[0-9a-fA-F]{8,16}"); pcre2_code * re = pcre2_compile(pattern, PCRE2_ZERO_TERMINATED, 0, &errornumber, &erroroffset, NULL); + if (!re) { + std::cerr << "compilation failed\n"; + return 1; + } + + auto match_data = pcre2_match_data_create_from_pattern(re, NULL); + auto grep = [&](auto && stream) { std::string line; while (std::getline(stream, line)) { - if (pcre2_match(re, reinterpret_cast(line.c_str()), line.length(), 0, 0, NULL, NULL) >= 0) { + if (pcre2_match(re, reinterpret_cast(line.c_str()), line.length(), 0, 0, match_data, NULL) >= 0) { std::cout << line << '\n'; } } diff --git a/tests/benchmark-exec/re2.cpp b/tests/benchmark-exec/re2.cpp new file mode 100644 index 00000000..1a4087bf --- /dev/null +++ b/tests/benchmark-exec/re2.cpp @@ -0,0 +1,36 @@ +#include +#include +#include +#include +#include "ctre.hpp" +#include +#include + +extern "C" { + +#define PCRE2_CODE_UNIT_WIDTH 8 +#define PCRE2_STATIC +#include + +} + +int main (int argc, char ** argv) +{ + re2::RE2 re("[0-9a-fA-F]{8,16}"); + + auto grep = [&](auto && stream) { + std::string line; + while (std::getline(stream, line)) { + if (re2::RE2::PartialMatch(line, re)) { + std::cout << line << '\n'; + } + } + }; + + if (argc == 1) { + grep(std::cin); + } else for (int i = 1; i < argc; ++i) { + std::string fname{std::string(argv[i])}; + grep(std::ifstream(fname, std::ifstream::in)); + } +} diff --git a/tests/benchmark-exec/std.cpp b/tests/benchmark-exec/std.cpp index 9ce2f66c..c585d321 100644 --- a/tests/benchmark-exec/std.cpp +++ b/tests/benchmark-exec/std.cpp @@ -3,6 +3,8 @@ #include #include #include "ctre.hpp" +#include +#include extern "C" { @@ -14,7 +16,7 @@ extern "C" { int main (int argc, char ** argv) { - std::regex re("([aAbB]{4,}|[xXyY]{4,}|[1234]{4,})0"); + std::regex re("[0-9a-fA-F]{8,16}"); auto grep = [&](auto && stream) { std::string line; diff --git a/tests/matching3.cpp b/tests/matching3.cpp index e2e38137..e46563ee 100644 --- a/tests/matching3.cpp +++ b/tests/matching3.cpp @@ -5,14 +5,26 @@ using namespace ctre::literals; using namespace ctre::test_literals; using namespace std::string_view_literals; -#define TEST_MATCH(id, pattern, subject) static constexpr inline auto _ptn ## id = ctll::basic_fixed_string(pattern); static_assert(ctre::re<_ptn ## id>().match(subject)); +#if __cpp_nontype_template_parameter_class -#define TEST_SEARCH(id, pattern, subject) static constexpr inline auto _ptn ## id = ctll::basic_fixed_string(pattern); static_assert(ctre::re<_ptn ## id>().search(subject)); +#define TEST_MATCH(id, pattern, subject) static_assert(ctre::match<_ptn>(subject)) -#define TEST_NOT_MATCH(id, pattern, subject) static constexpr inline auto _ptn ## id = ctll::basic_fixed_string(pattern); static_assert(!ctre::re<_ptn ## id>().match(subject)); +#define TEST_SEARCH(id, pattern, subject) static_assert(ctre::search<_ptn>(subject)) -#define TEST_NOT_SEARCH(id, pattern, subject) static constexpr inline auto _ptn ## id = ctll::basic_fixed_string(pattern); static_assert(!ctre::re<_ptn ## id>().search(subject)); +#define TEST_NOT_MATCH(id, pattern, subject) static_assert(!ctre::match<_ptn>(subject)) +#define TEST_NOT_SEARCH(id, pattern, subject) static_assert(!ctre::search<_ptn>(subject)) + +#else + +#define TEST_MATCH(id, pattern, subject) static constexpr inline auto _ptn ## id = ctll::basic_fixed_string(pattern); static_assert(ctre::re<_ptn ## id>().match(subject)) + +#define TEST_SEARCH(id, pattern, subject) static constexpr inline auto _ptn ## id = ctll::basic_fixed_string(pattern); static_assert(ctre::re<_ptn ## id>().search(subject)) + +#define TEST_NOT_MATCH(id, pattern, subject) static constexpr inline auto _ptn ## id = ctll::basic_fixed_string(pattern); static_assert(!ctre::re<_ptn ## id>().match(subject)) + +#define TEST_NOT_SEARCH(id, pattern, subject) static constexpr inline auto _ptn ## id = ctll::basic_fixed_string(pattern); static_assert(!ctre::re<_ptn ## id>().search(subject)) +#endif TEST_MATCH(1, "blabla","blabla"); TEST_NOT_MATCH(2,"blabla","blabla2"); From 05039856db29d449c7ca8923c35a9c24faabf575 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hana=20Dusi=CC=81kova=CC=81?= Date: Wed, 21 Nov 2018 15:39:54 +0100 Subject: [PATCH 07/23] disable thinks which makes ICE of GCC9 also disable tests with UDL --- Makefile | 5 +-- cpp-20-check.sh | 2 +- include/ctll/parser.hpp | 78 +++++++++++++++++++++++++++--------- include/ctre/functions.hpp | 2 - include/ctre/literals.hpp | 4 +- tests/generating.cpp | 3 ++ tests/many-of-same-proto.cpp | 2 + tests/matching2.cpp | 3 ++ tests/matching3.cpp | 8 ++-- tests/msvc.cpp | 16 ++++++-- tests/parsing.cpp | 3 ++ tests/simple.cpp | 6 ++- tests/trampoline.cpp | 6 ++- 13 files changed, 101 insertions(+), 37 deletions(-) diff --git a/Makefile b/Makefile index 539c4815..6a69dd51 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ default: all TARGETS := a.cpp result.cpp test.cpp $(wildcard tests/benchmark-exec/*.cpp) -IGNORE := $(wildcard tests/benchmark/*.cpp) $(wildcard tests/benchmark-exec/*.cpp) tests/trampoline.cpp +IGNORE := $(wildcard tests/benchmark/*.cpp) $(wildcard tests/benchmark-exec/*.cpp) DESATOMAT := /www/root/desatomat/console/desatomat.php @@ -11,7 +11,6 @@ CPP_STANDARD := $(shell ./cpp-20-check.sh $(CXX)) CXXFLAGS := $(CPP_STANDARD) -Iinclude -O3 -Wno-gnu-string-literal-operator-template -pedantic -Wall -Wextra LDFLAGS := -#-lpcre2-8 -lboost_regex -lre2 TESTS := $(wildcard tests/*.cpp) $(wildcard tests/benchmark/*.cpp) TRUE_TARGETS := $(TARGETS:%.cpp=%) @@ -26,7 +25,7 @@ list: echo $(SUPPORTED_CPP20) $(TRUE_TARGETS): %: %.o - $(CXX) $< $(LDFLAGS) -o $@ > /dev/null + $(CXX) $< $(LDFLAGS) -o $@ $(OBJECTS): %.o: %.cpp $(CXX) $(CXXFLAGS) -MMD -c $< -o $@ diff --git a/cpp-20-check.sh b/cpp-20-check.sh index 7ad71fec..24555837 100755 --- a/cpp-20-check.sh +++ b/cpp-20-check.sh @@ -4,7 +4,7 @@ if echo "" | $1 -std=c++2a -E -x c++ - 2>/dev/null 1>/dev/null; then if [ -z "$VERSION" ]; then echo "-std=c++2a"; else - echo "-std=c++2a -DISABLE_GNU_EXTENSION_LITERALS"; + echo "-std=c++2a -DEXPERIMENTAL_GCC_9"; fi else echo "-std=c++17"; diff --git a/include/ctll/parser.hpp b/include/ctll/parser.hpp index 6e8a6eb7..a7b106ef 100644 --- a/include/ctll/parser.hpp +++ b/include/ctll/parser.hpp @@ -15,16 +15,19 @@ enum class decision { undecided }; -template void id(T); - struct placeholder { }; -template struct result_of_parsing { +template using index_placeholder = placeholder; + +#ifdef EXPERIMENTAL_GCC_9 +template struct results { constexpr operator bool() const noexcept { - return Correct; + return Decision == decision::accept; } using output_type = Subject; }; +#endif + #if !__cpp_nontype_template_parameter_class template struct parser { @@ -34,6 +37,25 @@ template , identity>; using grammar = augment_grammar; + #ifndef EXPERIMENTAL_GCC_9 + template struct results { + constexpr inline CTLL_FORCE_INLINE operator bool() const noexcept { + return Decision == decision::accept; + } + + using output_type = Subject; + + constexpr auto operator+(placeholder) const noexcept { + if constexpr (Decision == decision::undecided) { + // parse for current char (RPos) with previous stack and subject :) + return decide({}, {}); + } else { + // if there is decision already => just push it to the end of fold expression + return *this; + } + } + }; + #endif template static constexpr auto get_current_term() noexcept { if constexpr (Pos < input.size()) { @@ -56,17 +78,21 @@ template return true and subject template static constexpr auto move(ctll::accept, Terminal, Stack, Subject) noexcept { - return result_of_parsing{}; + return results(); } // if rule is reject => return false and subject template static constexpr auto move(ctll::reject, Terminal, Stack, Subject) noexcept { - return result_of_parsing{}; + return results(); } // if rule is pop_input => move to next character template - static constexpr auto move(ctll::pop_input, Terminal, Stack stack, Subject subject) noexcept { - return decide(stack, subject); + static constexpr auto move(ctll::pop_input, Terminal, Stack, Subject) noexcept { + #ifdef EXPERIMENTAL_GCC_9 + return decide(Stack(), Subject()); + #else + return results(); + #endif } // if rule is string => push it to the front of stack template @@ -81,17 +107,22 @@ template ) => move to next character // and push string without the character (quick LL(1)) template - static constexpr auto move(ctll::list, Content...>, term, Stack stack, Subject subject) noexcept { - return decide(push_front(list(), stack), subject); - //return seed(), stack)), Subject, decision::undecided>(); + static constexpr auto move(ctll::list, Content...>, term, Stack stack, Subject) noexcept { + #ifdef EXPERIMENTAL_GCC_9 + return decide(push_front(list(), stack), Subject()); + #else + return results(), stack)), Subject, decision::undecided>(); + #endif } // if rule is string with any character at the beginning (compatible with current term) => move to next character // and push string without the character (quick LL(1)) template - static constexpr auto move(ctll::list, term, Stack stack, Subject subject) noexcept { - return decide(push_front(list(), stack), subject); - - //return seed(), stack)), Subject, decision::undecided>(); + static constexpr auto move(ctll::list, term, Stack stack, Subject) noexcept { + #ifdef EXPERIMENTAL_GCC_9 + return decide(push_front(list(), stack), Subject()); + #else + return results(), stack)), Subject, decision::undecided>(); + #endif } // decide if we need to take action or move template static constexpr auto decide(Stack previous_stack, Subject previous_subject) noexcept { @@ -106,7 +137,11 @@ template reject input if constexpr (std::is_same_v) { - return result_of_parsing(); + #ifndef EXPERIMENTAL_GCC_9 + return results(); + #else + return results(); + #endif } else { return decide(stack, subject); } @@ -118,9 +153,7 @@ template using index_placeholder = placeholder; - -#if false + #ifndef EXPERIMENTAL_GCC_9 // trampolines with folded expression template static constexpr auto trampoline_decide(Subject, std::index_sequence) noexcept { // parse everything for first char and than for next and next ... @@ -133,11 +166,16 @@ template ()); } -#endif + template using output = decltype(trampoline_decide()); + static inline constexpr bool correct = trampoline_decide(); + template static inline constexpr bool correct_with = trampoline_decide(); + #else template using output = decltype(decide<0, typename grammar::start_stack, Subject>({}, {})); static inline constexpr bool correct = decide<0, typename grammar::start_stack, empty_subject>({}, {}); template static inline constexpr bool correct_with = decide<0, typename grammar::start_stack, Subject>({}, {}); + #endif + }; } // end of ctll namespace diff --git a/include/ctre/functions.hpp b/include/ctre/functions.hpp index 19d47d8b..688d0396 100644 --- a/include/ctre/functions.hpp +++ b/include/ctre/functions.hpp @@ -47,8 +47,6 @@ constexpr auto & _input = input; // in moment when we get C++20 support this will start to work :) -template void identify(T); - #if __cpp_nontype_template_parameter_class template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto match(std::string_view sv) noexcept { constexpr auto _input = input; // workaround for GCC 9 bug 88092 diff --git a/include/ctre/literals.hpp b/include/ctre/literals.hpp index 2b63faab..02e3db4d 100644 --- a/include/ctre/literals.hpp +++ b/include/ctre/literals.hpp @@ -21,7 +21,7 @@ template static inline constexpr auto _fixed_st namespace literals { #ifndef _MSC_VER -#ifndef ISABLE_GNU_EXTENSION_LITERALS +#ifndef EXPERIMENTAL_GCC_9 // add this when we will have concepts // requires ctll::parser, ctre::pcre_actions>::template correct_with> @@ -55,7 +55,7 @@ template CTRE_FLATTEN constexpr CTRE_FORCE_I namespace test_literals { #ifndef _MSC_VER -#ifndef ISABLE_GNU_EXTENSION_LITERALS +#ifndef EXPERIMENTAL_GCC_9 #if !__cpp_nontype_template_parameter_class template CTRE_FLATTEN constexpr inline auto operator""_ctre_test() noexcept { diff --git a/tests/generating.cpp b/tests/generating.cpp index 5f8eb5e8..1f8f3ad0 100644 --- a/tests/generating.cpp +++ b/tests/generating.cpp @@ -1,5 +1,6 @@ #include +#if false using namespace ctre::test_literals; #ifdef DEBUG @@ -147,3 +148,5 @@ static_assert(same_f("^$"_ctre_gen, ctre::sequence,ctre::character<'b'>,ctre::character<'c'>, ctre::assert_end>())); static_assert(same_f("^a|b$"_ctre_gen, ctre::select>, ctre::sequence, ctre::assert_end>>())); + +#endif \ No newline at end of file diff --git a/tests/many-of-same-proto.cpp b/tests/many-of-same-proto.cpp index dde5c4d4..b2ef178b 100644 --- a/tests/many-of-same-proto.cpp +++ b/tests/many-of-same-proto.cpp @@ -1,5 +1,6 @@ #include using namespace ctre::test_literals; +#ifndef EXPERIMENTAL_GCC_9 static_assert("(tour|to|tournament)+\ntourna"_ctre_test); static_assert("(tour|to|tournament)+\ntourna"_ctre_test); static_assert("(tour|to|tournament)+\ntourna"_ctre_test); @@ -3000,3 +3001,4 @@ static_assert("(tour|to|tournament)+\ntourna"_ctre_test); static_assert("(tour|to|tournament)+\ntourna"_ctre_test); static_assert("(tour|to|tournament)+\ntourna"_ctre_test); static_assert("(tour|to|tournament)+\ntourna"_ctre_test); +#endif diff --git a/tests/matching2.cpp b/tests/matching2.cpp index 5d4ba91f..116ad9b6 100644 --- a/tests/matching2.cpp +++ b/tests/matching2.cpp @@ -5,6 +5,8 @@ using namespace ctre::literals; using namespace ctre::test_literals; using namespace std::string_view_literals; +#ifndef EXPERIMENTAL_GCC_9 + static_assert(""_ctre.search("abc"sv)); static_assert("abc"_ctre.match("abc"sv)); @@ -206,3 +208,4 @@ static_assert("((a)(b))"_ctre.match("ab"sv).template get<1>() == "ab"sv); static_assert("((a)(b))"_ctre.match("ab"sv).template get<2>() == "a"sv); static_assert("((a)(b))"_ctre.match("ab"sv).template get<3>() == "b"sv); +#endif diff --git a/tests/matching3.cpp b/tests/matching3.cpp index e46563ee..996883c9 100644 --- a/tests/matching3.cpp +++ b/tests/matching3.cpp @@ -7,13 +7,13 @@ using namespace std::string_view_literals; #if __cpp_nontype_template_parameter_class -#define TEST_MATCH(id, pattern, subject) static_assert(ctre::match<_ptn>(subject)) +#define TEST_MATCH(id, pattern, subject) static_assert(ctre::match(subject)) -#define TEST_SEARCH(id, pattern, subject) static_assert(ctre::search<_ptn>(subject)) +#define TEST_SEARCH(id, pattern, subject) static_assert(ctre::search(subject)) -#define TEST_NOT_MATCH(id, pattern, subject) static_assert(!ctre::match<_ptn>(subject)) +#define TEST_NOT_MATCH(id, pattern, subject) static_assert(!ctre::match(subject)) -#define TEST_NOT_SEARCH(id, pattern, subject) static_assert(!ctre::search<_ptn>(subject)) +#define TEST_NOT_SEARCH(id, pattern, subject) static_assert(!ctre::search(subject)) #else diff --git a/tests/msvc.cpp b/tests/msvc.cpp index 0c80aa73..9c50b52e 100644 --- a/tests/msvc.cpp +++ b/tests/msvc.cpp @@ -11,15 +11,25 @@ static_assert(ctre::re().match("123456789"sv)); static_assert(ctre::re().match(""sv)); template constexpr bool re() { - return ctll::parser::template correct_with>; +#if __cpp_nontype_template_parameter_class + constexpr auto _ptn = ptn; +#else + constexpr auto & _ptn = ptn; +#endif + return ctll::parser::template correct_with>; } static_assert(re()); -static inline constexpr ctre::pattern pat = "hello"; +static inline constexpr ctll::basic_fixed_string pat = "hello"; template constexpr bool re2() { - return ctll::parser::template correct_with>; +#if __cpp_nontype_template_parameter_class + constexpr auto _ptn = ptn; +#else + constexpr auto & _ptn = ptn; +#endif + return ctll::parser::template correct_with>; } static_assert(re()); diff --git a/tests/parsing.cpp b/tests/parsing.cpp index 6bbd717d..835e5a5e 100644 --- a/tests/parsing.cpp +++ b/tests/parsing.cpp @@ -2,6 +2,8 @@ using namespace ctre::test_literals; +#ifndef EXPERIMENTAL_GCC_9 + // basics static_assert(""_ctre_test); static_assert("."_ctre_test); @@ -131,3 +133,4 @@ static_assert("tour\nto\ntournament"_ctre_test); static_assert("tour|to|tournament"_ctre_test); static_assert("z"_ctre_test); +#endif diff --git a/tests/simple.cpp b/tests/simple.cpp index 8810075e..5969cb2e 100644 --- a/tests/simple.cpp +++ b/tests/simple.cpp @@ -2,9 +2,13 @@ using namespace ctre::test_literals; +#ifndef EXPERIMENTAL_GCC_9 + // basics static_assert(""_simple_test); static_assert("a"_simple_test); static_assert("ab"_simple_test); static_assert("a|b"_simple_test); -static_assert("n"_simple_test); \ No newline at end of file +static_assert("n"_simple_test); + +#endif \ No newline at end of file diff --git a/tests/trampoline.cpp b/tests/trampoline.cpp index b7bc4ffd..4f0ff5bc 100644 --- a/tests/trampoline.cpp +++ b/tests/trampoline.cpp @@ -1,5 +1,7 @@ #include "ctre.hpp" +#ifndef EXPERIMENTAL_GCC_9 + static constexpr inline auto pattern = ctll::basic_fixed_string{"(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((x)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))"}; static constexpr inline auto a = ctre::re(); @@ -8,4 +10,6 @@ template void identify(T) { } void fnc() { identify(a); -} \ No newline at end of file +} + +#endif From 448b15d774df63c28c0a0228d62d1552ed0d9226 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hana=20Dusi=CC=81kova=CC=81?= Date: Tue, 18 Dec 2018 12:31:04 +0100 Subject: [PATCH 08/23] post merging --- Makefile | 2 +- clang-bench.txt | 20 -------------------- include/ctll/parser.hpp | 23 ++++++++++++++++++----- include/ctre/literals.hpp | 17 ++++------------- a.cpp => tests/cnttp.cpp | 0 tests/matching2.cpp | 4 +++- tests/matching3.cpp | 4 +++- tests/simple.cpp | 14 -------------- tests/wide-pattern.cpp | 2 +- 9 files changed, 30 insertions(+), 56 deletions(-) delete mode 100644 clang-bench.txt rename a.cpp => tests/cnttp.cpp (100%) delete mode 100644 tests/simple.cpp diff --git a/Makefile b/Makefile index b88bfdec..88b0a34e 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ default: all -TARGETS := a.cpp result.cpp test.cpp $(wildcard tests/benchmark-exec/*.cpp) +TARGETS := result.cpp test.cpp $(wildcard tests/benchmark-exec/*.cpp) IGNORE := $(wildcard tests/benchmark/*.cpp) $(wildcard tests/benchmark-exec/*.cpp) DESATOMAT := /www/root/desatomat/console/desatomat.php diff --git a/clang-bench.txt b/clang-bench.txt deleted file mode 100644 index 264827a2..00000000 --- a/clang-bench.txt +++ /dev/null @@ -1,20 +0,0 @@ -//--------- ABCD|DEFGH|EFGHI|A{4,} -egrep 0m49.353s -CTRE 0m10.093s -PCRE 0m12.515s -std::regex 21m9.309s -//--------- [0-9a-fA-F]{8,16} -egrep 0m32.256s -CTRE 0m14.197s -PCRE 0m17.832s -std::regex 2m34.505s -//--------- ^([0-9]{4,16})?[aA] -egrep 0m12.880s -CTRE 0m7.596s -PCRE 0m6.590s -std::regex 7m54.793s -//--------- ([aAbB]{4,}|[xXyY]{4,}|[1234]{4,})0 -egrep 1m56.412s -CTRE 0m59.864s -PCRE 0m43.486s -std::regex 27m35.004s diff --git a/include/ctll/parser.hpp b/include/ctll/parser.hpp index a7b106ef..ccc15dee 100644 --- a/include/ctll/parser.hpp +++ b/include/ctll/parser.hpp @@ -6,6 +6,8 @@ #include "grammars.hpp" #include "actions.hpp" +#include + namespace ctll { @@ -59,7 +61,13 @@ template static constexpr auto get_current_term() noexcept { if constexpr (Pos < input.size()) { - return term{}; + constexpr auto value = input[Pos]; + if constexpr (value <= std::numeric_limits::max()) { + return term(value)>{}; + } else { + return term{}; + } + } else { // return epsilon if we are past the input return epsilon{}; @@ -70,7 +78,12 @@ template {}; + constexpr auto value = input[Pos-1]; + if constexpr (value <= std::numeric_limits::max()) { + return term(value)>{}; + } else { + return term{}; + } } else { return epsilon{}; } @@ -96,7 +109,7 @@ template push it to the front of stack template - static constexpr auto move(ctll::list string, Terminal, Stack stack, Subject subject) noexcept { + static constexpr auto move(push string, Terminal, Stack stack, Subject subject) noexcept { return decide(push_front(string, stack), subject); } // if rule is epsilon (empty string) => continue @@ -107,7 +120,7 @@ template ) => move to next character // and push string without the character (quick LL(1)) template - static constexpr auto move(ctll::list, Content...>, term, Stack stack, Subject) noexcept { + static constexpr auto move(push, Content...>, term, Stack stack, Subject) noexcept { #ifdef EXPERIMENTAL_GCC_9 return decide(push_front(list(), stack), Subject()); #else @@ -117,7 +130,7 @@ template ) => move to next character // and push string without the character (quick LL(1)) template - static constexpr auto move(ctll::list, term, Stack stack, Subject) noexcept { + static constexpr auto move(ctll::push, term, Stack stack, Subject) noexcept { #ifdef EXPERIMENTAL_GCC_9 return decide(push_front(list(), stack), Subject()); #else diff --git a/include/ctre/literals.hpp b/include/ctre/literals.hpp index 0eafc989..2aa611e7 100644 --- a/include/ctre/literals.hpp +++ b/include/ctre/literals.hpp @@ -19,18 +19,21 @@ template static inline constexpr auto _fixed_st namespace literals { +// clang and GCC <9 supports LITERALS with packs + #ifdef __clang__ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wgnu-string-literal-operator-template" - #define CTRE_ENABLE_LITERALS #endif #ifdef __INTEL_COMPILER // not enable literals #elif defined __GNUC__ +#ifndef EXPERIMENTAL_GCC_9 #define CTRE_ENABLE_LITERALS #endif +#endif #ifdef CTRE_ENABLE_LITERALS @@ -101,18 +104,6 @@ template CTRE_FLATTEN constexpr CTRE_FORCE_INLI } -#if !__cpp_nontype_template_parameter_class -template CTRE_FLATTEN constexpr inline auto operator""_simple_test() noexcept { - constexpr auto & _input = _fixed_string_reference; -#else -template CTRE_FLATTEN constexpr inline auto operator""_simple_test() noexcept { - constexpr auto _input = input; // workaround for GCC 9 bug 88092 -#endif - return ctll::parser::correct; -} - -#endif -#endif #endif #ifdef __clang__ diff --git a/a.cpp b/tests/cnttp.cpp similarity index 100% rename from a.cpp rename to tests/cnttp.cpp diff --git a/tests/matching2.cpp b/tests/matching2.cpp index 6ba7ab05..679ce005 100644 --- a/tests/matching2.cpp +++ b/tests/matching2.cpp @@ -1,6 +1,8 @@ #include #include +#ifndef EXPERIMENTAL_GCC_9 + using namespace ctre::literals; using namespace ctre::test_literals; using namespace std::string_view_literals; @@ -230,4 +232,4 @@ static_assert(!"(?!.*(.)\\g{1})[a-z]+"_ctre.match("abcdeefgh"sv)); - +#endif diff --git a/tests/matching3.cpp b/tests/matching3.cpp index 996883c9..90b3591d 100644 --- a/tests/matching3.cpp +++ b/tests/matching3.cpp @@ -1,6 +1,8 @@ #include #include +#ifndef EXPERIMENTAL_GCC_9 + using namespace ctre::literals; using namespace ctre::test_literals; using namespace std::string_view_literals; @@ -195,7 +197,7 @@ TEST_MATCH(112, "\\[\\]", "[]"); - +#endif diff --git a/tests/simple.cpp b/tests/simple.cpp deleted file mode 100644 index 5969cb2e..00000000 --- a/tests/simple.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include - -using namespace ctre::test_literals; - -#ifndef EXPERIMENTAL_GCC_9 - -// basics -static_assert(""_simple_test); -static_assert("a"_simple_test); -static_assert("ab"_simple_test); -static_assert("a|b"_simple_test); -static_assert("n"_simple_test); - -#endif \ No newline at end of file diff --git a/tests/wide-pattern.cpp b/tests/wide-pattern.cpp index 3d2f2f13..6350b3bd 100644 --- a/tests/wide-pattern.cpp +++ b/tests/wide-pattern.cpp @@ -1,6 +1,6 @@ #include -static constexpr auto Pattern = ctll::basic_fixed_string{ LR"(^(\S+;\d+)\s+(\d+|\d+/\d+)?\s+((\d{1,2})-([A-Z]{3,3})-(\d{4,4})\s+(\d{1,2}):(\d{2,2})(:(\d{2,2})(\.\d{2,2})?)?(\s+\[(\S+),(\S+)\]\s+\(([A-Z]*),([A-Z]*),([A-Z]*),([A-Z]*)\))?)?)" }; +static constexpr auto Pattern = ctll::basic_fixed_string{ L"[a-z]+" }; int main() { From e1b31442ece2eb093d34ea8ceac9dfff6814f539 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hana=20Dusi=CC=81kova=CC=81?= Date: Tue, 18 Dec 2018 12:33:10 +0100 Subject: [PATCH 09/23] post merge 2 --- include/ctll/parser.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/ctll/parser.hpp b/include/ctll/parser.hpp index ccc15dee..8ff452cf 100644 --- a/include/ctll/parser.hpp +++ b/include/ctll/parser.hpp @@ -130,7 +130,7 @@ template ) => move to next character // and push string without the character (quick LL(1)) template - static constexpr auto move(ctll::push, term, Stack stack, Subject) noexcept { + static constexpr auto move(push, term, Stack stack, Subject) noexcept { #ifdef EXPERIMENTAL_GCC_9 return decide(push_front(list(), stack), Subject()); #else From e8fc205a2ea68fd567a841a21fdc3cab2b3cf4ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hana=20Dusi=CC=81kova=CC=81?= Date: Tue, 18 Dec 2018 12:57:13 +0100 Subject: [PATCH 10/23] first two tests with gcc9 --- tests/many-of-same-proto.cpp | 6015 +++++++++++++++++----------------- tests/matching2.cpp | 451 +-- 2 files changed, 3251 insertions(+), 3215 deletions(-) diff --git a/tests/many-of-same-proto.cpp b/tests/many-of-same-proto.cpp index b2ef178b..a5f39a7b 100644 --- a/tests/many-of-same-proto.cpp +++ b/tests/many-of-same-proto.cpp @@ -1,3004 +1,3017 @@ #include using namespace ctre::test_literals; -#ifndef EXPERIMENTAL_GCC_9 -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); + +#ifndef EXPERIMENTAL_GCC_9 // fixed +#define CTRE_TEST(pattern) static_assert(pattern ## _ctre_test) +#else + +template constexpr bool test() { + constexpr auto _input = input; + return ctll::parser::correct; +} + +#define CTRE_TEST(pattern) static_assert(test()) #endif + + +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); +CTRE_TEST("(tour|to|tournament)+\ntourna"); + diff --git a/tests/matching2.cpp b/tests/matching2.cpp index 679ce005..e9c9ea65 100644 --- a/tests/matching2.cpp +++ b/tests/matching2.cpp @@ -1,235 +1,258 @@ #include #include -#ifndef EXPERIMENTAL_GCC_9 +#ifndef EXPERIMENTAL_GCC_9 // fixed +#define CTRE_CREATE(pattern) (pattern ## _ctre) +#define CTRE_SYNTAX(pattern) (pattern ## _ctre_syntax) +#else + +template constexpr auto create() { + constexpr auto _input = input; + + using tmp = typename ctll::parser::template output>; + static_assert(tmp(), "Regular Expression contains syntax error."); + using re = decltype(front(typename tmp::output_type::stack_type())); + return ctre::regular_expression(re()); +} + +template constexpr bool syntax() { + constexpr auto _input = input; + + return ctll::parser::template correct_with>; +} + + +#define CTRE_CREATE(pattern) create() +#define CTRE_SYNTAX(pattern) syntax() + +#endif using namespace ctre::literals; using namespace ctre::test_literals; using namespace std::string_view_literals; -static_assert(""_ctre.search("abc"sv)); -static_assert("abc"_ctre.match("abc"sv)); - -static_assert("a"_ctre.match("a"sv)); -static_assert("a"_ctre.search("abc"sv)); -static_assert("b"_ctre.search("abc"sv)); -static_assert(!"^b"_ctre.match("abc"sv)); -static_assert(!"b"_ctre.match("a"sv)); -static_assert("."_ctre.match("a"sv)); -static_assert("."_ctre.search("abc"sv)); -static_assert("[\\-]"_ctre.match("-"sv)); -static_assert("[\\\\]"_ctre.match("\\"sv)); -static_assert("[a-z]"_ctre.match("a"sv)); -static_assert("[a-z]"_ctre.match("f"sv)); -static_assert("[a-z]"_ctre.match("z"sv)); -static_assert(!"[a-z]"_ctre.match("Z"sv)); -static_assert("\\u0050"_ctre.match("P"sv)); -static_assert("[\\u0050-\\u0051]"_ctre.match("Q"sv)); -static_assert("\u0050"_ctre.match("P"sv)); // be aware! - -static_assert("^[\\x30-\\x39]+?$"_ctre.match("123456789"sv)); -static_assert("[a-z0-9]"_ctre.match("0"sv)); -static_assert(!"[a-z0-9]"_ctre.match("A"sv)); -static_assert("[[:xdigit:]]"_ctre.match("0"sv)); -static_assert("[[:xdigit:]]"_ctre.match("9"sv)); -static_assert("[[:xdigit:]]"_ctre.match("a"sv)); -static_assert("[[:xdigit:]]"_ctre.match("A"sv)); -static_assert("[[:xdigit:]]"_ctre.match("f"sv)); -static_assert(!"[[:xdigit:]]"_ctre.match("g"sv)); -static_assert("abcdef"_ctre.match("abcdef"sv)); -static_assert(!"abcdef"_ctre.match("abcGef"sv)); -static_assert(""_ctre.match(""sv)); -static_assert("(?:a|b|c)"_ctre.match("a"sv)); -static_assert("(?:a|b|c)"_ctre.match("b"sv)); -static_assert("(?:a|b|c)"_ctre.match("c"sv)); -static_assert(!"(?:a|b|c)"_ctre.match("d"sv)); -static_assert("(?:xy)?"_ctre.match("xy"sv)); -static_assert("(?:xy)?"_ctre.match(""sv)); -static_assert("(?:xy)?"_ctre.search("zxy"sv)); -static_assert("(?:xy)?$"_ctre.search("zxy"sv)); -static_assert(!"~(?:xy)?$"_ctre.match("zxy"sv)); - -static_assert("^abc"_ctre.match("abc"sv)); -static_assert("^def$"_ctre.match("def"sv)); -static_assert(!"a^"_ctre.match("a"sv)); -static_assert(!"$a"_ctre.match("a"sv)); - -static_assert("a+?"_ctre.search("aaax"sv)); -static_assert("a+?"_ctre.search("ax"sv)); -static_assert(!"a+?"_ctre.match("x"sv)); - -static_assert("a++"_ctre.search("aaax"sv)); -static_assert("a++"_ctre.search("ax"sv)); -static_assert(!"a++"_ctre.match("x"sv)); - -static_assert("a*?x"_ctre.match("aaax"sv)); -static_assert("a*?x"_ctre.match("ax"sv)); -static_assert("a*?x"_ctre.match("x"sv)); -static_assert(!"a*?x"_ctre.match("y"sv)); - -static_assert("a*+x"_ctre.match("aaax"sv)); -static_assert("a*+x"_ctre.match("ax"sv)); -static_assert("a*+x"_ctre.match("x"sv)); -static_assert(!"a*+x"_ctre.match("y"sv)); - -static_assert(!"a*+ab"_ctre.match("aaab"sv)); -static_assert(!"a++ab"_ctre.match("aaab"sv)); -static_assert(!"a*+ab"_ctre.match("ab"sv)); -static_assert(!"a++ab"_ctre.match("aab"sv)); - -static_assert("a*+ba"_ctre.match("aaba"sv)); -static_assert("a++ba"_ctre.match("aaba"sv)); -static_assert("a*+ba"_ctre.match("ba"sv)); -static_assert("a++ba"_ctre.match("aba"sv)); - -static_assert("a{3,}x"_ctre.match("aaax"sv)); -static_assert("a{3,}x"_ctre.match("aaaax"sv)); - -static_assert("^a{5}"_ctre.match("aaaaa"sv)); -static_assert("^a{5}"_ctre.search("aaaaaa"sv)); -static_assert(!"^a{5}$"_ctre.match("aaaaaa"sv)); - -static_assert("a*"_ctre.match("aaa"sv)); -static_assert("a+"_ctre.match("aaa"sv)); -static_assert("a*"_ctre.match(""sv)); -static_assert("a+"_ctre.match("a"sv)); - -static_assert("a*$"_ctre.match("aaa"sv)); -static_assert("a+$"_ctre.match("aaa"sv)); -static_assert("a*$"_ctre.match(""sv)); -static_assert("a+$"_ctre.match("a"sv)); - -static_assert("a*xb"_ctre.match("aaxb"sv)); -static_assert("a+xb"_ctre.match("aaxb"sv)); -static_assert("a*xb"_ctre.match("xb"sv)); -static_assert("a+xb"_ctre.match("axb"sv)); - -static_assert("a*ab"_ctre.match("aaab"sv)); -static_assert("a+ab"_ctre.match("aaab"sv)); -static_assert("a*ab"_ctre.match("ab"sv)); -static_assert("a+ab"_ctre.match("aab"sv)); - -static_assert(!"^a{2,5}ab"_ctre.match("aab"sv)); -static_assert("^a{2,5}ab"_ctre.match("aaab"sv)); -static_assert("^a{2,5}ab"_ctre.match("aaaab"sv)); -static_assert("^a{2,5}ab"_ctre.match("aaaaab"sv)); -static_assert("^a{2,5}ab"_ctre.match("aaaaaab"sv)); -static_assert(!"^a{2,5}ab"_ctre.match("aaaaaaab"sv)); - -static_assert("(abc)"_ctre.match("abc"sv)); -static_assert("(abc)+"_ctre.match("abc"sv)); -static_assert("(abc)+"_ctre.match("abcabc"sv)); -static_assert("(abc)+"_ctre.match("abcabcabc"sv)); - -static_assert("(?abc)"_ctre.match("abc"sv)); -static_assert("(?abc)+"_ctre.match("abc"sv)); -static_assert("(?abc)+"_ctre.match("abcabc"sv)); -static_assert("(?abc)+"_ctre.match("abcabcabc"sv)); -static_assert(!"(?abc)+"_ctre.match("name"sv)); - -static_assert(std::string_view{"^([a-z]+)"_ctre.search("abcdef1234"sv)} == "abcdef"sv); -static_assert(std::string_view{"^([a-z]+)1234"_ctre.match("abcdef1234"sv)} == "abcdef1234"sv); -static_assert(std::string_view{"^([a-z])"_ctre.search("abcdef1234"sv)} == "a"sv); - -static_assert("^([0-9]+[a-z]+)+"_ctre.match("123abc456def"sv)); -static_assert("^([0-9]+[a-z]+)+"_ctre.match("123abc456def"sv).template get<1>() == "456def"sv); -static_assert("^([0-9]+[a-z]+)+"_ctre.match("123abc456def"sv).template get<0>() == "123abc456def"sv); - -static_assert("^([0-9]++[a-z]++)+"_ctre.match("123abc456def"sv)); -static_assert("^([0-9]++[a-z]++)+"_ctre.match("123abc456def"sv).template get<1>() == "456def"sv); -static_assert("^([0-9]++[a-z]++)+"_ctre.match("123abc456def"sv).template get<0>() == "123abc456def"sv); - -static_assert("^([0-9]+?[a-z]+?)+"_ctre.search("123abc456def"sv)); -static_assert("^([0-9]+?[a-z]+?)+"_ctre.search("123abc456def"sv).template get<1>() == "123a"sv); -static_assert("^([0-9]+?[a-z]+?)+"_ctre.search("123abc456def"sv).template get<0>() == "123a"sv); - -static_assert("^([0-9]+?[a-z]++)+"_ctre.match("123abc456def"sv)); -static_assert("^([0-9]+?[a-z]++)+"_ctre.match("123abc456def"sv).template get<1>() == "456def"sv); -static_assert("^([0-9]+?[a-z]++)+"_ctre.match("123abc456def"sv).template get<0>() == "123abc456def"sv); - -static_assert("^([a-z]{2})([a-z]{2})"_ctre.match("abcd"sv).template get<2>() == "cd"sv); -static_assert("^([a-z]{2})(?[a-z]{2})"_ctre.match("abcd"sv).template get() == "cd"sv); - -static_assert("^([a-z]+):\\g{1}$"_ctre.match("abc:abc"sv)); -static_assert("^([a-z]+):\\g{1}$"_ctre.match("abc:abc"sv).template get<1>() == "abc"sv); -static_assert(!"^([a-z]+):\\g{1}$"_ctre.match("abc:abce"sv)); -static_assert("^([a-z]+)\\g{1}$"_ctre.match("abcabc"sv)); -static_assert(!"^([a-z]+)\\g{1}$"_ctre.match("abcabcd"sv)); -static_assert("^([a-z]+)\\g{-1}$"_ctre_syntax); -static_assert("^([a-z]+)\\g{-1}$"_ctre.match("abcabc"sv)); -static_assert(!"^([a-z]+)\\g{-2}$"_ctre_syntax); +static_assert(CTRE_CREATE("").search("abc"sv)); +static_assert(CTRE_CREATE("abc").match("abc"sv)); + +static_assert(CTRE_CREATE("a").match("a"sv)); +static_assert(CTRE_CREATE("a").search("abc"sv)); +static_assert(CTRE_CREATE("b").search("abc"sv)); +static_assert(!CTRE_CREATE("^b").match("abc"sv)); +static_assert(!CTRE_CREATE("b").match("a"sv)); +static_assert(CTRE_CREATE(".").match("a"sv)); +static_assert(CTRE_CREATE(".").search("abc"sv)); +static_assert(CTRE_CREATE("[\\-]").match("-"sv)); +static_assert(CTRE_CREATE("[\\\\]").match("\\"sv)); +static_assert(CTRE_CREATE("[a-z]").match("a"sv)); +static_assert(CTRE_CREATE("[a-z]").match("f"sv)); +static_assert(CTRE_CREATE("[a-z]").match("z"sv)); +static_assert(!CTRE_CREATE("[a-z]").match("Z"sv)); +static_assert(CTRE_CREATE("\\u0050").match("P"sv)); +static_assert(CTRE_CREATE("[\\u0050-\\u0051]").match("Q"sv)); +static_assert(CTRE_CREATE("\u0050").match("P"sv)); // be aware! + +static_assert(CTRE_CREATE("^[\\x30-\\x39]+?$").match("123456789"sv)); +static_assert(CTRE_CREATE("[a-z0-9]").match("0"sv)); +static_assert(!CTRE_CREATE("[a-z0-9]").match("A"sv)); +static_assert(CTRE_CREATE("[[:xdigit:]]").match("0"sv)); +static_assert(CTRE_CREATE("[[:xdigit:]]").match("9"sv)); +static_assert(CTRE_CREATE("[[:xdigit:]]").match("a"sv)); +static_assert(CTRE_CREATE("[[:xdigit:]]").match("A"sv)); +static_assert(CTRE_CREATE("[[:xdigit:]]").match("f"sv)); +static_assert(!CTRE_CREATE("[[:xdigit:]]").match("g"sv)); +static_assert(CTRE_CREATE("abcdef").match("abcdef"sv)); +static_assert(!CTRE_CREATE("abcdef").match("abcGef"sv)); +static_assert(CTRE_CREATE("").match(""sv)); +static_assert(CTRE_CREATE("(?:a|b|c)").match("a"sv)); +static_assert(CTRE_CREATE("(?:a|b|c)").match("b"sv)); +static_assert(CTRE_CREATE("(?:a|b|c)").match("c"sv)); +static_assert(!CTRE_CREATE("(?:a|b|c)").match("d"sv)); +static_assert(CTRE_CREATE("(?:xy)?").match("xy"sv)); +static_assert(CTRE_CREATE("(?:xy)?").match(""sv)); +static_assert(CTRE_CREATE("(?:xy)?").search("zxy"sv)); +static_assert(CTRE_CREATE("(?:xy)?$").search("zxy"sv)); +static_assert(!CTRE_CREATE("~(?:xy)?$").match("zxy"sv)); + +static_assert(CTRE_CREATE("^abc").match("abc"sv)); +static_assert(CTRE_CREATE("^def$").match("def"sv)); +static_assert(!CTRE_CREATE("a^").match("a"sv)); +static_assert(!CTRE_CREATE("$a").match("a"sv)); + +static_assert(CTRE_CREATE("a+?").search("aaax"sv)); +static_assert(CTRE_CREATE("a+?").search("ax"sv)); +static_assert(!CTRE_CREATE("a+?").match("x"sv)); + +static_assert(CTRE_CREATE("a++").search("aaax"sv)); +static_assert(CTRE_CREATE("a++").search("ax"sv)); +static_assert(!CTRE_CREATE("a++").match("x"sv)); + +static_assert(CTRE_CREATE("a*?x").match("aaax"sv)); +static_assert(CTRE_CREATE("a*?x").match("ax"sv)); +static_assert(CTRE_CREATE("a*?x").match("x"sv)); +static_assert(!CTRE_CREATE("a*?x").match("y"sv)); + +static_assert(CTRE_CREATE("a*+x").match("aaax"sv)); +static_assert(CTRE_CREATE("a*+x").match("ax"sv)); +static_assert(CTRE_CREATE("a*+x").match("x"sv)); +static_assert(!CTRE_CREATE("a*+x").match("y"sv)); + +static_assert(!CTRE_CREATE("a*+ab").match("aaab"sv)); +static_assert(!CTRE_CREATE("a++ab").match("aaab"sv)); +static_assert(!CTRE_CREATE("a*+ab").match("ab"sv)); +static_assert(!CTRE_CREATE("a++ab").match("aab"sv)); + +static_assert(CTRE_CREATE("a*+ba").match("aaba"sv)); +static_assert(CTRE_CREATE("a++ba").match("aaba"sv)); +static_assert(CTRE_CREATE("a*+ba").match("ba"sv)); +static_assert(CTRE_CREATE("a++ba").match("aba"sv)); + +static_assert(CTRE_CREATE("a{3,}x").match("aaax"sv)); +static_assert(CTRE_CREATE("a{3,}x").match("aaaax"sv)); + +static_assert(CTRE_CREATE("^a{5}").match("aaaaa"sv)); +static_assert(CTRE_CREATE("^a{5}").search("aaaaaa"sv)); +static_assert(!CTRE_CREATE("^a{5}$").match("aaaaaa"sv)); + +static_assert(CTRE_CREATE("a*").match("aaa"sv)); +static_assert(CTRE_CREATE("a+").match("aaa"sv)); +static_assert(CTRE_CREATE("a*").match(""sv)); +static_assert(CTRE_CREATE("a+").match("a"sv)); + +static_assert(CTRE_CREATE("a*$").match("aaa"sv)); +static_assert(CTRE_CREATE("a+$").match("aaa"sv)); +static_assert(CTRE_CREATE("a*$").match(""sv)); +static_assert(CTRE_CREATE("a+$").match("a"sv)); + +static_assert(CTRE_CREATE("a*xb").match("aaxb"sv)); +static_assert(CTRE_CREATE("a+xb").match("aaxb"sv)); +static_assert(CTRE_CREATE("a*xb").match("xb"sv)); +static_assert(CTRE_CREATE("a+xb").match("axb"sv)); + +static_assert(CTRE_CREATE("a*ab").match("aaab"sv)); +static_assert(CTRE_CREATE("a+ab").match("aaab"sv)); +static_assert(CTRE_CREATE("a*ab").match("ab"sv)); +static_assert(CTRE_CREATE("a+ab").match("aab"sv)); + +static_assert(!CTRE_CREATE("^a{2,5}ab").match("aab"sv)); +static_assert(CTRE_CREATE("^a{2,5}ab").match("aaab"sv)); +static_assert(CTRE_CREATE("^a{2,5}ab").match("aaaab"sv)); +static_assert(CTRE_CREATE("^a{2,5}ab").match("aaaaab"sv)); +static_assert(CTRE_CREATE("^a{2,5}ab").match("aaaaaab"sv)); +static_assert(!CTRE_CREATE("^a{2,5}ab").match("aaaaaaab"sv)); + +static_assert(CTRE_CREATE("(abc)").match("abc"sv)); +static_assert(CTRE_CREATE("(abc)+").match("abc"sv)); +static_assert(CTRE_CREATE("(abc)+").match("abcabc"sv)); +static_assert(CTRE_CREATE("(abc)+").match("abcabcabc"sv)); + +static_assert(CTRE_CREATE("(?abc)").match("abc"sv)); +static_assert(CTRE_CREATE("(?abc)+").match("abc"sv)); +static_assert(CTRE_CREATE("(?abc)+").match("abcabc"sv)); +static_assert(CTRE_CREATE("(?abc)+").match("abcabcabc"sv)); +static_assert(!CTRE_CREATE("(?abc)+").match("name"sv)); + +static_assert(std::string_view{CTRE_CREATE("^([a-z]+)").search("abcdef1234"sv)} == "abcdef"sv); +static_assert(std::string_view{CTRE_CREATE("^([a-z]+)1234").match("abcdef1234"sv)} == "abcdef1234"sv); +static_assert(std::string_view{CTRE_CREATE("^([a-z])").search("abcdef1234"sv)} == "a"sv); + +static_assert(CTRE_CREATE("^([0-9]+[a-z]+)+").match("123abc456def"sv)); +static_assert(CTRE_CREATE("^([0-9]+[a-z]+)+").match("123abc456def"sv).template get<1>() == "456def"sv); +static_assert(CTRE_CREATE("^([0-9]+[a-z]+)+").match("123abc456def"sv).template get<0>() == "123abc456def"sv); + +static_assert(CTRE_CREATE("^([0-9]++[a-z]++)+").match("123abc456def"sv)); +static_assert(CTRE_CREATE("^([0-9]++[a-z]++)+").match("123abc456def"sv).template get<1>() == "456def"sv); +static_assert(CTRE_CREATE("^([0-9]++[a-z]++)+").match("123abc456def"sv).template get<0>() == "123abc456def"sv); + +static_assert(CTRE_CREATE("^([0-9]+?[a-z]+?)+").search("123abc456def"sv)); +static_assert(CTRE_CREATE("^([0-9]+?[a-z]+?)+").search("123abc456def"sv).template get<1>() == "123a"sv); +static_assert(CTRE_CREATE("^([0-9]+?[a-z]+?)+").search("123abc456def"sv).template get<0>() == "123a"sv); + +static_assert(CTRE_CREATE("^([0-9]+?[a-z]++)+").match("123abc456def"sv)); +static_assert(CTRE_CREATE("^([0-9]+?[a-z]++)+").match("123abc456def"sv).template get<1>() == "456def"sv); +static_assert(CTRE_CREATE("^([0-9]+?[a-z]++)+").match("123abc456def"sv).template get<0>() == "123abc456def"sv); + +static_assert(CTRE_CREATE("^([a-z]{2})([a-z]{2})").match("abcd"sv).template get<2>() == "cd"sv); +// FIXME ID support +//static_assert(CTRE_CREATE("^([a-z]{2})(?[a-z]{2})").match("abcd"sv).template get() == "cd"sv); + +static_assert(CTRE_CREATE("^([a-z]+):\\g{1}$").match("abc:abc"sv)); +static_assert(CTRE_CREATE("^([a-z]+):\\g{1}$").match("abc:abc"sv).template get<1>() == "abc"sv); +static_assert(!CTRE_CREATE("^([a-z]+):\\g{1}$").match("abc:abce"sv)); +static_assert(CTRE_CREATE("^([a-z]+)\\g{1}$").match("abcabc"sv)); +static_assert(!CTRE_CREATE("^([a-z]+)\\g{1}$").match("abcabcd"sv)); +static_assert(CTRE_SYNTAX("^([a-z]+)\\g{-1}$")); +static_assert(CTRE_CREATE("^([a-z]+)\\g{-1}$").match("abcabc"sv)); +static_assert(!CTRE_SYNTAX("^([a-z]+)\\g{-2}$")); // TODO check for existence of named capture too -static_assert("^(?[a-z]+):\\g{text}$"_ctre.match("abc:abc"sv)); - -static_assert("^abc$"_ctre.match("abc"sv)); -static_assert("^abc$"_ctre.match(L"abc"sv)); -static_assert("^abc$"_ctre.match(u8"abc"sv)); -static_assert("^abc$"_ctre.match(u"abc"sv)); -static_assert("^abc$"_ctre.match(U"abc"sv)); - -static_assert(R"(\(\))"_ctre.match("()"sv)); -static_assert("\\[\\]"_ctre.match("[]"sv)); -static_assert(R"(\[\])"_ctre.match("[]"sv)); - -static_assert(R"(\[([A-Z]*?)\])"_ctre.match("[]"sv)); -static_assert(R"(\[([A-Z]*?)\])"_ctre.match("[URL]"sv)); - -static_assert(R"(\[([\s\S]*?)\]\(([\s\S]*?)\))"_ctre.match("[URL](https://cpp.fail/ctre)")); - -static_assert("abc"_ctre.match("abc")); -static_assert("[_]"_ctre.match("_")); -static_assert("[()]"_ctre.match("(")); -static_assert("[$]"_ctre.match("$")); -static_assert("[*]"_ctre.match("*")); -static_assert("[+]"_ctre.match("+")); -static_assert("[?]"_ctre.match("?")); -static_assert("[{}]"_ctre.match("{")); -static_assert("[(-)]"_ctre.match("(")); -static_assert("[(-)]"_ctre.match(")")); - -static_assert("[A-Z_a-z]"_ctre.match("a")); -static_assert("[A-Z_a-z]"_ctre.match("_")); -static_assert("[A-Z_a-z]"_ctre.match("Z")); -static_assert("[-]"_ctre.match("-")); -static_assert("[-x]"_ctre.match("x")); +static_assert(CTRE_CREATE("^(?[a-z]+):\\g{text}$").match("abc:abc"sv)); + +static_assert(CTRE_CREATE("^abc$").match("abc"sv)); +static_assert(CTRE_CREATE("^abc$").match(L"abc"sv)); +static_assert(CTRE_CREATE("^abc$").match(u8"abc"sv)); +static_assert(CTRE_CREATE("^abc$").match(u"abc"sv)); +static_assert(CTRE_CREATE("^abc$").match(U"abc"sv)); + +static_assert(CTRE_CREATE(R"(\(\))").match("()"sv)); +static_assert(CTRE_CREATE("\\[\\]").match("[]"sv)); +static_assert(CTRE_CREATE(R"(\[\])").match("[]"sv)); + +static_assert(CTRE_CREATE(R"(\[([A-Z]*?)\])").match("[]"sv)); +static_assert(CTRE_CREATE(R"(\[([A-Z]*?)\])").match("[URL]"sv)); + +static_assert(CTRE_CREATE(R"(\[([\s\S]*?)\]\(([\s\S]*?)\))").match("[URL](https://cpp.fail/ctre)")); + +static_assert(CTRE_CREATE("abc").match("abc")); +static_assert(CTRE_CREATE("[_]").match("_")); +static_assert(CTRE_CREATE("[()]").match("(")); +static_assert(CTRE_CREATE("[$]").match("$")); +static_assert(CTRE_CREATE("[*]").match("*")); +static_assert(CTRE_CREATE("[+]").match("+")); +static_assert(CTRE_CREATE("[?]").match("?")); +static_assert(CTRE_CREATE("[{}]").match("{")); +static_assert(CTRE_CREATE("[(-)]").match("(")); +static_assert(CTRE_CREATE("[(-)]").match(")")); + +static_assert(CTRE_CREATE("[A-Z_a-z]").match("a")); +static_assert(CTRE_CREATE("[A-Z_a-z]").match("_")); +static_assert(CTRE_CREATE("[A-Z_a-z]").match("Z")); +static_assert(CTRE_CREATE("[-]").match("-")); +static_assert(CTRE_CREATE("[-x]").match("x")); // FIXME: due current limitation of LL1 grammar parser I can make this work "[x-]" without significant change in grammar -static_assert("<"_ctre.match("<")); -static_assert("(<)"_ctre.match("<")); -static_assert("(<>)"_ctre.match("<>")); -static_assert("(<>?)"_ctre.match("<")); -static_assert("()"_ctre.match(">")); -static_assert("()"_ctre.match("")); +static_assert(CTRE_CREATE("<").match("<")); +static_assert(CTRE_CREATE("(<)").match("<")); +static_assert(CTRE_CREATE("(<>)").match("<>")); +static_assert(CTRE_CREATE("(<>?)").match("<")); +static_assert(CTRE_CREATE("()").match(">")); +static_assert(CTRE_CREATE("()").match("")); -static_assert(("[a-z]"_ctre >> "[0-9]"_ctre).match("a9")); -static_assert(("a"_ctre | "b"_ctre).match("a")); -static_assert(("a"_ctre | "b"_ctre).match("b")); -static_assert(!("a"_ctre | "b"_ctre).match("c")); +static_assert((CTRE_CREATE("[a-z]") >> CTRE_CREATE("[0-9]")).match("a9")); +static_assert((CTRE_CREATE("a") | CTRE_CREATE("b")).match("a")); +static_assert((CTRE_CREATE("a") | CTRE_CREATE("b")).match("b")); +static_assert(!(CTRE_CREATE("a") | CTRE_CREATE("b")).match("c")); -static_assert("((a)(b))"_ctre.match("ab"sv).template get<0>() == "ab"sv); -static_assert("((a)(b))"_ctre.match("ab"sv).template get<1>() == "ab"sv); -static_assert("((a)(b))"_ctre.match("ab"sv).template get<2>() == "a"sv); -static_assert("((a)(b))"_ctre.match("ab"sv).template get<3>() == "b"sv); +static_assert(CTRE_CREATE("((a)(b))").match("ab"sv).template get<0>() == "ab"sv); +static_assert(CTRE_CREATE("((a)(b))").match("ab"sv).template get<1>() == "ab"sv); +static_assert(CTRE_CREATE("((a)(b))").match("ab"sv).template get<2>() == "a"sv); +static_assert(CTRE_CREATE("((a)(b))").match("ab"sv).template get<3>() == "b"sv); -static_assert("^x(?=y)"_ctre.search("xy"sv).template get<0>() == "x"sv); -static_assert("^x(?!a)"_ctre.search("xy"sv).template get<0>() == "x"sv); +static_assert(CTRE_CREATE("^x(?=y)").search("xy"sv).template get<0>() == "x"sv); +static_assert(CTRE_CREATE("^x(?!a)").search("xy"sv).template get<0>() == "x"sv); -static_assert("a(?!3)[0-9]"_ctre.match("a0"sv)); -static_assert("a(?!3)[0-9]"_ctre.match("a9"sv)); -static_assert(!"a(?!3)[0-9]"_ctre.match("a3"sv)); +static_assert(CTRE_CREATE("a(?!3)[0-9]").match("a0"sv)); +static_assert(CTRE_CREATE("a(?!3)[0-9]").match("a9"sv)); +static_assert(!CTRE_CREATE("a(?!3)[0-9]").match("a3"sv)); -static_assert(!".*(.)\\g{1}.*"_ctre.match("abcdefghijk"sv)); -static_assert(".*(.)\\g{1}.*"_ctre.match("aabcdefghijk"sv)); -static_assert(".*(.)\\g{1}.*"_ctre.match("abcdeffghijk"sv)); +static_assert(!CTRE_CREATE(".*(.)\\g{1}.*").match("abcdefghijk"sv)); +static_assert(CTRE_CREATE(".*(.)\\g{1}.*").match("aabcdefghijk"sv)); +static_assert(CTRE_CREATE(".*(.)\\g{1}.*").match("abcdeffghijk"sv)); -static_assert("(?=.*(.)\\g{1})[a-z]+"_ctre.match("abcdeffghijk"sv)); -static_assert(!"(?=.*(.)\\g{1}{2})[a-z]+"_ctre.match("abcddeffghijk"sv)); -static_assert("(?=.*(.)\\g{1}{2})[a-z]+"_ctre.match("abcdddeffghijk"sv)); +static_assert(CTRE_CREATE("(?=.*(.)\\g{1})[a-z]+").match("abcdeffghijk"sv)); +static_assert(!CTRE_CREATE("(?=.*(.)\\g{1}{2})[a-z]+").match("abcddeffghijk"sv)); +static_assert(CTRE_CREATE("(?=.*(.)\\g{1}{2})[a-z]+").match("abcdddeffghijk"sv)); -static_assert( "(?!.*(.)\\g{1})[a-z]+"_ctre.match("abcdefgh"sv)); -static_assert(!"(?!.*(.)\\g{1})[a-z]+"_ctre.match("abcdeefgh"sv)); +static_assert( CTRE_CREATE("(?!.*(.)\\g{1})[a-z]+").match("abcdefgh"sv)); +static_assert(!CTRE_CREATE("(?!.*(.)\\g{1})[a-z]+").match("abcdeefgh"sv)); - -#endif From 5a30fc8dd14f743dc7976ceb93e641193be23c97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hana=20Dusi=CC=81kova=CC=81?= Date: Tue, 18 Dec 2018 13:01:11 +0100 Subject: [PATCH 11/23] enable testing with GCC9 --- tests/matching3.cpp | 4 - tests/parsing.cpp | 253 ++++++++++++++++++++++--------------------- tests/trampoline.cpp | 1 + 3 files changed, 132 insertions(+), 126 deletions(-) diff --git a/tests/matching3.cpp b/tests/matching3.cpp index 90b3591d..fc6da84c 100644 --- a/tests/matching3.cpp +++ b/tests/matching3.cpp @@ -1,8 +1,6 @@ #include #include -#ifndef EXPERIMENTAL_GCC_9 - using namespace ctre::literals; using namespace ctre::test_literals; using namespace std::string_view_literals; @@ -197,8 +195,6 @@ TEST_MATCH(112, "\\[\\]", "[]"); -#endif - diff --git a/tests/parsing.cpp b/tests/parsing.cpp index 71e4932f..c48a1107 100644 --- a/tests/parsing.cpp +++ b/tests/parsing.cpp @@ -2,143 +2,152 @@ using namespace ctre::test_literals; -#ifndef EXPERIMENTAL_GCC_9 +#ifndef EXPERIMENTAL_GCC_9 // fixed +#define CTRE_TEST(pattern) (pattern ## _ctre_test) +#else + +template constexpr bool test() { + constexpr auto _input = input; + return ctll::parser::correct; +} + +#define CTRE_TEST(pattern) test() +#endif + // basics -static_assert(""_ctre_test); -static_assert("."_ctre_test); -static_assert("a"_ctre_test); -static_assert("ab"_ctre_test); -static_assert("a|b"_ctre_test); -static_assert("n"_ctre_test); +static_assert(CTRE_TEST("")); +static_assert(CTRE_TEST(".")); +static_assert(CTRE_TEST("a")); +static_assert(CTRE_TEST("ab")); +static_assert(CTRE_TEST("a|b")); +static_assert(CTRE_TEST("n")); // repetation -static_assert("x?"_ctre_test); // optional -static_assert("x??"_ctre_test); // optional lazy -static_assert("x*"_ctre_test); -static_assert("x*+"_ctre_test); -static_assert("x*?"_ctre_test); -static_assert("x+"_ctre_test); -static_assert("x++"_ctre_test); -static_assert("x+?"_ctre_test); -static_assert("x{1}"_ctre_test); -static_assert("x{1,4}"_ctre_test); -static_assert("x{1,4}+"_ctre_test); -static_assert("x{1,4}?"_ctre_test); -static_assert("x{1,}"_ctre_test); -static_assert("x{1,}+"_ctre_test); -static_assert("x{1,}?"_ctre_test); +static_assert(CTRE_TEST("x?")); // optional +static_assert(CTRE_TEST("x??")); // optional lazy +static_assert(CTRE_TEST("x*")); +static_assert(CTRE_TEST("x*+")); +static_assert(CTRE_TEST("x*?")); +static_assert(CTRE_TEST("x+")); +static_assert(CTRE_TEST("x++")); +static_assert(CTRE_TEST("x+?")); +static_assert(CTRE_TEST("x{1}")); +static_assert(CTRE_TEST("x{1,4}")); +static_assert(CTRE_TEST("x{1,4}+")); +static_assert(CTRE_TEST("x{1,4}?")); +static_assert(CTRE_TEST("x{1,}")); +static_assert(CTRE_TEST("x{1,}+")); +static_assert(CTRE_TEST("x{1,}?")); // character sets -static_assert("[abc]"_ctre_test); // [abc] -static_assert("[a-c]"_ctre_test); // [abc] -static_assert("[a-ce-g]"_ctre_test); // [abcefg] -static_assert("[xa-c]"_ctre_test); // [xabc] -static_assert("[a-cy]"_ctre_test); // [abcy] -static_assert("\\d"_ctre_test); // digit -static_assert("\\D"_ctre_test); // non-digit -static_assert("\\s"_ctre_test); // whitespace -static_assert("\\S"_ctre_test); // non-whitespace -static_assert("\\w"_ctre_test); // word character -static_assert("\\W"_ctre_test); // non-word character +static_assert(CTRE_TEST("[abc]")); // [abc] +static_assert(CTRE_TEST("[a-c]")); // [abc] +static_assert(CTRE_TEST("[a-ce-g]")); // [abcefg] +static_assert(CTRE_TEST("[xa-c]")); // [xabc] +static_assert(CTRE_TEST("[a-cy]")); // [abcy] +static_assert(CTRE_TEST("\\d")); // digit +static_assert(CTRE_TEST("\\D")); // non-digit +static_assert(CTRE_TEST("\\s")); // whitespace +static_assert(CTRE_TEST("\\S")); // non-whitespace +static_assert(CTRE_TEST("\\w")); // word character +static_assert(CTRE_TEST("\\W")); // non-word character // assertions -static_assert("^"_ctre_test); -static_assert("$"_ctre_test); +static_assert(CTRE_TEST("^")); +static_assert(CTRE_TEST("$")); // special characters -static_assert("\\n"_ctre_test); // new line -static_assert("\\r"_ctre_test); // return carriage -static_assert("\\t"_ctre_test); // tab -static_assert("\\0"_ctre_test); // NULL -static_assert("\\xAB"_ctre_test); -static_assert("\\x{A}"_ctre_test); -static_assert("\\x{ABCDEF}"_ctre_test); -static_assert(not "\\x{ABCDEFG}"_ctre_test); +static_assert(CTRE_TEST("\\n")); // new line +static_assert(CTRE_TEST("\\r")); // return carriage +static_assert(CTRE_TEST("\\t")); // tab +static_assert(CTRE_TEST("\\0")); // NULL +static_assert(CTRE_TEST("\\xAB")); +static_assert(CTRE_TEST("\\x{A}")); +static_assert(CTRE_TEST("\\x{ABCDEF}")); +static_assert(not CTRE_TEST("\\x{ABCDEFG}")); // named sets -static_assert("[[:alpha:][:digit:]]"_ctre_test); -static_assert("[^[:alpha:][:digit:]]"_ctre_test); -static_assert("[[:^alpha:][:^digit:]]"_ctre_test); -static_assert("[[:alpha:][:digit:]]+"_ctre_test); +static_assert(CTRE_TEST("[[:alpha:][:digit:]]")); +static_assert(CTRE_TEST("[^[:alpha:][:digit:]]")); +static_assert(CTRE_TEST("[[:^alpha:][:^digit:]]")); +static_assert(CTRE_TEST("[[:alpha:][:digit:]]+")); // captures -static_assert(""_ctre_test); -static_assert("(nonname)"_ctre_test); -static_assert("(non)"_ctre_test); -static_assert("(?:noncapture)"_ctre_test); -static_assert("(?:nonture)"_ctre_test); -static_assert("(?:named)"_ctre_test); +static_assert(CTRE_TEST("")); +static_assert(CTRE_TEST("(nonname)")); +static_assert(CTRE_TEST("(non)")); +static_assert(CTRE_TEST("(?:noncapture)")); +static_assert(CTRE_TEST("(?:nonture)")); +static_assert(CTRE_TEST("(?:named)")); // LIBC++ tests -static_assert(""_ctre_test); -static_assert("(.*).*"_ctre_test); -//static_assert("(?=^)b"_ctre_test); // positive lookahead -static_assert("(a*)*"_ctre_test); -static_assert("(ab)*c"_ctre_test); -static_assert("(tour|to|t)+"_ctre_test); -static_assert("(tour|to|tournament)+"_ctre_test); -static_assert("(tour|to|tournament)+\ntourna"_ctre_test); -static_assert("-.*,.*-"_ctre_test); - -static_assert("-\\(.*\\),\\1-"_ctre_test); -static_assert("A[[:lower:]]B"_ctre_test); -static_assert("A[^[:lower:]0-9]B"_ctre_test); -static_assert("A[^[:lower:]]B"_ctre_test); -//static_assert("Jeff(?!s\\b)"_ctre_test); // negative lookahead -//static_assert("Jeff(?=s\\b)"_ctre_test); // positive lookahead -static_assert("[\\n]+"_ctre_test); -static_assert("[^\\0]*"_ctre_test); -static_assert("[^\\W]"_ctre_test); -//static_assert("[a[.ch.]z]"_ctre_test); -//static_assert("[a[.hyphen.]z]"_ctre_test); -//static_assert("[a[=M=]z]"_ctre_test); -static_assert("[abfor]*"_ctre_test); -static_assert("[ace1-9]*"_ctre_test); -static_assert("[ace1-9]+"_ctre_test); -static_assert("[ace1-9]\\{1,\\}"_ctre_test); -static_assert("[ace1-9]{1,}"_ctre_test); -static_assert("\\(.*\\).*"_ctre_test); -static_assert("\\(a*\\)*"_ctre_test); -static_assert("\\(ab\\)*c"_ctre_test); -static_assert("\\d[\\W]k"_ctre_test); -static_assert("^[a-f]$"_ctre_test); -static_assert("^[a]$"_ctre_test); -static_assert("^[ab]$"_ctre_test); -static_assert("^abc"_ctre_test); -static_assert("a"_ctre_test); -//static_assert("a(?=^)b"_ctre_test); // positive lookahead -static_assert("a*"_ctre_test); -static_assert("a*?"_ctre_test); -static_assert("a.\\{3,5\\}c"_ctre_test); -static_assert("a.c"_ctre_test); -static_assert("a.{3,5}c"_ctre_test); -static_assert("a\\{100000000000000000\\}"_ctre_test); -static_assert("ab"_ctre_test); -static_assert("ab*c"_ctre_test); -static_assert("ab\\{3,5\\}c"_ctre_test); -static_assert("abc$"_ctre_test); -static_assert("ab{3,5}c"_ctre_test); -static_assert("a{100000000000000000}"_ctre_test); -static_assert("b*"_ctre_test); -static_assert("ba"_ctre_test); -static_assert("bc"_ctre_test); -static_assert("cd((e)fg)hi"_ctre_test); -static_assert("cd((e)fg)hi|(z)"_ctre_test); -static_assert("cd\\(\\(e\\)fg\\)hi"_ctre_test); -static_assert("cdefghi"_ctre_test); -static_assert("q[^u]"_ctre_test); -static_assert("tour\n\ntournament"_ctre_test); -static_assert("tour\nto\ntournament"_ctre_test); -static_assert("tour|to|tournament"_ctre_test); -static_assert("z"_ctre_test); -static_assert("=!"_ctre_test); -static_assert("[=!]"_ctre_test); -static_assert("(=!)"_ctre_test); -static_assert("(?!test)"_ctre_test); -static_assert("(?=test)"_ctre_test); -static_assert("^(?=.*(.)\\g{1}+.*)[a-z]+"_ctre_test); -static_assert("^(?=.*(a)\\g{1}.*)$"_ctre_test); +static_assert(CTRE_TEST("")); +static_assert(CTRE_TEST("(.*).*")); +static_assert(CTRE_TEST("(?=^)b")); // positive lookahead +static_assert(CTRE_TEST("(a*)*")); +static_assert(CTRE_TEST("(ab)*c")); +static_assert(CTRE_TEST("(tour|to|t)+")); +static_assert(CTRE_TEST("(tour|to|tournament)+")); +static_assert(CTRE_TEST("(tour|to|tournament)+\ntourna")); +static_assert(CTRE_TEST("-.*,.*-")); +static_assert(CTRE_TEST("-\\(.*\\),\\1-")); +static_assert(CTRE_TEST("A[[:lower:]]B")); +static_assert(CTRE_TEST("A[^[:lower:]0-9]B")); +static_assert(CTRE_TEST("A[^[:lower:]]B")); +//static_assert(CTRE_TEST("Jeff(?!s\\b)")); // negative lookahead +//static_assert(CTRE_TEST("Jeff(?=s\\b)")); // positive lookahead +static_assert(CTRE_TEST("[\\n]+")); +static_assert(CTRE_TEST("[^\\0]*")); +static_assert(CTRE_TEST("[^\\W]")); +//static_assert(CTRE_TEST("[a[.ch.]z]")); +//static_assert(CTRE_TEST("[a[.hyphen.]z]")); +//static_assert(CTRE_TEST("[a[=M=]z]")); +static_assert(CTRE_TEST("[abfor]*")); +static_assert(CTRE_TEST("[ace1-9]*")); +static_assert(CTRE_TEST("[ace1-9]+")); +static_assert(CTRE_TEST("[ace1-9]\\{1,\\}")); +static_assert(CTRE_TEST("[ace1-9]{1,}")); +static_assert(CTRE_TEST("\\(.*\\).*")); +static_assert(CTRE_TEST("\\(a*\\)*")); +static_assert(CTRE_TEST("\\(ab\\)*c")); +static_assert(CTRE_TEST("\\d[\\W]k")); +static_assert(CTRE_TEST("^[a-f]$")); +static_assert(CTRE_TEST("^[a]$")); +static_assert(CTRE_TEST("^[ab]$")); +static_assert(CTRE_TEST("^abc")); +static_assert(CTRE_TEST("a")); +static_assert(CTRE_TEST("a(?=^)b")); // positive lookahead +static_assert(CTRE_TEST("a*")); +static_assert(CTRE_TEST("a*?")); +static_assert(CTRE_TEST("a.\\{3,5\\}c")); +static_assert(CTRE_TEST("a.c")); +static_assert(CTRE_TEST("a.{3,5}c")); +static_assert(CTRE_TEST("a\\{100000000000000000\\}")); +static_assert(CTRE_TEST("ab")); +static_assert(CTRE_TEST("ab*c")); +static_assert(CTRE_TEST("ab\\{3,5\\}c")); +static_assert(CTRE_TEST("abc$")); +static_assert(CTRE_TEST("ab{3,5}c")); +static_assert(CTRE_TEST("a{100000000000000000}")); +static_assert(CTRE_TEST("b*")); +static_assert(CTRE_TEST("ba")); +static_assert(CTRE_TEST("bc")); +static_assert(CTRE_TEST("cd((e)fg)hi")); +static_assert(CTRE_TEST("cd((e)fg)hi|(z)")); +static_assert(CTRE_TEST("cd\\(\\(e\\)fg\\)hi")); +static_assert(CTRE_TEST("cdefghi")); +static_assert(CTRE_TEST("q[^u]")); +static_assert(CTRE_TEST("tour\n\ntournament")); +static_assert(CTRE_TEST("tour\nto\ntournament")); +static_assert(CTRE_TEST("tour|to|tournament")); +static_assert(CTRE_TEST("z")); +static_assert(CTRE_TEST("=!")); +static_assert(CTRE_TEST("[=!]")); +static_assert(CTRE_TEST("(=!)")); +static_assert(CTRE_TEST("(?!test)")); +static_assert(CTRE_TEST("(?=test)")); +static_assert(CTRE_TEST("^(?=.*(.)\\g{1}+.*)[a-z]+")); +static_assert(CTRE_TEST("^(?=.*(a)\\g{1}.*)$")); -#endif diff --git a/tests/trampoline.cpp b/tests/trampoline.cpp index 4f0ff5bc..fca9417d 100644 --- a/tests/trampoline.cpp +++ b/tests/trampoline.cpp @@ -1,5 +1,6 @@ #include "ctre.hpp" +// GCC9 is crashing with ICE on trampolining mechanism #ifndef EXPERIMENTAL_GCC_9 static constexpr inline auto pattern = ctll::basic_fixed_string{"(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((x)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))"}; From d2a7527c0e190ddc288eb7668ada384d68852310 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hana=20Dusi=CC=81kova=CC=81?= Date: Tue, 18 Dec 2018 13:03:09 +0100 Subject: [PATCH 12/23] remove optional (to support older xcode) --- tests/cnttp.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/tests/cnttp.cpp b/tests/cnttp.cpp index 684b8a84..7c923079 100644 --- a/tests/cnttp.cpp +++ b/tests/cnttp.cpp @@ -1,21 +1,19 @@ #include #include #include -#include +struct name { bool has; std::string_view first, family; }; -struct name { std::string_view first, family; }; - -std::optional extract(std::string_view sv) noexcept { +name extract(std::string_view sv) noexcept { #if __cpp_nontype_template_parameter_class if (auto [re,f,l] = ctre::match<"([A-Za-z]+?),([A-Za-z]+?)">(sv); re) { #else using namespace ctre::literals; if (auto [re,f,l] = "([A-Za-z]+?),([A-Za-z]+?)"_ctre.match(sv); re) { #endif - return name{f,l}; + return name{true, f,l}; } else { - return std::nullopt; + return name{false, std::string_view(), std::string_view()}; } } From ef125bd385ccc9c0c17f74d92aabf43a88311a7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hana=20Dusi=CC=81kova=CC=81?= Date: Tue, 18 Dec 2018 13:14:32 +0100 Subject: [PATCH 13/23] updated readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7310593f..a3b3eb95 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ ctre::match<"REGEX">(subject); // C++20 * clang 5.0+ (template UDL, C++17 syntax) * gcc 7.2+ (template UDL, C++17 syntax) -* gcc 9.0+ (C++17 & C++20 cNTTP syntax) +* gcc 9.0+ (C++17 & C++20 cNTTP syntax, trampolining a.k.a. long patterns are not supported due compiler bug) * MSVC 15.8.8+ (C++17 syntax only) #### Template UDL syntax From 5a5ea37a342d0b796edc6f959997ca397f5dd42a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hana=20Dusi=CC=81kova=CC=81?= Date: Tue, 18 Dec 2018 13:23:04 +0100 Subject: [PATCH 14/23] support for other types of arguments with a template function --- include/ctre/functions.hpp | 58 ++++++-------------------------------- 1 file changed, 8 insertions(+), 50 deletions(-) diff --git a/include/ctre/functions.hpp b/include/ctre/functions.hpp index 5872d658..49cda69b 100644 --- a/include/ctre/functions.hpp +++ b/include/ctre/functions.hpp @@ -47,84 +47,42 @@ constexpr auto & _input = input; // in moment when we get C++20 support this will start to work :) #if __cpp_nontype_template_parameter_class -template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto match(std::string_view sv) noexcept { +template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto match(Args && ... args) noexcept { constexpr auto _input = input; // workaround for GCC 9 bug 88092 using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); using re = decltype(ctll::front(typename tmp::output_type::stack_type())); auto re_obj = ctre::regular_expression(re()); - return re_obj.match(sv); + return re_obj.match(std::forward(args)...); } #else -template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto match(std::string_view sv) noexcept { +template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto match(Args && ... args) noexcept { constexpr auto & _input = input; using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); using re = decltype(ctll::front(typename tmp::output_type::stack_type())); auto re_obj = ctre::regular_expression(re()); - return re_obj.match(sv); + return re_obj.match(std::forward(args)...); } #endif - -#if __cpp_nontype_template_parameter_class -template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto match(ForwardIt first, ForwardIt last) noexcept { - constexpr auto _input = input; // workaround for GCC 9 bug 88092 - using tmp = typename ctll::parser::template output>; - static_assert(tmp(), "Regular Expression contains syntax error."); - using re = decltype(ctll::front(typename tmp::output_type::stack_type())); - return ctre::regular_expression(re()).match(first, last); -} -#else -template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto match(ForwardIt first, ForwardIt last) noexcept { - constexpr auto & _input = input; - using tmp = typename ctll::parser::template output>; - static_assert(tmp(), "Regular Expression contains syntax error."); - using re = decltype(ctll::front(typename tmp::output_type::stack_type())); - auto re_obj = ctre::regular_expression(re()); - return re_obj.match(first,last); -} -#endif - - #if __cpp_nontype_template_parameter_class -template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto search(std::string_view sv) noexcept { +template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto search(Args && ... args) noexcept { constexpr auto _input = input; // workaround for GCC 9 bug 88092 using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); using re = decltype(ctll::front(typename tmp::output_type::stack_type())); auto re_obj = ctre::regular_expression(re()); - return re_obj.search(sv); + return re_obj.search(std::forward(args)...); } #else -template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto search(std::string_view sv) noexcept { +template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto search(Args && ... args) noexcept { constexpr auto & _input = input; using tmp = typename ctll::parser::template output>; static_assert(tmp(), "Regular Expression contains syntax error."); using re = decltype(ctll::front(typename tmp::output_type::stack_type())); auto re_obj = ctre::regular_expression(re()); - return re_obj.search(sv); -} -#endif - - -#if __cpp_nontype_template_parameter_class -template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto search(ForwardIt first, ForwardIt last) noexcept { - constexpr auto _input = input; // workaround for GCC 9 bug 88092 - using tmp = typename ctll::parser::template output>; - static_assert(tmp(), "Regular Expression contains syntax error."); - using re = decltype(ctll::front(typename tmp::output_type::stack_type())); - auto re_obj = ctre::regular_expression(re()); - return re_obj.search(first, last); -} -#else -template CTRE_FLATTEN constexpr CTRE_FORCE_INLINE auto search(ForwardIt first, ForwardIt last) noexcept { - constexpr auto & _input = input; - using tmp = typename ctll::parser::template output>; - static_assert(tmp(), "Regular Expression contains syntax error."); - using re = decltype(ctll::front(typename tmp::output_type::stack_type())); - auto re_obj = ctre::regular_expression(re()); - return re_obj.search(first, last); + return re_obj.search(std::forward(args)...); } #endif From 404ac4814ca5da14b4c9efc378e5960ee792ff6e Mon Sep 17 00:00:00 2001 From: BenHanson Date: Thu, 20 Dec 2018 19:41:43 +0000 Subject: [PATCH 15/23] Remove names to prevent warnings. --- include/ctre/evaluation.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/ctre/evaluation.hpp b/include/ctre/evaluation.hpp index c313e6ec..03c5f52f 100644 --- a/include/ctre/evaluation.hpp +++ b/include/ctre/evaluation.hpp @@ -38,7 +38,7 @@ constexpr inline auto search_re(const Iterator begin, const EndIterator end, Pat // if we found "accept" object on stack => ACCEPT template constexpr CTRE_FORCE_INLINE R evaluate(const Iterator, Iterator, const EndIterator, - const match_type mtype, R captures, ctll::list) noexcept { + const match_type, R captures, ctll::list) noexcept { return captures.matched(); } @@ -59,7 +59,7 @@ constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, c // mark end of cycle template constexpr CTRE_FORCE_INLINE R evaluate(const Iterator, Iterator current, const EndIterator, - const match_type mtype, R captures, ctll::list) noexcept { + const match_type, R captures, ctll::list) noexcept { return captures.set_end_mark(current).matched(); } @@ -126,7 +126,7 @@ constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, c template constexpr CTRE_FORCE_INLINE R evaluate(const Iterator, Iterator, const EndIterator, - const match_type mtype, R, ctll::list, Tail...>) noexcept { + const match_type, R, ctll::list, Tail...>) noexcept { // no previous option was matched => REJECT return not_matched; } From 025c1d87f0d0d09e9759e0679fdfbfbee16de664 Mon Sep 17 00:00:00 2001 From: Ben Hanson Date: Thu, 20 Dec 2018 19:48:21 +0000 Subject: [PATCH 16/23] Delete Makefile --- Makefile | 67 -------------------------------------------------------- 1 file changed, 67 deletions(-) delete mode 100644 Makefile diff --git a/Makefile b/Makefile deleted file mode 100644 index 88b0a34e..00000000 --- a/Makefile +++ /dev/null @@ -1,67 +0,0 @@ -.PHONY: default all clean grammar compare - -default: all - -TARGETS := result.cpp test.cpp $(wildcard tests/benchmark-exec/*.cpp) -IGNORE := $(wildcard tests/benchmark/*.cpp) $(wildcard tests/benchmark-exec/*.cpp) - -DESATOMAT := /www/root/desatomat/console/desatomat.php - -CPP_STANDARD := $(shell ./cpp-20-check.sh $(CXX)) - -CXXFLAGS := $(CPP_STANDARD) -Iinclude -O3 -Wno-gnu-string-literal-operator-template -pedantic -Wall -Wextra -LDFLAGS := - -TESTS := $(wildcard tests/*.cpp) $(wildcard tests/benchmark/*.cpp) -TRUE_TARGETS := $(TARGETS:%.cpp=%) -override TRUE_TARGETS := $(filter-out $(IGNORE:%.cpp=%), $(TRUE_TARGETS)) -OBJECTS := $(TARGETS:%.cpp=%.o) $(TESTS:%.cpp=%.o) -override OBJECTS := $(filter-out $(IGNORE:%.cpp=%.o),$(OBJECTS)) -DEPEDENCY_FILES := $(OBJECTS:%.o=%.d) - -all: $(TRUE_TARGETS) $(OBJECTS) - -list: - echo $(SUPPORTED_CPP20) - -$(TRUE_TARGETS): %: %.o - $(CXX) $< $(LDFLAGS) -o $@ - -$(OBJECTS): %.o: %.cpp - $(CXX) $(CXXFLAGS) -MMD -c $< -o $@ - --include $(DEPEDENCY_FILES) - -benchmark: - @$(MAKE) clean - @$(MAKE) IGNORE="" - -benchmark-clean: - @$(MAKE) IGNORE="" clean - -clean: - rm -f $(TRUE_TARGETS) $(OBJECTS) $(DEPEDENCY_FILES) mtent12.txt mtent12.zip - -grammar: include/ctre/pcre.hpp - -regrammar: - @rm -f include/ctre/pcre.hpp - @$(MAKE) grammar - -include/ctre/pcre.hpp: include/ctre/pcre.gram - @echo "LL1q $<" - @$(DESATOMAT) --ll --q --input=include/ctre/pcre.gram --output=include/ctre/ --generator=cpp_ctll_v2 --cfg:fname=pcre.hpp --cfg:namespace=ctre --cfg:guard=CTRE__PCRE__HPP --cfg:grammar_name=pcre - -mtent12.zip: - curl -s http://www.gutenberg.org/files/3200/old/mtent12.zip -o mtent12.zip - -mtent12.txt: mtent12.zip - unzip -o mtent12.zip - touch mtent12.txt - -REPEAT:=10 - -compare: mtent12.txt - $(CXX) $(CXXFLAGS) -MMD -march=native -DPATTERN="\"(${PATTERN})\"" -c tests/benchmark-range/measurement.cpp -o tests/benchmark-range/measurement.o - $(CXX) tests/benchmark-range/measurement.o -lboost_regex -lpcre2-8 -lre2 -o tests/benchmark-range/measurement - tests/benchmark-range/measurement all mtent12.txt ${REPEAT} From 8b24f429143a29d21506b5952d64d9513e669556 Mon Sep 17 00:00:00 2001 From: Ben Hanson Date: Thu, 20 Dec 2018 19:53:19 +0000 Subject: [PATCH 17/23] Delete result.cpp --- result.cpp | 47 ----------------------------------------------- 1 file changed, 47 deletions(-) delete mode 100644 result.cpp diff --git a/result.cpp b/result.cpp deleted file mode 100644 index 3901e158..00000000 --- a/result.cpp +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include -#include -#include - -enum class type { - nothing, - matched, - number, - identifier -}; - -std::pair match(std::string_view subject) { - - #if __cpp_nontype_template_parameter_class - if (auto [matched, identifier, number] = ctre::match<"(?:([a-z]++)|([0-9]++))">(subject); matched) { - #else - using namespace ctre::literals; - if (auto [matched, identifier, number] = "(?:([a-z]++)|([0-9]++))"_ctre.match(subject); matched) { - #endif - if (identifier) return {type::identifier, std::string_view{identifier}}; - else if (number) return {type::number, std::string_view{number}}; - else return {type::matched, std::string_view{matched}}; - } - return {type::nothing, std::string_view{}}; -} - -int main(int argc, char ** argv) { - if (argc >= 2) { - using namespace std::string_view_literals; - if (auto m = match(std::string_view(argv[1])); m.first == type::number) { - std::cout << "number: " << m.second << "\n"; - } else if (m.first == type::identifier) { - std::cout << "identifier: " << m.second << "\n"; - } else if (m.first == type::matched) { - std::cout << "matched: " << m.second << "\n"; - } else { - std::cout << "not matched\n"; - return 1; - } - return 0; - } else { - std::cout << "missing input\n"; - return 2; - } - -} \ No newline at end of file From 1315c759acf453bb47edb80ad859b43a832b2efc Mon Sep 17 00:00:00 2001 From: Ben Hanson Date: Thu, 20 Dec 2018 19:53:34 +0000 Subject: [PATCH 18/23] Delete test.cpp --- test.cpp | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 test.cpp diff --git a/test.cpp b/test.cpp deleted file mode 100644 index da19c275..00000000 --- a/test.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include -#include -#include - - -//static constexpr ctre::pattern pattern = "(?:hello|cau|guten tag|ola)|(?:hello|cau|guten tag|ola)|(?:hello|cau|guten tag|ola)|(?:hello|cau|guten tag|ola)|(?:hello|cau|guten tag|ola)|(?:hello|cau|guten tag|ola)|(?:hello|cau|guten tag|ola)"; -// -//bool fnc(std::string_view view) { -// return ctre::match(view); -//} -// -//int main() { -// std::cout << fnc("hello") << "\n"; -//} - -int main() { - -} \ No newline at end of file From 6968d2e754a01200254a06b4fdb94756467d5866 Mon Sep 17 00:00:00 2001 From: BenHanson Date: Thu, 20 Dec 2018 20:05:08 +0000 Subject: [PATCH 19/23] Added Makefile again. --- Makefile | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..1fa1d327 --- /dev/null +++ b/Makefile @@ -0,0 +1,67 @@ +.PHONY: default all clean grammar compare + +default: all + +TARGETS := $(wildcard tests/benchmark-exec/*.cpp) +IGNORE := $(wildcard tests/benchmark/*.cpp) $(wildcard tests/benchmark-exec/*.cpp) + +DESATOMAT := /www/root/desatomat/console/desatomat.php + +CPP_STANDARD := $(shell ./cpp-20-check.sh $(CXX)) + +CXXFLAGS := $(CPP_STANDARD) -Iinclude -O3 -Wno-gnu-string-literal-operator-template -pedantic -Wall -Wextra +LDFLAGS := + +TESTS := $(wildcard tests/*.cpp) $(wildcard tests/benchmark/*.cpp) +TRUE_TARGETS := $(TARGETS:%.cpp=%) +override TRUE_TARGETS := $(filter-out $(IGNORE:%.cpp=%), $(TRUE_TARGETS)) +OBJECTS := $(TARGETS:%.cpp=%.o) $(TESTS:%.cpp=%.o) +override OBJECTS := $(filter-out $(IGNORE:%.cpp=%.o),$(OBJECTS)) +DEPEDENCY_FILES := $(OBJECTS:%.o=%.d) + +all: $(TRUE_TARGETS) $(OBJECTS) + +list: + echo $(SUPPORTED_CPP20) + +$(TRUE_TARGETS): %: %.o + $(CXX) $< $(LDFLAGS) -o $@ + +$(OBJECTS): %.o: %.cpp + $(CXX) $(CXXFLAGS) -MMD -c $< -o $@ + +-include $(DEPEDENCY_FILES) + +benchmark: + @$(MAKE) clean + @$(MAKE) IGNORE="" + +benchmark-clean: + @$(MAKE) IGNORE="" clean + +clean: + rm -f $(TRUE_TARGETS) $(OBJECTS) $(DEPEDENCY_FILES) mtent12.txt mtent12.zip + +grammar: include/ctre/pcre.hpp + +regrammar: + @rm -f include/ctre/pcre.hpp + @$(MAKE) grammar + +include/ctre/pcre.hpp: include/ctre/pcre.gram + @echo "LL1q $<" + @$(DESATOMAT) --ll --q --input=include/ctre/pcre.gram --output=include/ctre/ --generator=cpp_ctll_v2 --cfg:fname=pcre.hpp --cfg:namespace=ctre --cfg:guard=CTRE__PCRE__HPP --cfg:grammar_name=pcre + +mtent12.zip: + curl -s http://www.gutenberg.org/files/3200/old/mtent12.zip -o mtent12.zip + +mtent12.txt: mtent12.zip + unzip -o mtent12.zip + touch mtent12.txt + +REPEAT:=10 + +compare: mtent12.txt + $(CXX) $(CXXFLAGS) -MMD -march=native -DPATTERN="\"(${PATTERN})\"" -c tests/benchmark-range/measurement.cpp -o tests/benchmark-range/measurement.o + $(CXX) tests/benchmark-range/measurement.o -lboost_regex -lpcre2-8 -lre2 -o tests/benchmark-range/measurement + tests/benchmark-range/measurement all mtent12.txt ${REPEAT} From 61ffc834aae3ebdd16c6d5405a5ba05f1db1d3f0 Mon Sep 17 00:00:00 2001 From: BenHanson Date: Thu, 20 Dec 2018 20:53:59 +0000 Subject: [PATCH 20/23] Added missing match_type param. --- include/ctre/evaluation.hpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/include/ctre/evaluation.hpp b/include/ctre/evaluation.hpp index 03c5f52f..4730d1b2 100644 --- a/include/ctre/evaluation.hpp +++ b/include/ctre/evaluation.hpp @@ -404,17 +404,17 @@ constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, c // end of lookahead template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator, Iterator, const EndIterator, R captures, ctll::list) noexcept { +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator, Iterator, const EndIterator, const match_type, R captures, ctll::list) noexcept { return captures.matched(); } // lookahead positive template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...>) noexcept { +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, const match_type mtype, R captures, ctll::list, Tail...>) noexcept { - if (auto lookahead_result = evaluate(begin, current, end, captures, ctll::list, end_lookahead_mark>())) { + if (auto lookahead_result = evaluate(begin, current, end, mtype, captures, ctll::list, end_lookahead_mark>())) { captures = lookahead_result.unmatch(); - return evaluate(begin, current, end, captures, ctll::list()); + return evaluate(begin, current, end, mtype, captures, ctll::list()); } else { return not_matched; } @@ -422,9 +422,9 @@ constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, c // lookahead negative template -constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, R captures, ctll::list, Tail...>) noexcept { +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, const match_type mtype, R captures, ctll::list, Tail...>) noexcept { - if (auto lookahead_result = evaluate(begin, current, end, captures, ctll::list, end_lookahead_mark>())) { + if (auto lookahead_result = evaluate(begin, current, end, mtype, captures, ctll::list, end_lookahead_mark>())) { return not_matched; } else { return evaluate(begin, current, end, captures, ctll::list()); From 1efd112012afefdb66054111c1308a98f8b48cc3 Mon Sep 17 00:00:00 2001 From: BenHanson Date: Thu, 20 Dec 2018 20:59:45 +0000 Subject: [PATCH 21/23] Added missing mtype. --- include/ctre/evaluation.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/ctre/evaluation.hpp b/include/ctre/evaluation.hpp index 4730d1b2..e24cd1cd 100644 --- a/include/ctre/evaluation.hpp +++ b/include/ctre/evaluation.hpp @@ -427,7 +427,7 @@ constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, c if (auto lookahead_result = evaluate(begin, current, end, mtype, captures, ctll::list, end_lookahead_mark>())) { return not_matched; } else { - return evaluate(begin, current, end, captures, ctll::list()); + return evaluate(begin, current, end, m_type, captures, ctll::list()); } } From 193748321e589b67883a42e6dd76524f7028a08f Mon Sep 17 00:00:00 2001 From: BenHanson Date: Thu, 20 Dec 2018 21:02:26 +0000 Subject: [PATCH 22/23] mtype not m_type. --- include/ctre/evaluation.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/ctre/evaluation.hpp b/include/ctre/evaluation.hpp index e24cd1cd..07b164f8 100644 --- a/include/ctre/evaluation.hpp +++ b/include/ctre/evaluation.hpp @@ -427,7 +427,7 @@ constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, c if (auto lookahead_result = evaluate(begin, current, end, mtype, captures, ctll::list, end_lookahead_mark>())) { return not_matched; } else { - return evaluate(begin, current, end, m_type, captures, ctll::list()); + return evaluate(begin, current, end, mtype, captures, ctll::list()); } } From a7ce6fc826b3a406948a5cd042d46ad4708e2432 Mon Sep 17 00:00:00 2001 From: BenHanson Date: Wed, 1 May 2019 18:12:01 +0100 Subject: [PATCH 23/23] Added in removed functions. --- include/ctre/evaluation.hpp | 57 +++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/include/ctre/evaluation.hpp b/include/ctre/evaluation.hpp index 78eb1e28..76f317e0 100644 --- a/include/ctre/evaluation.hpp +++ b/include/ctre/evaluation.hpp @@ -243,6 +243,25 @@ constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, c } } +// possessive repeat +template +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, ctll::list, Tail...>) noexcept { + + for (size_t i{0}; (i < B) || (B == 0); ++i) { + // try as many of inner as possible and then try outer once + if (auto inner_result = evaluate(begin, current, end, mtype, captures, ctll::list, end_cycle_mark>())) { + captures = inner_result.unmatch(); + current = inner_result.get_end_position(); + } else { + if (i < A && (A != 0)) return not_matched; + else return evaluate(begin, current, end, mtype, captures, ctll::list()); + } + } + + return evaluate(begin, current, end, mtype, captures, ctll::list()); +} + // (gready) repeat template constexpr inline R evaluate_recursive(size_t i, const Iterator begin, Iterator current, const EndIterator end, @@ -267,8 +286,46 @@ constexpr inline R evaluate_recursive(size_t i, const Iterator begin, Iterator c return evaluate(begin, current, end, mtype, captures, ctll::list()); } +// (gready) repeat optimization +// basic one, if you are at the end of RE, just change it into possessive +// TODO do the same if there is no collision with rest of the RE +template +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + match_type mtype, R captures, ctll::list,assert_end, Tail...>) { + return evaluate(begin, current, end, mtype, captures, ctll::list, assert_end, Tail...>()); +} + template struct identify_type; +// (greedy) repeat +template +constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end, + const match_type mtype, R captures, [[maybe_unused]] ctll::list, Tail...> stack) { + // check if it can be optimized +#ifndef CTRE_DISABLE_GREEDY_OPT + if constexpr (collides(calculate_first(Content{}...), calculate_first(Tail{}...))) { +#endif + // A..B + size_t i{0}; + for (; i < A && (A != 0); ++i) { + if (auto inner_result = evaluate(begin, current, end, mtype, captures, ctll::list, end_cycle_mark>())) { + captures = inner_result.unmatch(); + current = inner_result.get_end_position(); + } else { + return not_matched; + } + } + + return evaluate_recursive(i, begin, current, end, mtype, captures, stack); +#ifndef CTRE_DISABLE_GREEDY_OPT + } else { + // if there is no collision we can go possessive + return evaluate(begin, current, end, mtype, captures, ctll::list, Tail...>()); + } +#endif + +} + // repeat lazy_star template constexpr CTRE_FORCE_INLINE R evaluate(const Iterator begin, Iterator current, const EndIterator end,