@Override
   public byte[] toBitSet() {
      if (size == 0) {
         return Util.EMPTY_BYTE_ARRAY;
      }
      int offset = (size >>> 3);
      if ((size & 0xf) == 0) {
         byte[] array = new byte[offset];
         Arrays.fill(array, (byte) 0xff);
         return array;
      }
      byte[] array = new byte[offset + 1];
      if (offset > 0) {
         Arrays.fill(array, 0, offset, (byte) 0xff);
      }
      int lastBitOffset = size > 8 ? size % 8 : size;
      array[offset] = (byte) (0xff >> (8 - lastBitOffset));
      return array;
   }
@Test
   public void testToBitSet() {
      testToArray(13);
      testToArray(12);
      testToArray(0);
      testToArray(16);
      testToArray(43);
      testToArray(5);
   }