1.1 --- a/callgraph/src/test/java/org/netbeans/lib/callgraph/util/SmallStringTest.java Mon Aug 29 13:00:53 2016 -0400
1.2 +++ b/callgraph/src/test/java/org/netbeans/lib/callgraph/util/SmallStringTest.java Sat Sep 03 02:41:36 2016 -0400
1.3 @@ -9,6 +9,7 @@
1.4 import java.util.Set;
1.5 import org.junit.Test;
1.6 import static org.junit.Assert.*;
1.7 +import org.netbeans.lib.callgraph.util.EightBitStrings.Concatenation;
1.8
1.9 /**
1.10 *
1.11 @@ -120,7 +121,51 @@
1.12 Collections.sort(l);
1.13 assertEquals(l, Arrays.asList(a, b, c, d, e));
1.14 }
1.15 +
1.16 + List<String> stringsOf(List<CharSequence> cs) {
1.17 + List<String> result = new ArrayList<>();
1.18 + for (CharSequence c : cs) {
1.19 + if (c == null) {
1.20 + break;
1.21 + }
1.22 + result.add(c.toString());
1.23 + }
1.24 + return result;
1.25 + }
1.26 +
1.27 + @Test
1.28 + public void testAggressive() {
1.29 + EightBitStrings strings = new EightBitStrings(false, true);
1.30 + ComparableCharSequence c = strings.concat("com.foo.", "bar.baz.", "Hey$You");
1.31 + assertEquals("com.foo.bar.baz.Hey$You", c.toString());
1.32 + ComparableCharSequence c2 = strings.concat("com.foo.", "bar.whoodle.", "Hey$You");
1.33 + List<String> interned = stringsOf(strings.dumpInternTable());
1.34 + for (String cs : interned) {
1.35 + if (cs == null) {
1.36 + break;
1.37 + }
1.38 + System.out.println(" " + cs);
1.39 + }
1.40 + assertTrue(interned.contains("com"));
1.41 + assertTrue(interned.contains("foo"));
1.42 + assertTrue(interned.contains("bar"));
1.43 + assertTrue(interned.contains("baz"));
1.44 + assertTrue(interned.contains("Hey"));
1.45 + assertTrue(interned.contains("You"));
1.46 + assertTrue(interned.contains("whoodle"));
1.47 + assertTrue(interned.contains("."));
1.48 + assertTrue(interned.contains("$"));
1.49 + assertTrue(interned.contains("\""));
1.50 + }
1.51
1.52 + @Test
1.53 + public void testConcatQuoted() {
1.54 + EightBitStrings strings = new EightBitStrings(false);
1.55 + List<Object> l = Arrays.asList(strings.create("hey"), false, 23, strings.create("bar"), "baz");
1.56 + CharSequence cc = strings.concatQuoted(l);
1.57 + assertEquals("\"hey\" false 23 \"bar\" \"baz\"", cc.toString());
1.58 + }
1.59 +
1.60 private static String randomString(int len) {
1.61 char[] c = new char[len];
1.62 for (int i = 0; i < c.length; i++) {