package edu.berkeley.cs.succinct.util.stream;
import junit.framework.TestCase;
import org.apache.hadoop.fs.FSDataInputStream;
import java.nio.LongBuffer;
public class RandomAccessLongStreamTest extends TestCase {
public void testGet() throws Exception {
LongBuffer buf = LongBuffer.allocate(10);
for (int i = 0; i < 10; i++) {
buf.put(i);
}
FSDataInputStream is = TestUtils.getStream(buf);
RandomAccessLongStream bs = new RandomAccessLongStream(is, 0, 80);
for (int i = 0; i < 10; i++) {
assertEquals(i, bs.get());
}
}
public void testGet1() throws Exception {
LongBuffer buf = LongBuffer.allocate(10);
for (int i = 0; i < 10; i++) {
buf.put(i);
}
FSDataInputStream is = TestUtils.getStream(buf);
RandomAccessLongStream bs = new RandomAccessLongStream(is, 0, 80);
for (int i = 0; i < 10; i++) {
assertEquals(i, bs.get(i));
}
}
public void testPosition() throws Exception {
LongBuffer buf = LongBuffer.allocate(10);
for (int i = 0; i < 10; i++) {
buf.put(i);
}
FSDataInputStream is = TestUtils.getStream(buf);
RandomAccessLongStream bs = new RandomAccessLongStream(is, 0, 80);
bs.position(3);
assertEquals(bs.position(), 3);
}
public void testOffsetBeginning() throws Exception {
LongBuffer buf = LongBuffer.allocate(20);
for (int i = 0; i < 20; i++) {
buf.put(i);
}
FSDataInputStream is = TestUtils.getStream(buf);
RandomAccessLongStream bs = new RandomAccessLongStream(is, 80, 10);
for (int i = 10; i < 20; i++) {
assertEquals(i, bs.get());
}
bs.rewind();
assertEquals(0, bs.position());
for (int i = 0; i < 10; i++) {
assertEquals((i + 10), bs.get(i));
}
}
}