AbstractCharStreamScanner implements CharStreamScanner { @Override public int readDigit() { return readDigit(10); } AbstractCharStreamScanner(); @Override int readDigit(); @Override double readDouble(); @Override float readFloat(); @Override int skipWhile(CharFilter filter); @Override char skipWhileAndPeek(CharFilter filter); @Override char skipWhileAndPeek(CharFilter filter, int max); @Override String readWhile(CharFilter filter); @Override String readUntil(CharFilter filter, boolean acceptEof, String stop); @Override String readUntil(CharFilter filter, boolean acceptEot, String stop, boolean ignoreCase); @Override boolean skipOver(String substring); @Override boolean skipOver(String substring, boolean ignoreCase); @Override String readLine(); @Override boolean expect(String expected); @Override boolean expectStrict(String expected); @Override Character readJavaCharLiteral(); @Override String readJavaStringLiteral();  }
@Test public void testReadDigit() { String string = "01234567890a "; CharStreamScanner scanner = scanner(string); for (int i = 0; i < 10; i++) { assertThat(scanner.readDigit()).isEqualTo(i); } assertThat(scanner.readDigit()).isEqualTo(0); assertThat(scanner.readDigit()).isEqualTo(-1); assertThat(scanner.next()).isEqualTo('a'); assertThat(scanner.readDigit()).isEqualTo(-1); }