package edu.berkeley.cs.succinct.streams;
import edu.berkeley.cs.succinct.buffers.SuccinctFileBuffer;
import edu.berkeley.cs.succinct.util.SuccinctConstants;
import junit.framework.TestCase;
import org.apache.hadoop.fs.Path;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
public class SuccinctFileStream3Test extends TestCase {
SuccinctFileStream stream;
private String tmpFile = this.getClass().getResource("/").getFile() + "ints.succinct";
/**
* Set up test.
*
* @throws Exception
*/
public void setUp() throws Exception {
super.setUp();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
for (int i = 0; i < 10; i++) {
dos.writeShort(i);
}
for (int i = 0; i < 10; i++) {
dos.writeInt(i);
}
for (int i = 0; i < 10; i++) {
dos.writeLong(i);
}
SuccinctFileBuffer buffer = new SuccinctFileBuffer(baos.toByteArray());
buffer.writeToFile(tmpFile);
stream = new SuccinctFileStream(new Path(tmpFile));
}
public void testExtracts() throws Exception {
for (int i = 0; i < 10; i++) {
short shortVal = stream.extractShort(i * SuccinctConstants.SHORT_SIZE_BYTES);
assertEquals(shortVal, i);
int intVal = stream
.extractInt(10 * SuccinctConstants.SHORT_SIZE_BYTES + i * SuccinctConstants.INT_SIZE_BYTES);
assertEquals(intVal, i);
long longVal = stream.extractLong(
10 * (SuccinctConstants.SHORT_SIZE_BYTES + SuccinctConstants.INT_SIZE_BYTES)
+ i * SuccinctConstants.LONG_SIZE_BYTES);
assertEquals(longVal, i);
}
}
}