ICU-1007 additional conformance test cases moved from NormalizationTest.txt to intltest/normconf.cpp so that we do not lose them when updating the .txt file from unicode.org
X-SVN-Rev: 6753
This commit is contained in:
parent
7b5cc6bdce
commit
23fa5a9046
@ -31,13 +31,6 @@
|
|||||||
# X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X)
|
# X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X)
|
||||||
#
|
#
|
||||||
@Part0 # Specific cases
|
@Part0 # Specific cases
|
||||||
|
|
||||||
# Markus 2001oct26 - test edge case for iteration: U+0f73.cc==0 but decomposition.lead.cc==129
|
|
||||||
0061 0301 0F73;00E1 0F71 0F72;0061 0F71 0F72 0301;00E1 0F71 0F72;0061 0F71 0F72 0301;
|
|
||||||
|
|
||||||
# Markus 2001aug30
|
|
||||||
0061 0332 0308;00E4 0332;0061 0332 0308;00E4 0332;0061 0332 0308;
|
|
||||||
|
|
||||||
#
|
#
|
||||||
1E0A;1E0A;0044 0307;1E0A;0044 0307;
|
1E0A;1E0A;0044 0307;1E0A;0044 0307;
|
||||||
1E0C;1E0C;0044 0323;1E0C;0044 0323;
|
1E0C;1E0C;0044 0323;1E0C;0044 0323;
|
||||||
|
@ -31,13 +31,6 @@
|
|||||||
# X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X)
|
# X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X)
|
||||||
#
|
#
|
||||||
@Part0 # Specific cases
|
@Part0 # Specific cases
|
||||||
|
|
||||||
# Markus 2001oct26 - test edge case for iteration: U+0f73.cc==0 but decomposition.lead.cc==129
|
|
||||||
0061 0301 0F73;00E1 0F71 0F72;0061 0F71 0F72 0301;00E1 0F71 0F72;0061 0F71 0F72 0301;
|
|
||||||
|
|
||||||
# Markus 2001aug30
|
|
||||||
0061 0332 0308;00E4 0332;0061 0332 0308;00E4 0332;0061 0332 0308;
|
|
||||||
|
|
||||||
#
|
#
|
||||||
1E0A;1E0A;0044 0307;1E0A;0044 0307;
|
1E0A;1E0A;0044 0307;1E0A;0044 0307;
|
||||||
1E0C;1E0C;0044 0323;1E0C;0044 0323;
|
1E0C;1E0C;0044 0323;1E0C;0044 0323;
|
||||||
|
@ -40,6 +40,15 @@ NormalizerConformanceTest::NormalizerConformanceTest() :
|
|||||||
|
|
||||||
NormalizerConformanceTest::~NormalizerConformanceTest() {}
|
NormalizerConformanceTest::~NormalizerConformanceTest() {}
|
||||||
|
|
||||||
|
// more interesting conformance test cases, not in the unicode.org NormalizationTest.txt
|
||||||
|
static const char *moreCases[]={
|
||||||
|
// Markus 2001aug30
|
||||||
|
"0061 0332 0308;00E4 0332;0061 0332 0308;00E4 0332;0061 0332 0308; # Markus 0",
|
||||||
|
|
||||||
|
// Markus 2001oct26 - test edge case for iteration: U+0f73.cc==0 but decomposition.lead.cc==129
|
||||||
|
"0061 0301 0F73;00E1 0F71 0F72;0061 0F71 0F72 0301;00E1 0F71 0F72;0061 0F71 0F72 0301; # Markus 1"
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test the conformance of Normalizer to
|
* Test the conformance of Normalizer to
|
||||||
* http://www.unicode.org/unicode/reports/tr15/conformance/Draft-TestSuite.txt.
|
* http://www.unicode.org/unicode/reports/tr15/conformance/Draft-TestSuite.txt.
|
||||||
@ -84,13 +93,21 @@ void NormalizerConformanceTest::TestConformance(void) {
|
|||||||
// UnicodeSet for all code points that are not mentioned in NormalizationTest.txt
|
// UnicodeSet for all code points that are not mentioned in NormalizationTest.txt
|
||||||
UnicodeSet other(0, 0x10ffff);
|
UnicodeSet other(0, 0x10ffff);
|
||||||
|
|
||||||
int32_t count;
|
int32_t count, countMoreCases = sizeof(moreCases)/sizeof(moreCases[0]);
|
||||||
for (count = 1;;++count) {
|
for (count = 1;;++count) {
|
||||||
if (T_FileStream_eof(input)) {
|
if (!T_FileStream_eof(input)) {
|
||||||
break;
|
T_FileStream_readLine(input, lineBuf, (int32_t)sizeof(lineBuf));
|
||||||
|
} else {
|
||||||
|
// once NormalizationTest.txt is finished, use moreCases[]
|
||||||
|
if(count > countMoreCases) {
|
||||||
|
count = 0;
|
||||||
|
} else if(count == countMoreCases) {
|
||||||
|
// all done
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
uprv_strcpy(lineBuf, moreCases[count]);
|
||||||
}
|
}
|
||||||
T_FileStream_readLine(input, lineBuf, (int32_t)sizeof(lineBuf));
|
if (lineBuf[0] == 0 || lineBuf[0] == '\n' || lineBuf[0] == '\r') continue;
|
||||||
if (lineBuf[0] == 0 || lineBuf[0] == 10 || lineBuf[0] == 13) continue;
|
|
||||||
|
|
||||||
// Expect 5 columns of this format:
|
// Expect 5 columns of this format:
|
||||||
// 1E0C;1E0C;0044 0323;1E0C;0044 0323; # <comments>
|
// 1E0C;1E0C;0044 0323;1E0C;0044 0323; # <comments>
|
||||||
@ -166,10 +183,10 @@ void NormalizerConformanceTest::TestConformance(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (failCount != 0) {
|
if (failCount != 0) {
|
||||||
errln((UnicodeString)"Total: " + failCount + " lines failed, " +
|
errln((UnicodeString)"Total: " + failCount + " lines/code points failed, " +
|
||||||
passCount + " lines passed");
|
passCount + " lines/code points passed");
|
||||||
} else {
|
} else {
|
||||||
logln((UnicodeString)"Total: " + passCount + " lines passed");
|
logln((UnicodeString)"Total: " + passCount + " lines/code points passed");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user