### Question:
LowerCaseCharSequence implements ComparableCharSequence { @Override public int compareTo(final CharSequence other) { return CharSequenceUtil.compare(this, other); } LowerCaseCharSequence(final CharSequence delegate); @Override char charAt(final int index); @Override ComparableCharSequence subSequence(final int start, final int end); @Override String toString(); @Override int length(); @Override int compareTo(final CharSequence other); @Override boolean equals(final Object obj); @Override int hashCode();  }### Answer:
@Test public void testThatCompareToIsCaseInsensitive() throws Exception { assertEquals(0, new LowerCaseCharSequence("Hello WORLD!").compareTo("hello world!")); LowerCaseCharSequence upperA = new LowerCaseCharSequence("ABC"); LowerCaseCharSequence lowerA = new LowerCaseCharSequence("abc"); LowerCaseCharSequence upperB = new LowerCaseCharSequence("BCD"); LowerCaseCharSequence lowerB = new LowerCaseCharSequence("bcd"); assertEquals(upperA.compareTo(upperB), lowerA.compareTo(lowerB)); assertEquals(upperB.compareTo(upperA), lowerB.compareTo(lowerA)); }