### Question:
AppendableCharSequence implements CharSequence, Appendable { @Override public AppendableCharSequence subSequence(int start, int end) { if (start == end) { return new AppendableCharSequence(Math.min(16, chars.length)); } return new AppendableCharSequence(Arrays.copyOfRange(chars, start, end)); } AppendableCharSequence(int length); private  AppendableCharSequence(char[] chars); @Override int length(); @Override char charAt(int index); char charAtUnsafe(int index); @Override AppendableCharSequence subSequence(int start, int end); @Override AppendableCharSequence append(char c); @Override AppendableCharSequence append(CharSequence csq); @Override AppendableCharSequence append(CharSequence csq, int start, int end); void reset(); @Override String toString(); String substring(int start, int end); String subStringUnsafe(int start, int end);  }### Answer:
@Test public void testSubSequence() { AppendableCharSequence master = new AppendableCharSequence(26); master.append("abcdefghijlkmonpqrstuvwxyz"); assertEquals("abcdefghij", master.subSequence(0, 10).toString()); }