ICU-1722 maintain count; udpate test

X-SVN-Rev: 14825
This commit is contained in:
Alan Liu 2004-04-01 04:30:41 +00:00
parent f37140a09a
commit 6c674f57e6
2 changed files with 58 additions and 59 deletions

View File

@ -43,33 +43,29 @@ public class UtilityTest extends TestFmwk {
// cause a newline to be inserted
"testing space , quotations \"",
"testing weird supplementary characters \ud800\udc00",
"testing control characters \u0001 and line breaking \n are we done yet?"
"testing control characters \u0001 and line breaking!! \n are we done yet?"
};
String result[] = {
" \"the quick brown fox jumps over the lazy dog\"",
" \"testing space , quotations \\042\"",
" \"testing weird supplementary characters \\uD800\\uDC00\"",
" \"testing control characters \\001 and line breaking \\012 are we done ye\"+"
" \"testing control characters \\001 and line breaking!! \\n are we done ye\"+"
+ Utility.LINE_SEPARATOR + " \"t?\""
};
String result1[] = {
"\"the quick brown fox jumps over the lazy dog\"",
"\"testing space , quotations \\042\"",
"\"testing weird supplementary characters \\uD800\\uDC00\"",
"\"testing control characters \\001 and line breaking \\012 are we done yet?\""
"\"testing control characters \\001 and line breaking!! \\n are we done yet?\""
};
for (int i = 0; i < data.length; i ++) {
if (!result[i].equals(Utility.formatForSource(data[i]))) {
errln("Fail: Utility.formatForSource(\""
+ Utility.unescape(data[i]) + "expected to be " + result[i]);
}
assertEquals("formatForSource(\"" + data[i] + "\")",
result[i], Utility.formatForSource(data[i]));
}
for (int i = 0; i < data.length; i ++) {
if (!result1[i].equals(Utility.format1ForSource (data[i]))) {
errln("Fail: Utility.formatForSource(\""
+ Utility.unescape(data[i]) + "expected to be " + result1[i]);
}
assertEquals("format1ForSource(\"" + data[i] + "\")",
result1[i], Utility.format1ForSource(data[i]));
}
}

View File

@ -609,38 +609,41 @@ public final class Utility {
buffer.append(" \"");
int count = 11;
while (i<s.length() && count<80) {
char c = s.charAt(i++);
if (c < '\u0020' || c == '"' || c == '\\') {
if (c == '\n') {
buffer.append("\\n");
} else if (c == '\t') {
buffer.append("\\t");
} else if (c == '\r') {
buffer.append("\\r");
} else {
// Represent control characters, backslash and double quote
// using octal notation; otherwise the string we form
// won't compile, since Unicode escape sequences are
// processed before tokenization.
buffer.append('\\');
buffer.append(HEX_DIGIT[(c & 0700) >> 6]); // HEX_DIGIT works for octal
buffer.append(HEX_DIGIT[(c & 0070) >> 3]);
buffer.append(HEX_DIGIT[(c & 0007)]);
count += 4;
}
}
else if (c <= '\u007E') {
buffer.append(c);
count += 1;
}
else {
buffer.append("\\u");
buffer.append(HEX_DIGIT[(c & 0xF000) >> 12]);
buffer.append(HEX_DIGIT[(c & 0x0F00) >> 8]);
buffer.append(HEX_DIGIT[(c & 0x00F0) >> 4]);
buffer.append(HEX_DIGIT[(c & 0x000F)]);
count += 6;
}
char c = s.charAt(i++);
if (c < '\u0020' || c == '"' || c == '\\') {
if (c == '\n') {
buffer.append("\\n");
count += 2;
} else if (c == '\t') {
buffer.append("\\t");
count += 2;
} else if (c == '\r') {
buffer.append("\\r");
count += 2;
} else {
// Represent control characters, backslash and double quote
// using octal notation; otherwise the string we form
// won't compile, since Unicode escape sequences are
// processed before tokenization.
buffer.append('\\');
buffer.append(HEX_DIGIT[(c & 0700) >> 6]); // HEX_DIGIT works for octal
buffer.append(HEX_DIGIT[(c & 0070) >> 3]);
buffer.append(HEX_DIGIT[(c & 0007)]);
count += 4;
}
}
else if (c <= '\u007E') {
buffer.append(c);
count += 1;
}
else {
buffer.append("\\u");
buffer.append(HEX_DIGIT[(c & 0xF000) >> 12]);
buffer.append(HEX_DIGIT[(c & 0x0F00) >> 8]);
buffer.append(HEX_DIGIT[(c & 0x00F0) >> 4]);
buffer.append(HEX_DIGIT[(c & 0x000F)]);
count += 6;
}
}
buffer.append('"');
}
@ -660,22 +663,22 @@ public final class Utility {
for (int i=0; i<s.length();) {
char c = s.charAt(i++);
if (c < '\u0020' || c == '"' || c == '\\') {
if (c == '\n') {
buffer.append("\\n");
} else if (c == '\t') {
buffer.append("\\t");
} else if (c == '\r') {
buffer.append("\\r");
} else {
// Represent control characters, backslash and double quote
// using octal notation; otherwise the string we form
// won't compile, since Unicode escape sequences are
// processed before tokenization.
buffer.append('\\');
buffer.append(HEX_DIGIT[(c & 0700) >> 6]); // HEX_DIGIT works for octal
buffer.append(HEX_DIGIT[(c & 0070) >> 3]);
buffer.append(HEX_DIGIT[(c & 0007)]);
}
if (c == '\n') {
buffer.append("\\n");
} else if (c == '\t') {
buffer.append("\\t");
} else if (c == '\r') {
buffer.append("\\r");
} else {
// Represent control characters, backslash and double quote
// using octal notation; otherwise the string we form
// won't compile, since Unicode escape sequences are
// processed before tokenization.
buffer.append('\\');
buffer.append(HEX_DIGIT[(c & 0700) >> 6]); // HEX_DIGIT works for octal
buffer.append(HEX_DIGIT[(c & 0070) >> 3]);
buffer.append(HEX_DIGIT[(c & 0007)]);
}
}
else if (c <= '\u007E') {
buffer.append(c);