@Test(
      dataProviderClass = DataProviders.class,
      dataProvider = "initialDataAndPositionToGetWithExpectedOfGetUnsignedBitUnitValueAsInt")
  public void getUnsignedBitUnitValueAsInt_GetsTheValueFromSpecifiedPosition(
      String initial, int offset, int length, int expected) {

    ByteArrayAdapter tested = new ByteArrayAdapter(parse(initial));

    assertEquals(tested.getUnsignedBitUnitValueAsInt(offset, length), expected);
  }
  @Test(
      dataProviderClass = DataProviders.class,
      dataProvider = "dataSizeAndOutOfRangePosition",
      expectedExceptions = IllegalArgumentException.class)
  public void setLittleEndianValue_OffsetOrLengthIsOutOfRange_ThrownException(
      int dataSize, int offset, int length) {

    ByteArrayAdapter tested = new ByteArrayAdapter(new byte[dataSize]);

    tested.setLittleEndianValue(0xFF, offset, length);
  }
  @Test(
      dataProviderClass = DataProviders.class,
      dataProvider = "initialDataAndValueToBeSetWithExpectedOfSetByteUnitValueTakingByteArrayValue")
  public void setByteUnitValueTakingByteArrayValue_SetsTheValueToSpecifiedPosition(
      String initial, String value, int offset, String expected) {

    ByteArrayAdapter tested = new ByteArrayAdapter(parse(initial));

    tested.setByteUnitValue(parse(value), offset);

    assertEquals(print(tested.getData()), expected);
  }
  @Test(
      dataProviderClass = DataProviders.class,
      dataProvider = "initialDataAndValueToBeSetWithExpectedOfSetBitUnitValue")
  public void setBitUnitValue_SetsTheValueAsLittleEndianToSpecifiedPosition(
      String initial, int value, int offset, int length, String expected) {

    ByteArrayAdapter tested = new ByteArrayAdapter(parse(initial));

    tested.setBitUnitValue(value, offset, length);

    assertEquals(print(tested.getData()), expected);
  }