try {
byte[] buffer = new byte[] {
Integer.valueOf("01010101", 2).byteValue(),
Integer.valueOf("10101010", 2).byteValue()
};
Data data = new Data(buffer);
assertEquals(16, data.written());
assertEquals(16, data.readable());
assertEquals(2, data.debug_GetBuffer().length);
assertEquals(0, data.debug_GetRead());
assertEquals(16, data.debug_GetWrite());
data.skip(4);
long[] length = new long[1];
byte[] test = data.export(null, true);
assertEquals(Integer.valueOf("10100101", 2).byteValue(), test[0]);
assertEquals(Integer.valueOf("00001010", 2).byteValue(), test[1]);
length[0] = -1;
test = data.export(length, true);
assertEquals(12, length[0]);
assertEquals(Integer.valueOf("10100101", 2).byteValue(), test[0]);
assertEquals(Integer.valueOf("00001010", 2).byteValue(), test[1]);
length[0] = 4;
test = data.export(length, true);
assertEquals(4, length[0]);
assertEquals(Integer.valueOf("00000101", 2).byteValue(), test[0]);
length[0] = 10000;
test = data.export(length, true);
assertEquals(12, length[0]);
assertEquals(Integer.valueOf("10100101", 2).byteValue(), test[0]);
assertEquals(Integer.valueOf("00001010", 2).byteValue(), test[1]);
length[0] = 9;
test = data.export(length, true);
assertEquals(9, length[0]);
test = data.export(null, false);
assertEquals(Integer.valueOf("01010000", 2).byteValue(), test[0]);
assertEquals(Integer.valueOf("10101010", 2).byteValue(), test[1]);
length[0] = -1;
test = data.export(length, false);
assertEquals(16, length[0]);
assertEquals(Integer.valueOf("01010000", 2).byteValue(), test[0]);
assertEquals(Integer.valueOf("10101010", 2).byteValue(), test[1]);
length[0] = 4;
test = data.export(length, false);
assertEquals(8, length[0]);
assertEquals(Integer.valueOf("01010000", 2).byteValue(), test[0]);
length[0] = 10000;
test = data.export(length, false);
assertEquals(16, length[0]);
assertEquals(Integer.valueOf("01010000", 2).byteValue(), test[0]);
assertEquals(Integer.valueOf("10101010", 2).byteValue(), test[1]);
length[0] = 9;
test = data.export(length, false);
assertEquals(13, length[0]);
data.skip(5);
data.pull();
test = data.export(null, true);
assertEquals(0, test.length);
length[0] = 0;
test = data.export(length, true);
assertEquals(0, test.length);
length[0] = -1;
test = data.export(length, true);
assertEquals(0, test.length);
length[0] = 10000;
test = data.export(length, true);
assertEquals(0, test.length);
test = data.export(null, false);
assertEquals(0, test.length);
length[0] = 0;
test = data.export(length, false);
assertEquals(0, test.length);
length[0] = -1;
test = data.export(length, false);
assertEquals(0, test.length);
length[0] = 10000;
test = data.export(length, false);
assertEquals(0, test.length);
} finally {
}
}