### Question:
ReaderCharacterSource implements CharacterSource { public char[] readNumber( ) { try { ensureBuffer(); char [] results = CharScanner.readNumber( readBuf, index, length); index += results.length; if (index >= length && more) { ensureBuffer(); if (length!=0) { char results2[] = readNumber(); return Chr.add(results, results2); } else { return results; } } else { return results; } } catch (Exception ex) { String str = CharScanner.errorDetails ( "readNumber issue", readBuf, index, ch ); return Exceptions.handle ( char[].class, str, ex ); } } 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 readNumberTest() { String testString = "123"; initSourceWithString(testString); char [] numberChars = source.readNumber(); boolean ok = Chr.equals ( "123".toCharArray (), numberChars ) || die( new String(numberChars) ) ; }
@Test public void readNumberTest3() { String testString = "123456789"; initSourceWithString(testString); char [] numberChars = source.readNumber(); boolean ok = Chr.equals ( "123456789".toCharArray (), numberChars ) || die( new String(numberChars) ) ; }