### Question:
SplitInputStream { private long skip(int index, long n) throws IOException { long position; if (n <= 0) return(0); m_dataLock.lock(); try { position = m_stream[index].getPosition(); if (position == m_write) { if (!fill(index)) return(0); position = m_stream[index].getPosition(); } n = Math.min(n, m_write - position); m_stream[index].setPosition(position + n); } finally { m_dataLock.unlock(); } return(n); } SplitInputStream(InputStream source, int streamCount);  SplitInputStream(InputStream source, int streamCount, int initialSize); int getStreamCount(); InputStream getStream(int index);  }### Answer:
@Test public void skipZero() throws IOException { assertEquals(0, m_input.skip(0)); }
@Test public void skipNegOne() throws IOException { assertEquals(0, m_input.skip(-1)); }
@Test public void skip() throws IOException { assertEquals(m_expect.length / 2, m_input.skip(m_expect.length / 2)); }
@Test public void skipToEnd() throws IOException { assertEquals(m_expect.length, m_input.skip(m_expect.length)); }
@Test public void skipBeyondEnd() throws IOException { assertEquals(m_expect.length, m_input.skip(m_expect.length + 1)); assertEquals(0, m_input.skip(1)); }