### Question:
ReaderCharacterSource implements CharacterSource { @Override public final char[] findNextChar( int match, int esc ) { return findNextChar(false, false, match, esc); } ReaderCharacterSource( final Reader reader, final int readAheadSize);  ReaderCharacterSource( final Reader reader );  ReaderCharacterSource( final String string ); @Override final int nextChar(); @Override final int currentChar(); @Override final boolean hasChar(); @Override final boolean consumeIfMatch( char[] match ); @Override final int location(); final int safeNextChar(); @Override final char[] findNextChar( int match, int esc ); final char[] findNextChar( boolean inMiddleOfString, boolean wasEscapeChar, int match, int esc ); @Override boolean hadEscape(); @Override void skipWhiteSpace(); char[] readNumber(  ); @Override String errorDetails( String message );  }### Answer:
@Test public void testEscapeOnBorder() { String hellString = "'1\\'a\\'b\\'c\\'\\'' '123' ".replace('\'', '\"'); initSourceWithString(hellString, 10); puts(hellString); String output; output = new String(source.findNextChar('\"', '\\')); puts("output", '\n', output, '\n', "1\\\"a\\\"b\\\"c\\\"\\\""); Str.equalsOrDie(output, "1\\\"a\\\"b\\\"c\\\"\\\""); initSourceWithString(hellString, 3); output = new String(source.findNextChar('\"', '\\')); puts("output", '\n', output, '\n', "1\\\"a\\\"b\\\"c\\\"\\\""); Str.equalsOrDie(output, "1\\\"a\\\"b\\\"c\\\"\\\""); }