callgraph/src/test/java/org/netbeans/lib/callgraph/util/SmallStringTest.java
changeset 18374 04a79821e760
parent 18373 3527a32a19f0
child 18400 c87c223efe6a
     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++) {