mirror of
https://github.com/ETLCPP/etl.git
synced 2026-04-30 19:09:10 +08:00
Merge branch 'feature/string-utilities' into development
This commit is contained in:
commit
09faee80da
@ -36,11 +36,15 @@ SOFTWARE.
|
||||
#include "enum_type.h"
|
||||
#include "memory.h"
|
||||
#include "char_traits.h"
|
||||
#include "optional.h"
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
namespace etl
|
||||
{
|
||||
//***************************************************************************
|
||||
/// string_pad_direction
|
||||
//***************************************************************************
|
||||
struct string_pad_direction
|
||||
{
|
||||
enum enum_type
|
||||
@ -55,13 +59,16 @@ namespace etl
|
||||
ETL_END_ENUM_TYPE
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
/// whitespace
|
||||
//***************************************************************************
|
||||
template <typename TChar>
|
||||
struct whitespace;
|
||||
|
||||
template <>
|
||||
struct whitespace<char>
|
||||
{
|
||||
static const char* value()
|
||||
static ETL_CONSTEXPR const char* value()
|
||||
{
|
||||
return " \t\n\r\f\v";
|
||||
}
|
||||
@ -70,7 +77,7 @@ namespace etl
|
||||
template <>
|
||||
struct whitespace<wchar_t>
|
||||
{
|
||||
static const wchar_t* value()
|
||||
static ETL_CONSTEXPR const wchar_t* value()
|
||||
{
|
||||
return L" \t\n\r\f\v";
|
||||
}
|
||||
@ -79,7 +86,7 @@ namespace etl
|
||||
template <>
|
||||
struct whitespace<char16_t>
|
||||
{
|
||||
static const char16_t* value()
|
||||
static ETL_CONSTEXPR const char16_t* value()
|
||||
{
|
||||
return u" \t\n\r\f\v";
|
||||
}
|
||||
@ -88,12 +95,17 @@ namespace etl
|
||||
template <>
|
||||
struct whitespace<char32_t>
|
||||
{
|
||||
static const char32_t* value()
|
||||
static ETL_CONSTEXPR const char32_t* value()
|
||||
{
|
||||
return U" \t\n\r\f\v";
|
||||
}
|
||||
};
|
||||
|
||||
#if ETL_CPP17_SUPPORTED
|
||||
template <typename TChar>
|
||||
inline constexpr const TChar* whitespace_v = whitespace<TChar>::value();
|
||||
#endif
|
||||
|
||||
//***************************************************************************
|
||||
/// trim_from_left
|
||||
/// Trim left of trim_characters
|
||||
@ -686,33 +698,40 @@ namespace etl
|
||||
/// get_token
|
||||
//***************************************************************************
|
||||
template <typename TIString, typename TStringView>
|
||||
TStringView get_token(const TIString& s, typename TIString::const_pointer delimiters, const TStringView& last_view)
|
||||
etl::optional<TStringView> get_token(const TIString& s, typename TIString::const_pointer delimiters, const etl::optional<TStringView>& last_view, bool ignore_empty_tokens)
|
||||
{
|
||||
size_t position = 0U;
|
||||
typedef typename TIString::const_pointer const_pointer;
|
||||
|
||||
// Does the last_view have valid data?
|
||||
if (last_view.data() != ETL_NULLPTR)
|
||||
bool token_found = false;
|
||||
size_t position = 0U;
|
||||
TStringView view = last_view.value_or(TStringView());
|
||||
const_pointer begin_ptr = s.data();
|
||||
const_pointer end_ptr = begin_ptr + s.size();
|
||||
|
||||
while (!token_found)
|
||||
{
|
||||
position = etl::distance(etl::addressof(*s.begin()), addressof(*last_view.begin()) + last_view.size());
|
||||
// Does the last view have valid data?
|
||||
if (view.data() != ETL_NULLPTR)
|
||||
{
|
||||
position = etl::distance(begin_ptr, view.data() + view.size() + 1U);
|
||||
|
||||
// Have we reached the end of the string?
|
||||
if (position > s.size())
|
||||
{
|
||||
return etl::optional<TStringView>();
|
||||
}
|
||||
}
|
||||
|
||||
// Look for the next token.
|
||||
const_pointer first_ptr = begin_ptr + position;
|
||||
const_pointer last_ptr = find_first_of(first_ptr, end_ptr, delimiters);
|
||||
|
||||
view = TStringView(first_ptr, etl::distance(first_ptr, last_ptr));
|
||||
|
||||
token_found = ((view.size() != 0U) || !ignore_empty_tokens);
|
||||
}
|
||||
|
||||
typename TIString::const_iterator first = s.begin() + position;
|
||||
typename TIString::const_iterator last;
|
||||
|
||||
// Look for the start of the next token.
|
||||
first = find_first_not_of(first, s.end(), delimiters);
|
||||
last = find_first_of(first, s.end(), delimiters);
|
||||
|
||||
size_t view_length = etl::distance(first, last);
|
||||
|
||||
if (view_length != 0)
|
||||
{
|
||||
return TStringView(etl::addressof(*first), view_length);
|
||||
}
|
||||
else
|
||||
{
|
||||
return TStringView();
|
||||
}
|
||||
return etl::optional<TStringView>(view);
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
|
||||
@ -38,8 +38,8 @@ SOFTWARE.
|
||||
///\ingroup utilities
|
||||
|
||||
#define ETL_VERSION_MAJOR 18
|
||||
#define ETL_VERSION_MINOR 11
|
||||
#define ETL_VERSION_PATCH 1
|
||||
#define ETL_VERSION_MINOR 12
|
||||
#define ETL_VERSION_PATCH 0
|
||||
#define ETL_VERSION ETL_STRINGIFY(ETL_VERSION_MAJOR) "." ETL_STRINGIFY(ETL_VERSION_MINOR) "." ETL_STRINGIFY(ETL_VERSION_PATCH)
|
||||
#define ETL_VERSION_W ETL_STRINGIFY(ETL_VERSION_MAJOR) L"." ETL_STRINGIFY(ETL_VERSION_MINOR) L"." ETL_STRINGIFY(ETL_VERSION_PATCH)
|
||||
#define ETL_VERSION_U16 ETL_STRINGIFY(ETL_VERSION_MAJOR) u"." ETL_STRINGIFY(ETL_VERSION_MINOR) u"." ETL_STRINGIFY(ETL_VERSION_PATCH)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Embedded Template Library",
|
||||
"version": "18.11.1",
|
||||
"version": "18.12.0",
|
||||
"authors": {
|
||||
"name": "John Wellbelove",
|
||||
"email": "john.wellbelove@etlcpp.com"
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
name=Embedded Template Library
|
||||
version=18.11.1
|
||||
version=18.12.0
|
||||
author= John Wellbelove <john.wellbelove@etlcpp.com>
|
||||
maintainer=John Wellbelove <john.wellbelove@etlcpp.com>
|
||||
license=MIT
|
||||
|
||||
@ -1,3 +1,7 @@
|
||||
===============================================================================
|
||||
18.12.0
|
||||
Recoded string utility get_token()
|
||||
|
||||
===============================================================================
|
||||
18.11.1
|
||||
Fix and optimise etl::list and etl::forward_list move constructors and assignment operators.
|
||||
|
||||
@ -46,7 +46,9 @@ namespace
|
||||
using IString = etl::istring;
|
||||
using StringView = etl::string_view;
|
||||
using Char = etl::istring::value_type;
|
||||
using Vector = etl::vector<String, 10>;
|
||||
using Vector = etl::vector<String, 15>;
|
||||
|
||||
constexpr auto Whitespace = etl::whitespace_v<String::value_type>;
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_trim_whitespace_left_empty)
|
||||
@ -65,8 +67,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -91,8 +93,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -117,8 +119,8 @@ namespace
|
||||
String text(STR("Hello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -143,8 +145,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -169,8 +171,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -195,8 +197,8 @@ namespace
|
||||
String text(STR("Hello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -232,8 +234,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -258,8 +260,8 @@ namespace
|
||||
String text(STR("Hello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -284,8 +286,8 @@ namespace
|
||||
String text(STR("Hello Worldqztfp"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("XYZ"));
|
||||
|
||||
@ -299,8 +301,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -326,8 +328,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -352,8 +354,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -378,8 +380,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World"));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -404,8 +406,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -430,8 +432,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -456,8 +458,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World"));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -482,8 +484,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("qztfpHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("rld"));
|
||||
|
||||
@ -508,8 +510,8 @@ namespace
|
||||
String text(STR("qztfpHello World"));
|
||||
String expected(STR("qztfpHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("rld"));
|
||||
|
||||
@ -534,8 +536,8 @@ namespace
|
||||
String text(STR("qztfpHello World"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("XYZ"));
|
||||
|
||||
@ -560,8 +562,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -586,8 +588,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -612,8 +614,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -638,8 +640,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -664,8 +666,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -690,8 +692,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -716,8 +718,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("Hd"));
|
||||
|
||||
@ -742,8 +744,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("Hd"));
|
||||
|
||||
@ -768,8 +770,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("XYZ"));
|
||||
|
||||
@ -794,8 +796,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::right_n_view(textview, expected.size());
|
||||
|
||||
@ -809,8 +811,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::right_n_view(textview, text.size() * 2U);
|
||||
|
||||
@ -846,8 +848,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::left_n_view(textview, expected.size());
|
||||
|
||||
@ -861,8 +863,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::left_n_view(textview, text.size() * 2U);
|
||||
|
||||
@ -973,45 +975,52 @@ namespace
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters)
|
||||
TEST(test_get_token_delimiters_ignore_empty_tokens)
|
||||
{
|
||||
String text(STR(" The cat.sat, on;the:mat .,;:"));
|
||||
String text(STR(",,,The,cat,sat,,on,the,mat,,,"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(","), token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(6U, tokens.size());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters_keep_empty_tokens)
|
||||
{
|
||||
String text(STR(",,,The,cat,sat,,on,the,mat,,,"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
while (token = etl::get_token(text, STR(","), token, false))
|
||||
{
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(13U, tokens.size());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters_nothing_to_do)
|
||||
{
|
||||
String text(STR(""));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, Whitespace, token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(0U, tokens.size());
|
||||
}
|
||||
@ -1022,18 +1031,13 @@ namespace
|
||||
String text(STR(" ., ;: .,;:"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(" .,;:"), token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(0U, tokens.size());
|
||||
}
|
||||
@ -1044,18 +1048,13 @@ namespace
|
||||
String text(STR("The cat sat on the mat"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(","), token, false))
|
||||
{
|
||||
token = etl::get_token(text, STR(".,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(1U, tokens.size());
|
||||
}
|
||||
@ -1280,7 +1279,7 @@ namespace
|
||||
TEST(test_find_first_of_string_view)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_of(textview, STR("Hel"));
|
||||
|
||||
@ -1291,7 +1290,7 @@ namespace
|
||||
TEST(test_find_first_of_string_view_not_found)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_of(textview, STR("xyz"));
|
||||
|
||||
@ -1381,7 +1380,7 @@ namespace
|
||||
TEST(test_find_first_not_of_string_view)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_not_of(textview, STR("abc"));
|
||||
|
||||
@ -1392,7 +1391,7 @@ namespace
|
||||
TEST(test_find_first_not_of_string_view_not_found)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_not_of(textview, STR("abcHello World"));
|
||||
|
||||
@ -1483,7 +1482,7 @@ namespace
|
||||
TEST(test_find_last_of_string_view)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_of(textview, STR("rld"));
|
||||
|
||||
@ -1494,7 +1493,7 @@ namespace
|
||||
TEST(test_find_last_of_string_view_not_found)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_of(textview, STR("xyz"));
|
||||
|
||||
@ -1585,7 +1584,7 @@ namespace
|
||||
TEST(test_find_last_not_of_string_view)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_not_of(textview, STR("abc"));
|
||||
|
||||
@ -1596,7 +1595,7 @@ namespace
|
||||
TEST(test_find_last_not_of_string_view_not_found)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_not_of(textview, STR("abcHello World"));
|
||||
|
||||
|
||||
@ -50,6 +50,8 @@ namespace
|
||||
using Char = std::string::value_type;
|
||||
using Vector = std::vector<String>;
|
||||
|
||||
constexpr auto Whitespace = etl::whitespace_v<String::value_type>;
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_trim_whitespace_left_empty)
|
||||
{
|
||||
@ -67,8 +69,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -93,8 +95,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -119,8 +121,8 @@ namespace
|
||||
String text(STR("Hello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -145,8 +147,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -171,8 +173,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -197,8 +199,8 @@ namespace
|
||||
String text(STR("Hello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -234,8 +236,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -260,8 +262,8 @@ namespace
|
||||
String text(STR("Hello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -286,8 +288,8 @@ namespace
|
||||
String text(STR("Hello Worldqztfp"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("XYZ"));
|
||||
|
||||
@ -301,8 +303,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -328,8 +330,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -354,8 +356,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -380,8 +382,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World"));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -406,8 +408,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -432,8 +434,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -458,8 +460,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World"));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -484,8 +486,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("qztfpHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("rld"));
|
||||
|
||||
@ -510,8 +512,8 @@ namespace
|
||||
String text(STR("qztfpHello World"));
|
||||
String expected(STR("qztfpHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("rld"));
|
||||
|
||||
@ -536,8 +538,8 @@ namespace
|
||||
String text(STR("qztfpHello World"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("XYZ"));
|
||||
|
||||
@ -562,8 +564,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -588,8 +590,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -614,8 +616,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -640,8 +642,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -666,8 +668,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -692,8 +694,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -718,8 +720,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("Hd"));
|
||||
|
||||
@ -744,8 +746,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("Hd"));
|
||||
|
||||
@ -770,8 +772,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("XYZ"));
|
||||
|
||||
@ -796,8 +798,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::right_n_view(textview, expected.size());
|
||||
|
||||
@ -811,8 +813,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::right_n_view(textview, text.size() * 2U);
|
||||
|
||||
@ -848,8 +850,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::left_n_view(textview, expected.size());
|
||||
|
||||
@ -863,8 +865,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::left_n_view(textview, text.size() * 2U);
|
||||
|
||||
@ -975,45 +977,52 @@ namespace
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters)
|
||||
TEST(test_get_token_delimiters_ignore_empty_tokens)
|
||||
{
|
||||
String text(STR(" The cat.sat, on;the:mat .,;:"));
|
||||
String text(STR(",,,The,cat,sat,,on,the,mat,,,"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(","), token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(6U, tokens.size());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters_keep_empty_tokens)
|
||||
{
|
||||
String text(STR(",,,The,cat,sat,,on,the,mat,,,"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
while (token = etl::get_token(text, STR(","), token, false))
|
||||
{
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(13U, tokens.size());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters_nothing_to_do)
|
||||
{
|
||||
String text(STR(""));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, Whitespace, token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(0U, tokens.size());
|
||||
}
|
||||
@ -1024,18 +1033,13 @@ namespace
|
||||
String text(STR(" ., ;: .,;:"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(" .,;:"), token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(0U, tokens.size());
|
||||
}
|
||||
@ -1046,18 +1050,13 @@ namespace
|
||||
String text(STR("The cat sat on the mat"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(","), token, false))
|
||||
{
|
||||
token = etl::get_token(text, STR(".,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(1U, tokens.size());
|
||||
}
|
||||
@ -1234,7 +1233,7 @@ namespace
|
||||
TEST(test_find_first_of_string_view)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_of(textview, STR("Hel"));
|
||||
|
||||
@ -1245,7 +1244,7 @@ namespace
|
||||
TEST(test_find_first_of_string_view_not_found)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_of(textview, STR("xyz"));
|
||||
|
||||
@ -1335,7 +1334,7 @@ namespace
|
||||
TEST(test_find_first_not_of_string_view)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_not_of(textview, STR("abc"));
|
||||
|
||||
@ -1346,7 +1345,7 @@ namespace
|
||||
TEST(test_find_first_not_of_string_view_not_found)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_not_of(textview, STR("abcHello World"));
|
||||
|
||||
@ -1437,7 +1436,7 @@ namespace
|
||||
TEST(test_find_last_of_string_view)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_of(textview, STR("rld"));
|
||||
|
||||
@ -1448,7 +1447,7 @@ namespace
|
||||
TEST(test_find_last_of_string_view_not_found)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_of(textview, STR("xyz"));
|
||||
|
||||
@ -1539,7 +1538,7 @@ namespace
|
||||
TEST(test_find_last_not_of_string_view)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_not_of(textview, STR("abc"));
|
||||
|
||||
@ -1550,7 +1549,7 @@ namespace
|
||||
TEST(test_find_last_not_of_string_view_not_found)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_not_of(textview, STR("abcHello World"));
|
||||
|
||||
|
||||
@ -50,6 +50,8 @@ namespace
|
||||
using Char = std::wstring::value_type;
|
||||
using Vector = std::vector<String>;
|
||||
|
||||
constexpr auto Whitespace = etl::whitespace_v<String::value_type>;
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_trim_whitespace_left_empty)
|
||||
{
|
||||
@ -67,8 +69,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -93,8 +95,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -119,8 +121,8 @@ namespace
|
||||
String text(STR("Hello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -145,8 +147,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -171,8 +173,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -197,8 +199,8 @@ namespace
|
||||
String text(STR("Hello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -234,8 +236,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -260,8 +262,8 @@ namespace
|
||||
String text(STR("Hello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -286,8 +288,8 @@ namespace
|
||||
String text(STR("Hello Worldqztfp"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("XYZ"));
|
||||
|
||||
@ -301,8 +303,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -328,8 +330,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -354,8 +356,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -380,8 +382,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World"));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -406,8 +408,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -432,8 +434,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -458,8 +460,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World"));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -484,8 +486,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("qztfpHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("rld"));
|
||||
|
||||
@ -510,8 +512,8 @@ namespace
|
||||
String text(STR("qztfpHello World"));
|
||||
String expected(STR("qztfpHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("rld"));
|
||||
|
||||
@ -536,8 +538,8 @@ namespace
|
||||
String text(STR("qztfpHello World"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("XYZ"));
|
||||
|
||||
@ -562,8 +564,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -588,8 +590,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -614,8 +616,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -640,8 +642,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -666,8 +668,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -692,8 +694,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -718,8 +720,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("Hd"));
|
||||
|
||||
@ -744,8 +746,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("Hd"));
|
||||
|
||||
@ -770,8 +772,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("XYZ"));
|
||||
|
||||
@ -796,8 +798,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::right_n_view(textview, expected.size());
|
||||
|
||||
@ -811,8 +813,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::right_n_view(textview, text.size() * 2U);
|
||||
|
||||
@ -848,8 +850,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::left_n_view(textview, expected.size());
|
||||
|
||||
@ -863,8 +865,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::left_n_view(textview, text.size() * 2U);
|
||||
|
||||
@ -975,45 +977,52 @@ namespace
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters)
|
||||
TEST(test_get_token_delimiters_ignore_empty_tokens)
|
||||
{
|
||||
String text(STR(" The cat.sat, on;the:mat .,;:"));
|
||||
String text(STR(",,,The,cat,sat,,on,the,mat,,,"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(","), token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(6U, tokens.size());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters_keep_empty_tokens)
|
||||
{
|
||||
String text(STR(",,,The,cat,sat,,on,the,mat,,,"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
while (token = etl::get_token(text, STR(","), token, false))
|
||||
{
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(13U, tokens.size());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters_nothing_to_do)
|
||||
{
|
||||
String text(STR(""));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, Whitespace, token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(0U, tokens.size());
|
||||
}
|
||||
@ -1024,18 +1033,13 @@ namespace
|
||||
String text(STR(" ., ;: .,;:"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(" .,;:"), token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(0U, tokens.size());
|
||||
}
|
||||
@ -1046,18 +1050,13 @@ namespace
|
||||
String text(STR("The cat sat on the mat"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(","), token, false))
|
||||
{
|
||||
token = etl::get_token(text, STR(".,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(1U, tokens.size());
|
||||
}
|
||||
@ -1234,7 +1233,7 @@ namespace
|
||||
TEST(test_find_first_of_string_view)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_of(textview, STR("Hel"));
|
||||
|
||||
@ -1245,7 +1244,7 @@ namespace
|
||||
TEST(test_find_first_of_string_view_not_found)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_of(textview, STR("xyz"));
|
||||
|
||||
@ -1335,7 +1334,7 @@ namespace
|
||||
TEST(test_find_first_not_of_string_view)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_not_of(textview, STR("abc"));
|
||||
|
||||
@ -1346,7 +1345,7 @@ namespace
|
||||
TEST(test_find_first_not_of_string_view_not_found)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_not_of(textview, STR("abcHello World"));
|
||||
|
||||
@ -1437,7 +1436,7 @@ namespace
|
||||
TEST(test_find_last_of_string_view)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_of(textview, STR("rld"));
|
||||
|
||||
@ -1448,7 +1447,7 @@ namespace
|
||||
TEST(test_find_last_of_string_view_not_found)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_of(textview, STR("xyz"));
|
||||
|
||||
@ -1539,7 +1538,7 @@ namespace
|
||||
TEST(test_find_last_not_of_string_view)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_not_of(textview, STR("abc"));
|
||||
|
||||
@ -1550,7 +1549,7 @@ namespace
|
||||
TEST(test_find_last_not_of_string_view_not_found)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_not_of(textview, STR("abcHello World"));
|
||||
|
||||
|
||||
@ -50,6 +50,8 @@ namespace
|
||||
using Char = std::u32string::value_type;
|
||||
using Vector = std::vector<String>;
|
||||
|
||||
constexpr auto Whitespace = etl::whitespace_v<String::value_type>;
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_trim_whitespace_left_empty)
|
||||
{
|
||||
@ -67,8 +69,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -93,8 +95,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -119,8 +121,8 @@ namespace
|
||||
String text(STR("Hello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -145,8 +147,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -171,8 +173,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -197,8 +199,8 @@ namespace
|
||||
String text(STR("Hello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -234,8 +236,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -260,8 +262,8 @@ namespace
|
||||
String text(STR("Hello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -286,8 +288,8 @@ namespace
|
||||
String text(STR("Hello Worldqztfp"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("XYZ"));
|
||||
|
||||
@ -301,8 +303,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -328,8 +330,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -354,8 +356,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -380,8 +382,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World"));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -406,8 +408,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -432,8 +434,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -458,8 +460,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World"));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -484,8 +486,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("qztfpHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("rld"));
|
||||
|
||||
@ -510,8 +512,8 @@ namespace
|
||||
String text(STR("qztfpHello World"));
|
||||
String expected(STR("qztfpHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("rld"));
|
||||
|
||||
@ -536,8 +538,8 @@ namespace
|
||||
String text(STR("qztfpHello World"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("XYZ"));
|
||||
|
||||
@ -562,8 +564,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -588,8 +590,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -614,8 +616,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -640,8 +642,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -666,8 +668,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -692,8 +694,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -718,8 +720,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("Hd"));
|
||||
|
||||
@ -744,8 +746,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("Hd"));
|
||||
|
||||
@ -770,8 +772,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("XYZ"));
|
||||
|
||||
@ -796,8 +798,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::right_n_view(textview, expected.size());
|
||||
|
||||
@ -811,8 +813,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::right_n_view(textview, text.size() * 2U);
|
||||
|
||||
@ -848,8 +850,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::left_n_view(textview, expected.size());
|
||||
|
||||
@ -863,8 +865,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::left_n_view(textview, text.size() * 2U);
|
||||
|
||||
@ -975,45 +977,52 @@ namespace
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters)
|
||||
TEST(test_get_token_delimiters_ignore_empty_tokens)
|
||||
{
|
||||
String text(STR(" The cat.sat, on;the:mat .,;:"));
|
||||
String text(STR(",,,The,cat,sat,,on,the,mat,,,"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(","), token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(6U, tokens.size());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters_keep_empty_tokens)
|
||||
{
|
||||
String text(STR(",,,The,cat,sat,,on,the,mat,,,"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
while (token = etl::get_token(text, STR(","), token, false))
|
||||
{
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(13U, tokens.size());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters_nothing_to_do)
|
||||
{
|
||||
String text(STR(""));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, Whitespace, token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(0U, tokens.size());
|
||||
}
|
||||
@ -1024,18 +1033,13 @@ namespace
|
||||
String text(STR(" ., ;: .,;:"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(" .,;:"), token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(0U, tokens.size());
|
||||
}
|
||||
@ -1046,18 +1050,13 @@ namespace
|
||||
String text(STR("The cat sat on the mat"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(","), token, false))
|
||||
{
|
||||
token = etl::get_token(text, STR(".,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(1U, tokens.size());
|
||||
}
|
||||
@ -1234,7 +1233,7 @@ namespace
|
||||
TEST(test_find_first_of_string_view)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_of(textview, STR("Hel"));
|
||||
|
||||
@ -1245,7 +1244,7 @@ namespace
|
||||
TEST(test_find_first_of_string_view_not_found)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_of(textview, STR("xyz"));
|
||||
|
||||
@ -1335,7 +1334,7 @@ namespace
|
||||
TEST(test_find_first_not_of_string_view)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_not_of(textview, STR("abc"));
|
||||
|
||||
@ -1346,7 +1345,7 @@ namespace
|
||||
TEST(test_find_first_not_of_string_view_not_found)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_not_of(textview, STR("abcHello World"));
|
||||
|
||||
@ -1437,7 +1436,7 @@ namespace
|
||||
TEST(test_find_last_of_string_view)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_of(textview, STR("rld"));
|
||||
|
||||
@ -1448,7 +1447,7 @@ namespace
|
||||
TEST(test_find_last_of_string_view_not_found)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_of(textview, STR("xyz"));
|
||||
|
||||
@ -1539,7 +1538,7 @@ namespace
|
||||
TEST(test_find_last_not_of_string_view)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_not_of(textview, STR("abc"));
|
||||
|
||||
@ -1550,7 +1549,7 @@ namespace
|
||||
TEST(test_find_last_not_of_string_view_not_found)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_not_of(textview, STR("abcHello World"));
|
||||
|
||||
|
||||
@ -50,6 +50,8 @@ namespace
|
||||
using Char = std::wstring::value_type;
|
||||
using Vector = std::vector<String>;
|
||||
|
||||
constexpr auto Whitespace = etl::whitespace_v<String::value_type>;
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_trim_whitespace_left_empty)
|
||||
{
|
||||
@ -67,8 +69,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -93,8 +95,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -119,8 +121,8 @@ namespace
|
||||
String text(STR("Hello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -145,8 +147,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -171,8 +173,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -197,8 +199,8 @@ namespace
|
||||
String text(STR("Hello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -234,8 +236,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -260,8 +262,8 @@ namespace
|
||||
String text(STR("Hello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -286,8 +288,8 @@ namespace
|
||||
String text(STR("Hello Worldqztfp"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("XYZ"));
|
||||
|
||||
@ -301,8 +303,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -328,8 +330,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -354,8 +356,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -380,8 +382,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World"));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -406,8 +408,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -432,8 +434,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -458,8 +460,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World"));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -484,8 +486,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("qztfpHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("rld"));
|
||||
|
||||
@ -510,8 +512,8 @@ namespace
|
||||
String text(STR("qztfpHello World"));
|
||||
String expected(STR("qztfpHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("rld"));
|
||||
|
||||
@ -536,8 +538,8 @@ namespace
|
||||
String text(STR("qztfpHello World"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("XYZ"));
|
||||
|
||||
@ -562,8 +564,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -588,8 +590,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -614,8 +616,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -640,8 +642,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -666,8 +668,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -692,8 +694,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -718,8 +720,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("Hd"));
|
||||
|
||||
@ -744,8 +746,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("Hd"));
|
||||
|
||||
@ -770,8 +772,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("XYZ"));
|
||||
|
||||
@ -796,8 +798,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::right_n_view(textview, expected.size());
|
||||
|
||||
@ -811,8 +813,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::right_n_view(textview, text.size() * 2U);
|
||||
|
||||
@ -848,8 +850,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::left_n_view(textview, expected.size());
|
||||
|
||||
@ -863,8 +865,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::left_n_view(textview, text.size() * 2U);
|
||||
|
||||
@ -975,45 +977,52 @@ namespace
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters)
|
||||
TEST(test_get_token_delimiters_ignore_empty_tokens)
|
||||
{
|
||||
String text(STR(" The cat.sat, on;the:mat .,;:"));
|
||||
String text(STR(",,,The,cat,sat,,on,the,mat,,,"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(","), token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(6U, tokens.size());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters_keep_empty_tokens)
|
||||
{
|
||||
String text(STR(",,,The,cat,sat,,on,the,mat,,,"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
while (token = etl::get_token(text, STR(","), token, false))
|
||||
{
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(13U, tokens.size());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters_nothing_to_do)
|
||||
{
|
||||
String text(STR(""));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, Whitespace, token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(0U, tokens.size());
|
||||
}
|
||||
@ -1024,18 +1033,13 @@ namespace
|
||||
String text(STR(" ., ;: .,;:"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(" .,;:"), token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(0U, tokens.size());
|
||||
}
|
||||
@ -1046,18 +1050,13 @@ namespace
|
||||
String text(STR("The cat sat on the mat"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(","), token, false))
|
||||
{
|
||||
token = etl::get_token(text, STR(".,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(1U, tokens.size());
|
||||
}
|
||||
@ -1234,7 +1233,7 @@ namespace
|
||||
TEST(test_find_first_of_string_view)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_of(textview, STR("Hel"));
|
||||
|
||||
@ -1245,7 +1244,7 @@ namespace
|
||||
TEST(test_find_first_of_string_view_not_found)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_of(textview, STR("xyz"));
|
||||
|
||||
@ -1335,7 +1334,7 @@ namespace
|
||||
TEST(test_find_first_not_of_string_view)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_not_of(textview, STR("abc"));
|
||||
|
||||
@ -1346,7 +1345,7 @@ namespace
|
||||
TEST(test_find_first_not_of_string_view_not_found)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_not_of(textview, STR("abcHello World"));
|
||||
|
||||
@ -1437,7 +1436,7 @@ namespace
|
||||
TEST(test_find_last_of_string_view)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_of(textview, STR("rld"));
|
||||
|
||||
@ -1448,7 +1447,7 @@ namespace
|
||||
TEST(test_find_last_of_string_view_not_found)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_of(textview, STR("xyz"));
|
||||
|
||||
@ -1539,7 +1538,7 @@ namespace
|
||||
TEST(test_find_last_not_of_string_view)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_not_of(textview, STR("abc"));
|
||||
|
||||
@ -1550,7 +1549,7 @@ namespace
|
||||
TEST(test_find_last_not_of_string_view_not_found)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_not_of(textview, STR("abcHello World"));
|
||||
|
||||
|
||||
@ -46,7 +46,9 @@ namespace
|
||||
using IString = etl::iu16string;
|
||||
using StringView = etl::u16string_view;
|
||||
using Char = etl::iu16string::value_type;
|
||||
using Vector = etl::vector<String, 10>;
|
||||
using Vector = etl::vector<String, 15>;
|
||||
|
||||
constexpr auto Whitespace = etl::whitespace_v<String::value_type>;
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_trim_whitespace_left_empty)
|
||||
@ -65,8 +67,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -91,8 +93,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -117,8 +119,8 @@ namespace
|
||||
String text(STR("Hello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -143,8 +145,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -169,8 +171,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -195,8 +197,8 @@ namespace
|
||||
String text(STR("Hello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -232,8 +234,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -258,8 +260,8 @@ namespace
|
||||
String text(STR("Hello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -284,8 +286,8 @@ namespace
|
||||
String text(STR("Hello Worldqztfp"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("XYZ"));
|
||||
|
||||
@ -299,8 +301,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -326,8 +328,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -352,8 +354,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -378,8 +380,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World"));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -404,8 +406,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -430,8 +432,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -456,8 +458,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World"));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -482,8 +484,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("qztfpHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("rld"));
|
||||
|
||||
@ -508,8 +510,8 @@ namespace
|
||||
String text(STR("qztfpHello World"));
|
||||
String expected(STR("qztfpHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("rld"));
|
||||
|
||||
@ -534,8 +536,8 @@ namespace
|
||||
String text(STR("qztfpHello World"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("XYZ"));
|
||||
|
||||
@ -560,8 +562,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -586,8 +588,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -612,8 +614,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -638,8 +640,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -664,8 +666,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -690,8 +692,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -716,8 +718,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("Hd"));
|
||||
|
||||
@ -742,8 +744,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("Hd"));
|
||||
|
||||
@ -768,8 +770,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("XYZ"));
|
||||
|
||||
@ -794,8 +796,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::right_n_view(textview, expected.size());
|
||||
|
||||
@ -809,8 +811,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::right_n_view(textview, text.size() * 2U);
|
||||
|
||||
@ -846,8 +848,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::left_n_view(textview, expected.size());
|
||||
|
||||
@ -861,8 +863,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::left_n_view(textview, text.size() * 2U);
|
||||
|
||||
@ -973,45 +975,52 @@ namespace
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters)
|
||||
TEST(test_get_token_delimiters_ignore_empty_tokens)
|
||||
{
|
||||
String text(STR(" The cat.sat, on;the:mat .,;:"));
|
||||
String text(STR(",,,The,cat,sat,,on,the,mat,,,"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(","), token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(6U, tokens.size());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters_keep_empty_tokens)
|
||||
{
|
||||
String text(STR(",,,The,cat,sat,,on,the,mat,,,"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
while (token = etl::get_token(text, STR(","), token, false))
|
||||
{
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(13U, tokens.size());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters_nothing_to_do)
|
||||
{
|
||||
String text(STR(""));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, Whitespace, token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(0U, tokens.size());
|
||||
}
|
||||
@ -1022,18 +1031,13 @@ namespace
|
||||
String text(STR(" ., ;: .,;:"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(" .,;:"), token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(0U, tokens.size());
|
||||
}
|
||||
@ -1044,18 +1048,13 @@ namespace
|
||||
String text(STR("The cat sat on the mat"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(","), token, false))
|
||||
{
|
||||
token = etl::get_token(text, STR(".,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(1U, tokens.size());
|
||||
}
|
||||
@ -1280,7 +1279,7 @@ namespace
|
||||
TEST(test_find_first_of_string_view)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_of(textview, STR("Hel"));
|
||||
|
||||
@ -1291,7 +1290,7 @@ namespace
|
||||
TEST(test_find_first_of_string_view_not_found)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_of(textview, STR("xyz"));
|
||||
|
||||
@ -1381,7 +1380,7 @@ namespace
|
||||
TEST(test_find_first_not_of_string_view)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_not_of(textview, STR("abc"));
|
||||
|
||||
@ -1392,7 +1391,7 @@ namespace
|
||||
TEST(test_find_first_not_of_string_view_not_found)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_not_of(textview, STR("abcHello World"));
|
||||
|
||||
@ -1483,7 +1482,7 @@ namespace
|
||||
TEST(test_find_last_of_string_view)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_of(textview, STR("rld"));
|
||||
|
||||
@ -1494,7 +1493,7 @@ namespace
|
||||
TEST(test_find_last_of_string_view_not_found)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_of(textview, STR("xyz"));
|
||||
|
||||
@ -1585,7 +1584,7 @@ namespace
|
||||
TEST(test_find_last_not_of_string_view)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_not_of(textview, STR("abc"));
|
||||
|
||||
@ -1596,7 +1595,7 @@ namespace
|
||||
TEST(test_find_last_not_of_string_view_not_found)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_not_of(textview, STR("abcHello World"));
|
||||
|
||||
|
||||
@ -46,7 +46,9 @@ namespace
|
||||
using IString = etl::iu32string;
|
||||
using StringView = etl::u32string_view;
|
||||
using Char = etl::iu32string::value_type;
|
||||
using Vector = etl::vector<String, 10>;
|
||||
using Vector = etl::vector<String, 15>;
|
||||
|
||||
constexpr auto Whitespace = etl::whitespace_v<String::value_type>;
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_trim_whitespace_left_empty)
|
||||
@ -65,8 +67,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -91,8 +93,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -117,8 +119,8 @@ namespace
|
||||
String text(STR("Hello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -143,8 +145,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -169,8 +171,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -195,8 +197,8 @@ namespace
|
||||
String text(STR("Hello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -232,8 +234,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -258,8 +260,8 @@ namespace
|
||||
String text(STR("Hello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -284,8 +286,8 @@ namespace
|
||||
String text(STR("Hello Worldqztfp"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("XYZ"));
|
||||
|
||||
@ -299,8 +301,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -326,8 +328,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -352,8 +354,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -378,8 +380,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World"));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -404,8 +406,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -430,8 +432,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -456,8 +458,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World"));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -482,8 +484,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("qztfpHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("rld"));
|
||||
|
||||
@ -508,8 +510,8 @@ namespace
|
||||
String text(STR("qztfpHello World"));
|
||||
String expected(STR("qztfpHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("rld"));
|
||||
|
||||
@ -534,8 +536,8 @@ namespace
|
||||
String text(STR("qztfpHello World"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("XYZ"));
|
||||
|
||||
@ -560,8 +562,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -586,8 +588,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -612,8 +614,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -638,8 +640,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -664,8 +666,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -690,8 +692,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -716,8 +718,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("Hd"));
|
||||
|
||||
@ -742,8 +744,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("Hd"));
|
||||
|
||||
@ -768,8 +770,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("XYZ"));
|
||||
|
||||
@ -794,8 +796,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::right_n_view(textview, expected.size());
|
||||
|
||||
@ -809,8 +811,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::right_n_view(textview, text.size() * 2U);
|
||||
|
||||
@ -846,8 +848,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::left_n_view(textview, expected.size());
|
||||
|
||||
@ -861,8 +863,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::left_n_view(textview, text.size() * 2U);
|
||||
|
||||
@ -973,45 +975,52 @@ namespace
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters)
|
||||
TEST(test_get_token_delimiters_ignore_empty_tokens)
|
||||
{
|
||||
String text(STR(" The cat.sat, on;the:mat .,;:"));
|
||||
String text(STR(",,,The,cat,sat,,on,the,mat,,,"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(","), token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(6U, tokens.size());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters_keep_empty_tokens)
|
||||
{
|
||||
String text(STR(",,,The,cat,sat,,on,the,mat,,,"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
while (token = etl::get_token(text, STR(","), token, false))
|
||||
{
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(13U, tokens.size());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters_nothing_to_do)
|
||||
{
|
||||
String text(STR(""));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, Whitespace, token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(0U, tokens.size());
|
||||
}
|
||||
@ -1022,18 +1031,13 @@ namespace
|
||||
String text(STR(" ., ;: .,;:"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(" .,;:"), token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(0U, tokens.size());
|
||||
}
|
||||
@ -1044,18 +1048,13 @@ namespace
|
||||
String text(STR("The cat sat on the mat"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(","), token, false))
|
||||
{
|
||||
token = etl::get_token(text, STR(".,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(1U, tokens.size());
|
||||
}
|
||||
@ -1280,7 +1279,7 @@ namespace
|
||||
TEST(test_find_first_of_string_view)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_of(textview, STR("Hel"));
|
||||
|
||||
@ -1291,7 +1290,7 @@ namespace
|
||||
TEST(test_find_first_of_string_view_not_found)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_of(textview, STR("xyz"));
|
||||
|
||||
@ -1381,7 +1380,7 @@ namespace
|
||||
TEST(test_find_first_not_of_string_view)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_not_of(textview, STR("abc"));
|
||||
|
||||
@ -1392,7 +1391,7 @@ namespace
|
||||
TEST(test_find_first_not_of_string_view_not_found)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_not_of(textview, STR("abcHello World"));
|
||||
|
||||
@ -1483,7 +1482,7 @@ namespace
|
||||
TEST(test_find_last_of_string_view)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_of(textview, STR("rld"));
|
||||
|
||||
@ -1494,7 +1493,7 @@ namespace
|
||||
TEST(test_find_last_of_string_view_not_found)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_of(textview, STR("xyz"));
|
||||
|
||||
@ -1585,7 +1584,7 @@ namespace
|
||||
TEST(test_find_last_not_of_string_view)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_not_of(textview, STR("abc"));
|
||||
|
||||
@ -1596,7 +1595,7 @@ namespace
|
||||
TEST(test_find_last_not_of_string_view_not_found)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_not_of(textview, STR("abcHello World"));
|
||||
|
||||
|
||||
@ -46,7 +46,9 @@ namespace
|
||||
using IString = etl::iwstring;
|
||||
using StringView = etl::wstring_view;
|
||||
using Char = etl::iwstring::value_type;
|
||||
using Vector = etl::vector<String, 10>;
|
||||
using Vector = etl::vector<String, 15>;
|
||||
|
||||
constexpr auto Whitespace = etl::whitespace_v<String::value_type>;
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_trim_whitespace_left_empty)
|
||||
@ -65,8 +67,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -91,8 +93,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -117,8 +119,8 @@ namespace
|
||||
String text(STR("Hello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_left(textview);
|
||||
|
||||
@ -143,8 +145,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -169,8 +171,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -195,8 +197,8 @@ namespace
|
||||
String text(STR("Hello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World\t\n\r\f\v "));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_left(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -232,8 +234,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -258,8 +260,8 @@ namespace
|
||||
String text(STR("Hello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -284,8 +286,8 @@ namespace
|
||||
String text(STR("Hello Worldqztfp"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("XYZ"));
|
||||
|
||||
@ -299,8 +301,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello Worldqztfp"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_left(textview, STR("Hel"));
|
||||
|
||||
@ -326,8 +328,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -352,8 +354,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -378,8 +380,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World"));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace_right(textview);
|
||||
|
||||
@ -404,8 +406,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -430,8 +432,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -456,8 +458,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World"));
|
||||
String expected(STR(" \t\n\r\f\vHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view_right(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -482,8 +484,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("qztfpHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("rld"));
|
||||
|
||||
@ -508,8 +510,8 @@ namespace
|
||||
String text(STR("qztfpHello World"));
|
||||
String expected(STR("qztfpHello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("rld"));
|
||||
|
||||
@ -534,8 +536,8 @@ namespace
|
||||
String text(STR("qztfpHello World"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_right(textview, STR("XYZ"));
|
||||
|
||||
@ -560,8 +562,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -586,8 +588,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -612,8 +614,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view_whitespace(textview);
|
||||
|
||||
@ -638,8 +640,8 @@ namespace
|
||||
String text(STR(""));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -664,8 +666,8 @@ namespace
|
||||
String text(STR(" \t\n\r\f\vHello World\t\n\r\f\v "));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -690,8 +692,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_from_view(textview, STR(" \t\n\r\f\v"));
|
||||
|
||||
@ -716,8 +718,8 @@ namespace
|
||||
String text(STR("qztfpHello Worldqztfp"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("Hd"));
|
||||
|
||||
@ -742,8 +744,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("Hd"));
|
||||
|
||||
@ -768,8 +770,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR(""));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::trim_view(textview, STR("XYZ"));
|
||||
|
||||
@ -794,8 +796,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::right_n_view(textview, expected.size());
|
||||
|
||||
@ -809,8 +811,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::right_n_view(textview, text.size() * 2U);
|
||||
|
||||
@ -846,8 +848,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::left_n_view(textview, expected.size());
|
||||
|
||||
@ -861,8 +863,8 @@ namespace
|
||||
String text(STR("Hello World"));
|
||||
String expected(STR("Hello World"));
|
||||
|
||||
StringView textview(text);
|
||||
StringView expectedview(expected);
|
||||
StringView textview(text.data(), text.size());
|
||||
StringView expectedview(expected.data(), expected.size());
|
||||
|
||||
StringView view = etl::left_n_view(textview, text.size() * 2U);
|
||||
|
||||
@ -973,45 +975,52 @@ namespace
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters)
|
||||
TEST(test_get_token_delimiters_ignore_empty_tokens)
|
||||
{
|
||||
String text(STR(" The cat.sat, on;the:mat .,;:"));
|
||||
String text(STR(",,,The,cat,sat,,on,the,mat,,,"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(","), token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(6U, tokens.size());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters_keep_empty_tokens)
|
||||
{
|
||||
String text(STR(",,,The,cat,sat,,on,the,mat,,,"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
while (token = etl::get_token(text, STR(","), token, false))
|
||||
{
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(13U, tokens.size());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_get_token_delimiters_nothing_to_do)
|
||||
{
|
||||
String text(STR(""));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, Whitespace, token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(0U, tokens.size());
|
||||
}
|
||||
@ -1022,18 +1031,13 @@ namespace
|
||||
String text(STR(" ., ;: .,;:"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(" .,;:"), token, true))
|
||||
{
|
||||
token = etl::get_token(text, STR(" .,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(0U, tokens.size());
|
||||
}
|
||||
@ -1044,18 +1048,13 @@ namespace
|
||||
String text(STR("The cat sat on the mat"));
|
||||
Vector tokens;
|
||||
|
||||
StringView textview(text);
|
||||
StringView token;
|
||||
StringView textview(text.data(), text.size());
|
||||
etl::optional<StringView> token;
|
||||
|
||||
do
|
||||
while (token = etl::get_token(text, STR(","), token, false))
|
||||
{
|
||||
token = etl::get_token(text, STR(".,;:"), token);
|
||||
|
||||
if (!token.empty())
|
||||
{
|
||||
tokens.emplace_back(token.begin(), token.end());
|
||||
}
|
||||
} while (!token.empty());
|
||||
tokens.emplace_back(token.value());
|
||||
}
|
||||
|
||||
CHECK_EQUAL(1U, tokens.size());
|
||||
}
|
||||
@ -1280,7 +1279,7 @@ namespace
|
||||
TEST(test_find_first_of_string_view)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_of(textview, STR("Hel"));
|
||||
|
||||
@ -1291,7 +1290,7 @@ namespace
|
||||
TEST(test_find_first_of_string_view_not_found)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_of(textview, STR("xyz"));
|
||||
|
||||
@ -1381,7 +1380,7 @@ namespace
|
||||
TEST(test_find_first_not_of_string_view)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_not_of(textview, STR("abc"));
|
||||
|
||||
@ -1392,7 +1391,7 @@ namespace
|
||||
TEST(test_find_first_not_of_string_view_not_found)
|
||||
{
|
||||
const String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_first_not_of(textview, STR("abcHello World"));
|
||||
|
||||
@ -1483,7 +1482,7 @@ namespace
|
||||
TEST(test_find_last_of_string_view)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_of(textview, STR("rld"));
|
||||
|
||||
@ -1494,7 +1493,7 @@ namespace
|
||||
TEST(test_find_last_of_string_view_not_found)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_of(textview, STR("xyz"));
|
||||
|
||||
@ -1585,7 +1584,7 @@ namespace
|
||||
TEST(test_find_last_not_of_string_view)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_not_of(textview, STR("abc"));
|
||||
|
||||
@ -1596,7 +1595,7 @@ namespace
|
||||
TEST(test_find_last_not_of_string_view_not_found)
|
||||
{
|
||||
String text(STR("abcHello Worldabc"));
|
||||
StringView textview(text);
|
||||
StringView textview(text.data(), text.size());
|
||||
|
||||
StringView::const_iterator itr = etl::find_last_not_of(textview, STR("abcHello World"));
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user