1 // 2016 and later: Unicode, Inc. and others. 2 // License & terms of use: http://www.unicode.org/copyright.html 3 /* 4 ********************************************************************** 5 * Copyright (C) 2001-2009, International Business Machines 6 * Corporation and others. All Rights Reserved. 7 ********************************************************************** 8 * Date Name Description 9 * 05/23/00 aliu Creation. 10 ********************************************************************** 11 */ 12 #ifndef TESTUTIL_H 13 #define TESTUTIL_H 14 15 #include "unicode/utypes.h" 16 #include "unicode/edits.h" 17 #include "unicode/unistr.h" 18 #include "intltest.h" 19 20 struct EditChange { 21 UBool change; 22 int32_t oldLength, newLength; 23 }; 24 25 /** 26 * Utility methods. Everything in this class is static. 27 */ 28 class TestUtility { 29 public: 30 static UnicodeString &appendHex(UnicodeString &buf, UChar32 ch); 31 32 static UnicodeString hex(UChar32 ch); 33 34 static UnicodeString hex(const UnicodeString& s); 35 36 static UnicodeString hex(const UnicodeString& s, UChar sep); 37 38 static UnicodeString hex(const uint8_t* bytes, int32_t len); 39 40 static UBool checkEqualEdits(IntlTest &test, const UnicodeString &name, 41 const Edits &e1, const Edits &e2, UErrorCode &errorCode); 42 43 static void checkEditsIter( 44 IntlTest &test, const UnicodeString &name, 45 Edits::Iterator ei1, Edits::Iterator ei2, // two equal iterators 46 const EditChange expected[], int32_t expLength, UBool withUnchanged, 47 UErrorCode &errorCode); 48 49 private: 50 TestUtility() = delete; // Prevent instantiation 51 }; 52 53 #endif 54