aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/unit/testCharClassify.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/testCharClassify.cxx')
-rw-r--r--test/unit/testCharClassify.cxx33
1 files changed, 20 insertions, 13 deletions
diff --git a/test/unit/testCharClassify.cxx b/test/unit/testCharClassify.cxx
index 20c3482f6..b783fb910 100644
--- a/test/unit/testCharClassify.cxx
+++ b/test/unit/testCharClassify.cxx
@@ -21,11 +21,16 @@ using namespace Scintilla::Internal;
// Test CharClassify.
+constexpr int byteValues = 256;
+
class CharClassifyTest {
+public:
+ // Avoid warnings, deleted so never called.
+ CharClassifyTest(const CharClassifyTest &) = delete;
protected:
CharClassifyTest() {
pcc = std::make_unique<CharClassify>();
- for (int ch = 0; ch < 256; ch++) {
+ for (int ch = 0; ch < byteValues; ch++) {
if (ch == '\r' || ch == '\n')
charClass[ch] = CharacterClass::newLine;
else if (ch < 0x20 || ch == ' ' || ch == '\x7f')
@@ -36,11 +41,9 @@ protected:
charClass[ch] = CharacterClass::punctuation;
}
}
- // Avoid warnings, deleted so never called.
- CharClassifyTest(const CharClassifyTest &) = delete;
std::unique_ptr<CharClassify> pcc;
- CharacterClass charClass[256] {};
+ CharacterClass charClass[byteValues] {};
static const char* GetClassName(CharacterClass charClass) noexcept {
switch(charClass) {
@@ -57,37 +60,39 @@ protected:
};
TEST_CASE_METHOD(CharClassifyTest, "Defaults") {
- for (int i = 0; i < 256; i++) {
- if (charClass[i] != pcc->GetClass(i))
+ for (int i = 0; i < byteValues; i++) {
+ if (charClass[i] != pcc->GetClass(i)) {
std::cerr
<< "Character " << i
<< " should be class " << GetClassName(charClass[i])
<< ", but got " << GetClassName(pcc->GetClass(i)) << std::endl;
+ }
REQUIRE(charClass[i] == pcc->GetClass(i));
}
}
TEST_CASE_METHOD(CharClassifyTest, "Custom") {
unsigned char buf[2] = {0, 0};
- for (int i = 0; i < 256; i++) {
+ for (int i = 0; i < byteValues; i++) {
const CharacterClass thisClass = static_cast<CharacterClass>(i % 4);
buf[0] = i;
pcc->SetCharClasses(buf, thisClass);
charClass[i] = thisClass;
}
- for (int i = 0; i < 256; i++) {
- if (charClass[i] != pcc->GetClass(i))
+ for (int i = 0; i < byteValues; i++) {
+ if (charClass[i] != pcc->GetClass(i)) {
std::cerr
<< "Character " << i
<< " should be class " << GetClassName(charClass[i])
<< ", but got " << GetClassName(pcc->GetClass(i)) << std::endl;
+ }
REQUIRE(charClass[i] == pcc->GetClass(i));
}
}
TEST_CASE_METHOD(CharClassifyTest, "CharsOfClass") {
unsigned char buf[2] = {0, 0};
- for (int i = 1; i < 256; i++) {
+ for (int i = 1; i < byteValues; i++) {
const CharacterClass thisClass = static_cast<CharacterClass>(i % 4);
buf[0] = i;
pcc->SetCharClasses(buf, thisClass);
@@ -99,24 +104,26 @@ TEST_CASE_METHOD(CharClassifyTest, "CharsOfClass") {
std::vector<unsigned char> buffer(size+1);
const unsigned char *pBuffer = buffer.data();
pcc->GetCharsOfClass(thisClass, buffer.data());
- for (int i = 1; i < 256; i++) {
+ for (int i = 1; i < byteValues; i++) {
if (charClass[i] == thisClass) {
- if (!memchr(pBuffer, i, size))
+ if (!memchr(pBuffer, i, size)) {
std::cerr
<< "Character " << i
<< " should be class " << GetClassName(thisClass)
<< ", but was not in GetCharsOfClass;"
<< " it is reported to be "
<< GetClassName(pcc->GetClass(i)) << std::endl;
+ }
REQUIRE(memchr(pBuffer, i, size));
} else {
- if (memchr(pBuffer, i, size))
+ if (memchr(pBuffer, i, size)) {
std::cerr
<< "Character " << i
<< " should not be class " << GetClassName(thisClass)
<< ", but was in GetCharsOfClass"
<< " it is reported to be "
<< GetClassName(pcc->GetClass(i)) << std::endl;
+ }
REQUIRE_FALSE(memchr(pBuffer, i, size));
}
}