@Test
public void testSetBit() {

  // Set a true bit to false
  byte[] byteArray = new byte[] { (byte) 0x54, (byte) 0x04 };
  ByteArrayHelper.setBit(byteArray, 13, false);
  byte[] expected = new byte[] { (byte) 0x54, (byte) 0x00 };
  for (int i = 0; i < byteArray.length; i++) {
    assertEquals(expected[i], byteArray[i]);
  }
  // Set a false bit to true
  byteArray = new byte[] { (byte) 0x54, (byte) 0x04 };
  ByteArrayHelper.setBit(byteArray, 15, true);
  expected = new byte[] { (byte) 0x54, (byte) 0x05 };
  for (int i = 0; i < byteArray.length; i++) {
    assertEquals(expected[i], byteArray[i]);
  }
  // Set a false bit to false
  byteArray = new byte[] { (byte) 0x54, (byte) 0x04 };
  ByteArrayHelper.setBit(byteArray, 2, false);
  expected = new byte[] { (byte) 0x54, (byte) 0x04 };
  for (int i = 0; i < byteArray.length; i++) {
    assertEquals(expected[i], byteArray[i]);
  }
  // Set a true bit to true
  byteArray = new byte[] { (byte) 0x54, (byte) 0x04 };
  ByteArrayHelper.setBit(byteArray, 3, true);
  expected = new byte[] { (byte) 0x54, (byte) 0x04 };
  for (int i = 0; i < byteArray.length; i++) {
    assertEquals(expected[i], byteArray[i]);
  }
}