]> git.saurik.com Git - apple/icu.git/blame - icuSources/test/intltest/testutil.cpp
ICU-59117.0.1.tar.gz
[apple/icu.git] / icuSources / test / intltest / testutil.cpp
CommitLineData
f3c0d7a5
A
1// © 2016 and later: Unicode, Inc. and others.
2// License & terms of use: http://www.unicode.org/copyright.html
b75a7d8f
A
3/*
4**********************************************************************
729e4ab9 5* Copyright (C) 2001-2009, International Business Machines
b75a7d8f
A
6* Corporation and others. All Rights Reserved.
7**********************************************************************
8* Date Name Description
9* 05/23/00 aliu Creation.
10**********************************************************************
11*/
12
13#include "unicode/unistr.h"
14#include "testutil.h"
15
16static const UChar HEX[16]={48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70};
17
729e4ab9
A
18UnicodeString &TestUtility::appendHex(UnicodeString &buf, UChar32 ch) {
19 if (ch >= 0x10000) {
20 if (ch >= 0x100000) {
21 buf.append(HEX[0xF&(ch>>20)]);
22 }
23 buf.append(HEX[0xF&(ch>>16)]);
24 }
b75a7d8f
A
25 buf.append(HEX[0xF&(ch>>12)]);
26 buf.append(HEX[0xF&(ch>>8)]);
27 buf.append(HEX[0xF&(ch>>4)]);
28 buf.append(HEX[0xF&ch]);
29 return buf;
30}
31
729e4ab9
A
32UnicodeString TestUtility::hex(UChar32 ch) {
33 UnicodeString buf;
34 appendHex(buf, ch);
35 return buf;
36}
37
b75a7d8f
A
38UnicodeString TestUtility::hex(const UnicodeString& s) {
39 return hex(s, 44 /*,*/);
40}
41
42UnicodeString TestUtility::hex(const UnicodeString& s, UChar sep) {
729e4ab9
A
43 UnicodeString result;
44 if (s.isEmpty()) return result;
45 UChar32 c;
46 for (int32_t i = 0; i < s.length(); i += U16_LENGTH(c)) {
47 c = s.char32At(i);
48 if (i > 0) {
49 result.append(sep);
50 }
51 appendHex(result, c);
b75a7d8f
A
52 }
53 return result;
54}
729e4ab9
A
55
56UnicodeString TestUtility::hex(const uint8_t* bytes, int32_t len) {
57 UnicodeString buf;
58 for (int32_t i = 0; i < len; ++i) {
59 buf.append(HEX[0x0F & (bytes[i] >> 4)]);
60 buf.append(HEX[0x0F & bytes[i]]);
61 }
62 return buf;
63}