@Override
  public long skip(long n) throws IOException {
    // Sanity checks
    if (n < 0) {
      throw new IllegalArgumentException("negative skip length");
    }
    checkStream();

    // Read 'n' bytes
    int skipped = 0;
    while (skipped < n) {
      int len = Math.min(((int)n - skipped), skipBytes.length);
      len = read(skipBytes, 0, len);
      if (len == -1) {
        eof = true;
        break;
      }
      skipped += len;
    }
    return skipped;
  }
@Test
  public void testSkip() throws IOException {
    assertThat(decompressorStream.skip(12)).isEqualTo(12L);
    assertThat(decompressorStream.read()).isEqualTo(TEST_STRING.charAt(12));
    assertThat(decompressorStream.read()).isEqualTo(TEST_STRING.charAt(13));
    assertThat(decompressorStream.read()).isEqualTo(TEST_STRING.charAt(14));
    assertThat(decompressorStream.skip(10)).isEqualTo(10L);
    assertThat(decompressorStream.read()).isEqualTo(TEST_STRING.charAt(25));
    try {
      long ret = decompressorStream.skip(1000);
      fail("Not reachable but got ret " + ret);
    } catch (EOFException e) {
      // Expect EOF exception
    }
  }