public FuryBuilder withMetaCompressor(MetaCompressor metaCompressor) {
    this.metaCompressor = MetaCompressor.checkMetaCompressor(metaCompressor);
    return this;
  }
@Test
  public void testWithMetaCompressor() {
    MetaCompressor metaCompressor =
        new FuryBuilder()
            .withMetaCompressor(
                new MetaCompressor() {
                  @Override
                  public byte[] compress(byte[] data, int offset, int size) {
                    return new byte[0];
                  }

                  @Override
                  public byte[] decompress(byte[] compressedData, int offset, int size) {
                    return new byte[0];
                  }
                })
            .metaCompressor;
    Assert.assertEquals(metaCompressor.getClass().getSimpleName(), "TypeEqualMetaCompressor");
    new FuryBuilder()
        .withMetaCompressor(
            new MetaCompressor() {
              @Override
              public byte[] compress(byte[] data, int offset, int size) {
                return new byte[0];
              }

              @Override
              public byte[] decompress(byte[] compressedData, int offset, int size) {
                return new byte[0];
              }

              @Override
              public boolean equals(Object o) {
                if (this == o) {
                  return true;
                }
                return o != null && getClass() == o.getClass();
              }

              @Override
              public int hashCode() {
                return getClass().hashCode();
              }
            });
  }