mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-11 08:01:32 +00:00
Merge 8b0e0c24e8
into 770c4b8042
This commit is contained in:
commit
659ef6d536
2 changed files with 51 additions and 0 deletions
|
@ -68,6 +68,7 @@ void AlphabeticIndexTest::runIndexedTest( int32_t index, UBool exec, const char*
|
|||
TESTCASE_AUTO(TestJapaneseKanji);
|
||||
TESTCASE_AUTO(TestChineseUnihan);
|
||||
TESTCASE_AUTO(testHasBuckets);
|
||||
TESTCASE_AUTO(checkMaxLabelCount);
|
||||
TESTCASE_AUTO_END;
|
||||
}
|
||||
|
||||
|
@ -757,4 +758,52 @@ void AlphabeticIndexTest::checkHasBuckets(const Locale &locale, UScriptCode scri
|
|||
uscript_getScript(bucket->getLabel().char32At(0), errorCode));
|
||||
}
|
||||
|
||||
void AlphabeticIndexTest::checkMaxLabelCount() {
|
||||
IcuTestErrorCode errorCode(*this, "checkMaxLabelCount");
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
Locale locale("en");
|
||||
UnicodeString loc = locale.getName();
|
||||
AlphabeticIndex aindex(locale, status);
|
||||
|
||||
int32_t defaultMax = aindex.getMaxLabelCount();
|
||||
assertEquals("Expect max count = 99", 99, defaultMax);
|
||||
|
||||
aindex.setMaxLabelCount(237, status);
|
||||
if (U_FAILURE(errorCode)) {
|
||||
dataerrln("%s %d Error in index setMaxLabelCount", __FILE__, __LINE__);
|
||||
return;
|
||||
}
|
||||
|
||||
// Verify that all bucket are cleared after setting max bucket count.
|
||||
const UnicodeString bucketLabel = aindex.getBucketLabel();
|
||||
assertEquals("Expect empty string", "", bucketLabel);
|
||||
|
||||
int32_t maxChanged = aindex.getMaxLabelCount();
|
||||
assertEquals("Expect max count = 237", 237, maxChanged);
|
||||
|
||||
int32_t bigMax = 100000;
|
||||
aindex.setMaxLabelCount(bigMax, errorCode);
|
||||
if (U_FAILURE(errorCode)) {
|
||||
dataerrln("%s %d Error in index setMaxLabelCount to bigMax",
|
||||
__FILE__, __LINE__);
|
||||
return;
|
||||
}
|
||||
maxChanged = aindex.getMaxLabelCount();
|
||||
assertEquals("Expect max count = 100000", bigMax, maxChanged);
|
||||
|
||||
int32_t numBuckets = aindex.getBucketCount(status);
|
||||
int32_t expectedBuckets = 0x1C;
|
||||
assertEquals("Expect numBuckets = 1", expectedBuckets, numBuckets);
|
||||
|
||||
// This should fail.
|
||||
aindex.setMaxLabelCount(0, status);
|
||||
assertEquals("Expect U_ILLEGAL_ARGUMENT on setMaxLabelCount(0)",
|
||||
U_ILLEGAL_ARGUMENT_ERROR, status);
|
||||
|
||||
// Make sure the number of buckets hasn't changed.
|
||||
status = U_ZERO_ERROR;
|
||||
numBuckets = aindex.getBucketCount(status);
|
||||
assertEquals("Expect numBuckets = 1", expectedBuckets, numBuckets);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -53,6 +53,8 @@ public:
|
|||
|
||||
void testHasBuckets();
|
||||
void checkHasBuckets(const Locale &locale, UScriptCode script);
|
||||
|
||||
void checkMaxLabelCount();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue