public void testReadSwappedUnsignedInteger() throws IOException {
    byte[] bytes = new byte[] {0x04, 0x03, 0x02, 0x01};
    assertEquals(0x0000000001020304L, EndianUtils.readSwappedUnsignedInteger(bytes, 0));

    ByteArrayInputStream input = new ByteArrayInputStream(bytes);
    assertEquals(0x0000000001020304L, EndianUtils.readSwappedUnsignedInteger(input));
  }
  // tests #IO-117
  public void testUnsignedOverrun() throws Exception {
    byte[] target = new byte[] {0, 0, 0, (byte) 0x80};
    long expected = 0x80000000L;

    long actual = EndianUtils.readSwappedUnsignedInteger(target, 0);
    assertEquals("readSwappedUnsignedInteger(byte[], int) was incorrect", expected, actual);

    ByteArrayInputStream in = new ByteArrayInputStream(target);
    actual = EndianUtils.readSwappedUnsignedInteger(in);
    assertEquals("readSwappedUnsignedInteger(InputStream) was incorrect", expected, actual);
  }