ICU-199 add category tests for new UnicodeSet pattern parser

X-SVN-Rev: 548
This commit is contained in:
Alan Liu 2000-01-12 18:04:21 +00:00
parent 13955b6ce2
commit f84644f895
2 changed files with 53 additions and 1 deletions

View file

@ -27,7 +27,7 @@ UnicodeSetTest::runIndexedTest(int32_t index, bool_t exec,
switch (index) {
CASE(0,TestPatterns)
CASE(1,TestAddRemove)
CASE(2,TestCategories)
default: name = ""; break;
}
}
@ -49,6 +49,18 @@ UnicodeSetTest::TestPatterns(void) {
expectPairs(set, exp);
}
void
UnicodeSetTest::TestCategories(void) {
UErrorCode status = U_ZERO_ERROR;
const char* pat = " [:Lu:] "; // Whitespace ok outside [:..:]
UnicodeSet set(pat, status);
if (U_FAILURE(status)) {
errln((UnicodeString)"Fail: Can't construct set with " + pat);
} else {
expectContainment(set, pat, "ABC", "abc");
}
}
void
UnicodeSetTest::TestAddRemove(void) {
UErrorCode status = U_ZERO_ERROR;
@ -91,6 +103,41 @@ UnicodeSetTest::TestAddRemove(void) {
expectPairs(set, "aacehort");
}
void
UnicodeSetTest::expectContainment(const UnicodeSet& set,
const UnicodeString& setName,
const UnicodeString& charsIn,
const UnicodeString& charsOut) {
UnicodeString bad;
int32_t i;
for (i=0; i<charsIn.length(); ++i) {
UChar c = charsIn.charAt(i);
if (!set.contains(c)) {
bad.append(c);
}
}
if (bad.length() > 0) {
logln((UnicodeString)"Fail: set " + setName + " does not contain " + bad +
", expected containment of " + charsIn);
} else {
logln((UnicodeString)"Ok: set " + setName + " contains " + charsIn);
}
bad.truncate(0);
for (i=0; i<charsOut.length(); ++i) {
UChar c = charsOut.charAt(i);
if (set.contains(c)) {
bad.append(c);
}
}
if (bad.length() > 0) {
logln((UnicodeString)"Fail: set " + setName + " contains " + bad +
", expected non-containment of " + charsOut);
} else {
logln((UnicodeString)"Ok: set " + setName + " does not contain " + charsOut);
}
}
void
UnicodeSetTest::expectPattern(UnicodeSet& set,
const UnicodeString& pattern,

View file

@ -26,8 +26,13 @@ class UnicodeSetTest: public IntlTest {
private:
void TestPatterns(void);
void TestCategories(void);
void TestAddRemove(void);
void expectContainment(const UnicodeSet& set,
const UnicodeString& setName,
const UnicodeString& charsIn,
const UnicodeString& charsOut);
void expectPattern(UnicodeSet& set,
const UnicodeString& pattern,
const UnicodeString& expectedPairs);