### Question:
PbftMessageSet implements ConsensusMessageSet<PbftMessage> { @Override public PbftMessageSet clone() { return new PbftMessageSet(this.toJsonObject()); } PbftMessageSet(PbftMessage prePrepare, Map<String, PbftMessage> prepareMap,
                          Map<String, PbftMessage> commitMap, Map<String, PbftMessage> viewChangeMap);  PbftMessageSet(JsonObject jsonObject);  PbftMessageSet(byte[] bytes);  PbftMessageSet(PbftProto.PbftMessageSet protoPbftMessageSet); @Override PbftMessage getPrePrepare(); @Override Map<String, PbftMessage> getPrepareMap(); @Override Map<String, PbftMessage> getCommitMap(); @Override Map<String, PbftMessage> getViewChangeMap(); @Override byte[] toBinary(); @Override JsonObject toJsonObject(); static PbftProto.PbftMessageSet toProto(PbftMessageSet pbftMessageSet); static PbftMessageSet forGenesis(); @Override void clear(); @Override PbftMessageSet clone(); boolean equals(PbftMessageSet newPbftMessageSet);  }### Answer:
@Test public void cloneTest() { PbftMessageSet newPbftMessageSet = this.pbftMessageSet.clone(); assertTrue(newPbftMessageSet.equals(this.pbftMessageSet)); newPbftMessageSet.clear(); assertTrue(PbftVerifier.INSTANCE.verify(this.pbftMessageSet)); newPbftMessageSet = this.pbftMessageSet2.clone(); assertTrue(newPbftMessageSet.equals(this.pbftMessageSet2)); newPbftMessageSet.clear(); assertTrue(PbftVerifier.INSTANCE.verify(this.pbftMessageSet2)); newPbftMessageSet = this.pbftMessageSet3.clone(); assertTrue(newPbftMessageSet.equals(this.pbftMessageSet3)); newPbftMessageSet.clear(); assertTrue(PbftVerifier.INSTANCE.verify(this.pbftMessageSet3)); newPbftMessageSet = this.pbftMessageSet4.clone(); assertTrue(newPbftMessageSet.equals(this.pbftMessageSet4)); newPbftMessageSet.clear(); assertTrue(PbftVerifier.INSTANCE.verify(this.pbftMessageSet4)); }