Add const char * overloads to String class

Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
This commit is contained in:
Wilson E. Alvarez
2023-11-02 15:15:48 -04:00
parent 55b8724bd5
commit d4154dbc55
5 changed files with 670 additions and 158 deletions

View File

@ -406,4 +406,71 @@ public:
#define SIGNAL_CHECK_FALSE(m_signal) CHECK(SignalWatcher::get_singleton()->check_false(m_signal));
#define SIGNAL_DISCARD(m_signal) SignalWatcher::get_singleton()->discard_signal(m_signal);
#define MULTICHECK_STRING_EQ(m_obj, m_func, m_param1, m_eq) \
CHECK(m_obj.m_func(m_param1) == m_eq); \
CHECK(m_obj.m_func(U##m_param1) == m_eq); \
CHECK(m_obj.m_func(L##m_param1) == m_eq); \
CHECK(m_obj.m_func(String(m_param1)) == m_eq);
#define MULTICHECK_STRING_INT_EQ(m_obj, m_func, m_param1, m_param2, m_eq) \
CHECK(m_obj.m_func(m_param1, m_param2) == m_eq); \
CHECK(m_obj.m_func(U##m_param1, m_param2) == m_eq); \
CHECK(m_obj.m_func(L##m_param1, m_param2) == m_eq); \
CHECK(m_obj.m_func(String(m_param1), m_param2) == m_eq);
#define MULTICHECK_STRING_INT_INT_EQ(m_obj, m_func, m_param1, m_param2, m_param3, m_eq) \
CHECK(m_obj.m_func(m_param1, m_param2, m_param3) == m_eq); \
CHECK(m_obj.m_func(U##m_param1, m_param2, m_param3) == m_eq); \
CHECK(m_obj.m_func(L##m_param1, m_param2, m_param3) == m_eq); \
CHECK(m_obj.m_func(String(m_param1), m_param2, m_param3) == m_eq);
#define MULTICHECK_STRING_STRING_EQ(m_obj, m_func, m_param1, m_param2, m_eq) \
CHECK(m_obj.m_func(m_param1, m_param2) == m_eq); \
CHECK(m_obj.m_func(U##m_param1, U##m_param2) == m_eq); \
CHECK(m_obj.m_func(L##m_param1, L##m_param2) == m_eq); \
CHECK(m_obj.m_func(String(m_param1), String(m_param2)) == m_eq);
#define MULTICHECK_GET_SLICE(m_obj, m_param1, m_slices) \
for (int i = 0; i < m_obj.get_slice_count(m_param1); ++i) { \
CHECK(m_obj.get_slice(m_param1, i) == m_slices[i]); \
} \
for (int i = 0; i < m_obj.get_slice_count(U##m_param1); ++i) { \
CHECK(m_obj.get_slice(U##m_param1, i) == m_slices[i]); \
} \
for (int i = 0; i < m_obj.get_slice_count(L##m_param1); ++i) { \
CHECK(m_obj.get_slice(L##m_param1, i) == m_slices[i]); \
} \
for (int i = 0; i < m_obj.get_slice_count(String(m_param1)); ++i) { \
CHECK(m_obj.get_slice(String(m_param1), i) == m_slices[i]); \
}
#define MULTICHECK_SPLIT(m_obj, m_func, m_param1, m_param2, m_param3, m_slices, m_expected_size) \
do { \
Vector<String> string_list; \
\
string_list = m_obj.m_func(m_param1, m_param2, m_param3); \
CHECK(m_expected_size == string_list.size()); \
for (int i = 0; i < string_list.size(); ++i) { \
CHECK(string_list[i] == m_slices[i]); \
} \
\
string_list = m_obj.m_func(U##m_param1, m_param2, m_param3); \
CHECK(m_expected_size == string_list.size()); \
for (int i = 0; i < string_list.size(); ++i) { \
CHECK(string_list[i] == m_slices[i]); \
} \
\
string_list = m_obj.m_func(L##m_param1, m_param2, m_param3); \
CHECK(m_expected_size == string_list.size()); \
for (int i = 0; i < string_list.size(); ++i) { \
CHECK(string_list[i] == m_slices[i]); \
} \
\
string_list = m_obj.m_func(String(m_param1), m_param2, m_param3); \
CHECK(m_expected_size == string_list.size()); \
for (int i = 0; i < string_list.size(); ++i) { \
CHECK(string_list[i] == m_slices[i]); \
} \
} while (0)
#endif // TEST_MACROS_H