@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 testExpectUnsigned() throws IOException {
    writer.writeUInt8(1);
    writer.writeUInt16(2);
    writer.writeUInt24(3);
    writer.writeUInt32(4);

    BinaryReader reader = getReader();

    assertEquals(1, reader.expectUInt8());
    assertEquals(2, reader.expectUInt16());
    assertEquals(3, reader.expectUInt24());
    assertEquals(4, reader.expectUInt32());
  }