private void verifyCrafting(BlobId input, BlobId crafted) throws IOException {
    assertEquals("Datacenter id of input id should match that of the crafted id", input.getDatacenterId(),
        crafted.getDatacenterId());
    assertEquals("Partition of input id should match that of the crafted id", input.getPartition(),
        crafted.getPartition());
    assertEquals("UUID of input id should match that of the crafted id", input.getUuid(), crafted.getUuid());
    assertTrue("Crafted id should have at least version 3", crafted.getVersion() >= BLOB_ID_V3);
    assertEquals("Crafted id should have the Crafted type", BlobIdType.CRAFTED, crafted.getType());
    assertTrue("isCrafted() should be true for crafted ids", BlobId.isCrafted(crafted.getID()));
  }
Assert that the given crafted ids constituent fields except for version, type, account, container, match those of
the given input id.
Also assert the version and type of the crafted id.
@param input the input BlobId with the expected fields for comparison.
@param crafted the crafted BlobId whose fields must match the arguments of the other BlobId.
ambry-commons/src/test/java/com/github/ambry/commons/BlobIdTest.java