X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/73c04bcfe1096173b00431f0cdc742894b15eef0..4f1e1a09ce4daed860e35d359ce2fceccb0764e8:/icuSources/test/intltest/citrtest.cpp diff --git a/icuSources/test/intltest/citrtest.cpp b/icuSources/test/intltest/citrtest.cpp index 75bd1e58..84a2b69e 100644 --- a/icuSources/test/intltest/citrtest.cpp +++ b/icuSources/test/intltest/citrtest.cpp @@ -1,6 +1,8 @@ +// © 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /**************************************************************************************** * COPYRIGHT: - * Copyright (c) 1997-2006, International Business Machines Corporation and + * Copyright (c) 1997-2014, International Business Machines Corporation and * others. All Rights Reserved. * Modification History: * @@ -9,6 +11,8 @@ ****************************************************************************************/ #include +#include "utypeinfo.h" // for 'typeid' to work + #include "unicode/chariter.h" #include "unicode/ustring.h" #include "unicode/unistr.h" @@ -16,7 +20,9 @@ #include "unicode/uchriter.h" #include "unicode/uiter.h" #include "unicode/putil.h" +#include "unicode/utf16.h" #include "citrtest.h" +#include "cmemory.h" class SCharacterIterator : public CharacterIterator { @@ -100,20 +106,20 @@ public: case kStart: pos = begin; if(delta > 0) { - UTF_FWD_N(text, pos, end, delta); + U16_FWD_N(text, pos, end, delta); } break; case kCurrent: if(delta > 0) { - UTF_FWD_N(text, pos, end, delta); + U16_FWD_N(text, pos, end, delta); } else { - UTF_BACK_N(text, begin, pos, -delta); + U16_BACK_N(text, begin, pos, -delta); } break; case kEnd: pos = end; if(delta < 0) { - UTF_BACK_N(text, begin, pos, -delta); + U16_BACK_N(text, begin, pos, -delta); } break; default: @@ -136,8 +142,6 @@ private: }; const char SCharacterIterator::fgClassID=0; -#define LENGTHOF(array) ((int32_t)(sizeof(array)/sizeof((array)[0]))) - CharIterTest::CharIterTest() { } @@ -607,7 +611,7 @@ void CharIterTest::TestIterationUChar32() { errln("setIndex32() isn't working right"); if (c != CharacterIterator::DONE) { c = iter.next32(); - i=UTF16_NEED_MULTIPLE_UCHAR(c) ? i+2 : i+1; + i += U16_LENGTH(c); } } while (c != CharacterIterator::DONE); if(iter.hasNext() == TRUE) @@ -646,7 +650,7 @@ void CharIterTest::TestIterationUChar32() { errln("getIndex() isn't working right"); if (c != CharacterIterator::DONE) { c = iter.previous32(); - i=UTF16_NEED_MULTIPLE_UCHAR(c) ? i-2 : i-1; + i -= U16_LENGTH(c); } } while (c != CharacterIterator::DONE); if(iter.hasPrevious() == TRUE) @@ -664,7 +668,7 @@ void CharIterTest::TestIterationUChar32() { c=iter.first32PostInc(); if(c != text.char32At(i)) errln("first32PostInc failed. Expected->%X Got->%X", text.char32At(i), c); - if(iter.getIndex() != UTF16_CHAR_LENGTH(c) + i) + if(iter.getIndex() != U16_LENGTH(c) + i) errln((UnicodeString)"getIndex() after first32PostInc() failed"); iter.setToStart(); @@ -680,7 +684,7 @@ void CharIterTest::TestIterationUChar32() { if(c != text.char32At(i)) errln("Character mismatch at position %d, iterator has %X, string has %X", i, c, text.char32At(i)); - i=UTF16_NEED_MULTIPLE_UCHAR(c) ? i+2 : i+1; + i += U16_LENGTH(c); if(iter.getIndex() != i) errln("getIndex() aftr next32PostInc() isn't working right"); if(iter.current32() != text.char32At(i)) @@ -721,7 +725,7 @@ void CharIterTest::TestIterationUChar32() { if (c != CharacterIterator::DONE) { c = iter.next32(); - i=UTF16_NEED_MULTIPLE_UCHAR(c) ? i+2 : i+1; + i += U16_LENGTH(c); } } while (c != CharacterIterator::DONE); c=iter.next32(); @@ -749,7 +753,7 @@ void CharIterTest::TestIterationUChar32() { if (c != CharacterIterator::DONE) { c = iter.previous32(); - i=UTF16_NEED_MULTIPLE_UCHAR(c) ? i-2 : i-1; + i -= U16_LENGTH(c); } } while (c != CharacterIterator::DONE); @@ -964,7 +968,7 @@ class SubCharIter : public CharacterIterator { public: // public default constructor, to get coverage of CharacterIterator() SubCharIter() : CharacterIterator() { - textLength=end=LENGTHOF(s); + textLength=end=UPRV_LENGTHOF(s); s[0]=0x61; // 'a' s[1]=0xd900; // U+50400 s[2]=0xdd00; @@ -973,7 +977,7 @@ public: // useful stuff, mostly dummy but testing coverage and subclassability virtual UChar nextPostInc() { - if(pos