@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 testLong() throws IOException {
    // test writing and reading shorts.
    writer.writeLong(1);
    writer.writeLong(0xdeadbeefcafebabeL);
    writer.writeLong(0xffffffffffffffffL);
    writer.writeLong(-1234567890123456789L);
    writer.writeLong(0);

    BinaryReader reader = getReader();

    assertEquals(1, reader.expectLong());
    assertEquals(0xdeadbeefcafebabeL, reader.expectLong());
    assertEquals(0xffffffffffffffffL, reader.expectLong());
    assertEquals(-1234567890123456789L, reader.expectLong());
    assertEquals(0, reader.expectLong());
  }