@Test
  public void testWriteEndianNess() throws IOException {
    writer.writeShort((short) 4);
    assertArrayEquals(new byte[] {0, 4}, out.toByteArray());
    out.reset();

    writer.writeInt(4);
    assertArrayEquals(new byte[] {0, 0, 0, 4}, out.toByteArray());
    out.reset();

    writer.writeLong(4L);
    assertArrayEquals(new byte[] {0, 0, 0, 0, 0, 0, 0, 4}, out.toByteArray());
    out.reset();

    writer.writeUInt16(4);
    assertArrayEquals(new byte[] {0, 4}, out.toByteArray());
    out.reset();

    writer.writeUInt24(4);
    assertArrayEquals(new byte[] {0, 0, 4}, out.toByteArray());
    out.reset();

    writer.writeUInt32(4);
    assertArrayEquals(new byte[] {0, 0, 0, 4}, out.toByteArray());
    out.reset();
  }
  @Test
  public void testInt() throws IOException {
    // test writing and reading shorts.
    writer.writeInt(1);
    writer.writeInt(0xdeadbeef);
    writer.writeInt(0xffffffff);
    writer.writeInt(-1234567890);
    writer.writeInt(0);

    BinaryReader reader = getReader();

    assertEquals(1, reader.expectInt());
    assertEquals(0xdeadbeef, reader.expectInt());
    assertEquals(0xffffffff, reader.expectInt());
    assertEquals(-1234567890, reader.expectInt());
    assertEquals(0, reader.expectInt());
  }