utf8rewind  1.3.0
System library for processing UTF-8 encoded text
helpers-strings.hpp
Go to the documentation of this file.
1 #pragma once
2 
10 #include "helpers-base.hpp"
11 
12 #define EXPECT_UTF8EQ(_expected, _actual) EXPECT_PRED_FORMAT2(::helpers::CompareUtf8Strings, _expected, _actual)
13 #define EXPECT_UTF8LENGTHEQ(_expected, _actual, _length) EXPECT_PRED_FORMAT3(::helpers::CompareUtf8LengthStrings, _expected, _actual, _length)
14 #define EXPECT_OFFSETEQ(_expected, _actual, _start) EXPECT_PRED_FORMAT3(::helpers::CompareOffsets, _expected, _actual, _start)
15 #define EXPECT_MEMEQ(_expected, _actual, _size) EXPECT_PRED_FORMAT3(::helpers::CompareMemory, _expected, _actual, _size)
16 #define EXPECT_CPEQ(_expected, _actual) EXPECT_PRED_FORMAT2(::helpers::CompareCodepoints, _expected, _actual)
17 
18 namespace helpers {
19 
20  std::string identifiable(unicode_t codepoint);
21  std::string identifiable(unicode_t* codepoint, size_t codepointsSize);
22  std::string identifiable(const std::string& text);
23 
24  std::string utf8(unicode_t codepoint);
25  std::string utf8(unicode_t* codepoints, size_t codepointsSize);
26  std::string utf8(const std::vector<unicode_t>& codepoints);
27  std::string utf8(const std::wstring& text);
28 
29  std::vector<utf16_t> utf16(const std::string& text);
30 
31  std::vector<unicode_t> utf32(const std::string& text);
32 
33  std::wstring wide(const std::string& text);
34 
35  std::string hex(unicode_t codepoint);
36  std::string hex(unicode_t* codepoints, size_t codepointsSize);
37  std::string hex(const std::string& text);
38 
39  std::string printable(unicode_t codepoint);
40  std::string printable(unicode_t* codepoints, size_t codepointsSize);
41  std::string printable(const std::string& text);
42 
43  std::string canonicalCombiningClass(unicode_t codepoint);
44  std::string canonicalCombiningClass(unicode_t* codepoint, size_t codepointsSize);
45  std::string canonicalCombiningClass(const std::string& text);
46 
47  enum class QuickCheck
48  {
49  NFC,
50  NFD,
51  NFKC,
52  NFKD,
53  Any
54  };
55 
56  std::string quickCheck(unicode_t codepoint, QuickCheck type);
57  std::string quickCheck(unicode_t* codepoint, size_t codepointsSize, QuickCheck type);
58  std::string quickCheck(const std::string& text, QuickCheck type);
59 
60  ::testing::AssertionResult CompareUtf8Strings(
61  const char* expressionExpected, const char* expressionActual,
62  const char* textExpected, const char* textActual);
63 
64  ::testing::AssertionResult CompareUtf8LengthStrings(
65  const char* expressionExpected, const char* expressionActual, const char* expressionLength,
66  const char* textExpected, const char* textActual, size_t length);
67 
68  ::testing::AssertionResult CompareOffsets(
69  const char* expressionExpected, const char* expressionActual, const char* expressionCount,
70  const char* offsetExpected, const char* offsetActual, const char* offsetStart);
71 
72  ::testing::AssertionResult CompareMemory(
73  const char* expressionExpected, const char* expressionActual, const char* expressionCount,
74  const char* memoryExpected, const char* memoryActual, size_t memorySize);
75 
76  ::testing::AssertionResult CompareCodepoints(
77  const char* expressionExpected, const char* expressionActual,
78  unicode_t codepointExpected, unicode_t codepointActual);
79 
80 };
81 
uint32_t unicode_t
UTF-32 encoded code point.
Definition: utf8rewind.h:235
Base includes for helper methods.