Program: 16515
Project: 16515
Buggy source:
private void testSingleChain(Chain cPdb,Chain cCif){
  assertNotNull(cPdb);
  assertNotNull(cCif);
  String chainId=cPdb.getChainID();
  assertEquals("String_Node_Str",cPdb.getChainID(),cCif.getChainID());
  assertNotNull("String_Node_Str",cCif.getInternalChainID());
  assertTrue("String_Node_Str",cCif.getInternalChainID().length() <= 4);
  assertEquals("String_Node_Str",1,cPdb.getChainID().length());
  assertEquals("String_Node_Str",1,cCif.getChainID().length());
  if (isPolymer(cPdb)) {
    assertNotNull("String_Node_Str" + chainId + "String_Node_Str",cPdb.getCompound());
    assertNotNull("String_Node_Str" + chainId + "String_Node_Str",cCif.getCompound());
    int molIdPdb=cPdb.getCompound().getMolId();
    int molIdCif=cCif.getCompound().getMolId();
    if (molIdPdb != molIdCif) {
      logger.warn("String_Node_Str",pdbId,molIdPdb,molIdCif);
      pdbIdsWithMismatchingMolIds.add(pdbId);
    }
  }
  assertNotNull("String_Node_Str" + chainId + "String_Node_Str",cPdb.getStructure());
  assertNotNull("String_Node_Str" + chainId + "String_Node_Str",cCif.getStructure());
  assertEquals("String_Node_Str" + chainId + "String_Node_Str",cPdb.getAtomLength(),cCif.getAtomLength());
  assertEquals("String_Node_Str" + chainId + "String_Node_Str",cPdb.getSeqResLength(),cCif.getSeqResLength());
  assertEquals("String_Node_Str",cPdb.getSeqResGroups().size(),cCif.getSeqResGroups().size());
  assertEquals("String_Node_Str",cPdb.getSeqResLength(),cPdb.getSeqResGroups().size());
  assertEquals("String_Node_Str",cCif.getSeqResLength(),cCif.getSeqResGroups().size());
  assertEquals("String_Node_Str",cPdb.getAtomLength(),cCif.getAtomLength());
  assertEquals("String_Node_Str",cPdb.getAtomGroups().size(),cCif.getAtomGroups().size());
  assertEquals("String_Node_Str",cPdb.getAtomLength(),cPdb.getAtomGroups().size());
  assertEquals("String_Node_Str",cCif.getAtomLength(),cCif.getAtomGroups().size());
  assertEquals("String_Node_Str",cPdb.getAtomGroups(GroupType.AMINOACID).size(),cCif.getAtomGroups(GroupType.AMINOACID).size());
  assertEquals("String_Node_Str",cPdb.getAtomGroups(GroupType.HETATM).size(),cCif.getAtomGroups(GroupType.HETATM).size());
  assertEquals("String_Node_Str",cPdb.getAtomGroups(GroupType.NUCLEOTIDE).size(),cCif.getAtomGroups(GroupType.NUCLEOTIDE).size());
  assertEquals("String_Node_Str",cPdb.getSeqResGroups(GroupType.AMINOACID).size(),cCif.getSeqResGroups(GroupType.AMINOACID).size());
  assertEquals("String_Node_Str",cPdb.getSeqResGroups(GroupType.HETATM).size(),cCif.getSeqResGroups(GroupType.HETATM).size());
  assertEquals("String_Node_Str",cPdb.getSeqResGroups(GroupType.NUCLEOTIDE).size(),cCif.getSeqResGroups(GroupType.NUCLEOTIDE).size());
  assertTrue("String_Node_Str" + chainId + "String_Node_Str",cPdb.getAtomLength() >= 1);
  if (isPolymer(cPdb)) {
    assertTrue("String_Node_Str" + chainId + "String_Node_Str",cPdb.getSeqResLength() >= 1);
  }
  int allAtomGroupsSizePdb=cPdb.getAtomGroups(GroupType.AMINOACID).size() + cPdb.getAtomGroups(GroupType.HETATM).size() + cPdb.getAtomGroups(GroupType.NUCLEOTIDE).size();
  int allAtomGroupsSizeCif=cCif.getAtomGroups(GroupType.AMINOACID).size() + cCif.getAtomGroups(GroupType.HETATM).size() + cCif.getAtomGroups(GroupType.NUCLEOTIDE).size();
  assertEquals("String_Node_Str",allAtomGroupsSizePdb,allAtomGroupsSizeCif);
  assertEquals("String_Node_Str",cPdb.getAtomLength(),allAtomGroupsSizePdb);
  int allSeqResGroupsSizePdb=cPdb.getSeqResGroups(GroupType.AMINOACID).size() + cPdb.getSeqResGroups(GroupType.HETATM).size() + cPdb.getSeqResGroups(GroupType.NUCLEOTIDE).size();
  int allSeqResGroupsSizeCif=cCif.getSeqResGroups(GroupType.AMINOACID).size() + cCif.getSeqResGroups(GroupType.HETATM).size() + cCif.getSeqResGroups(GroupType.NUCLEOTIDE).size();
  assertEquals("String_Node_Str",allSeqResGroupsSizePdb,allSeqResGroupsSizeCif);
  assertEquals("String_Node_Str",cPdb.getSeqResLength(),allSeqResGroupsSizePdb);
}

Fixed version (ground truth):
private void testSingleChain(Chain cPdb,Chain cCif){
  assertNotNull(cPdb);
  assertNotNull(cCif);
  String chainId=cPdb.getChainID();
  assertEquals("String_Node_Str",cPdb.getChainID(),cCif.getChainID());
  assertNotNull("String_Node_Str",cCif.getInternalChainID());
  assertTrue("String_Node_Str",cCif.getInternalChainID().length() <= 4);
  assertEquals("String_Node_Str",1,cPdb.getChainID().length());
  assertEquals("String_Node_Str",1,cCif.getChainID().length());
  if (isPolymer(cPdb)) {
    assertNotNull("String_Node_Str" + chainId + "String_Node_Str",cPdb.getCompound());
    assertNotNull("String_Node_Str" + chainId + "String_Node_Str",cCif.getCompound());
    int molIdPdb=cPdb.getCompound().getMolId();
    int molIdCif=cCif.getCompound().getMolId();
    if (molIdPdb != molIdCif) {
      logger.warn("String_Node_Str",pdbId,molIdPdb,molIdCif);
      pdbIdsWithMismatchingMolIds.add(pdbId);
    }
  }
  assertNotNull("String_Node_Str" + chainId + "String_Node_Str",cPdb.getStructure());
  assertNotNull("String_Node_Str" + chainId + "String_Node_Str",cCif.getStructure());
  assertEquals("String_Node_Str" + chainId + "String_Node_Str",cPdb.getAtomLength(),cCif.getAtomLength());
  assertEquals("String_Node_Str" + chainId + "String_Node_Str",cPdb.getSeqResLength(),cCif.getSeqResLength());
  assertEquals("String_Node_Str",cPdb.getSeqResGroups().size(),cCif.getSeqResGroups().size());
  assertEquals("String_Node_Str",cPdb.getSeqResLength(),cPdb.getSeqResGroups().size());
  assertEquals("String_Node_Str",cCif.getSeqResLength(),cCif.getSeqResGroups().size());
  assertEquals("String_Node_Str",cPdb.getAtomLength(),cCif.getAtomLength());
  assertEquals("String_Node_Str",cPdb.getAtomGroups().size(),cCif.getAtomGroups().size());
  assertEquals("String_Node_Str",cPdb.getAtomLength(),cPdb.getAtomGroups().size());
  assertEquals("String_Node_Str",cCif.getAtomLength(),cCif.getAtomGroups().size());
  assertEquals("String_Node_Str",cPdb.getAtomGroups(GroupType.AMINOACID).size(),cCif.getAtomGroups(GroupType.AMINOACID).size());
  assertEquals("String_Node_Str",cPdb.getAtomGroups(GroupType.HETATM).size(),cCif.getAtomGroups(GroupType.HETATM).size());
  assertEquals("String_Node_Str",cPdb.getAtomGroups(GroupType.NUCLEOTIDE).size(),cCif.getAtomGroups(GroupType.NUCLEOTIDE).size());
  if (cPdb.getStructure().getPDBCode().equals("String_Node_Str") && cPdb.getChainID().equals("String_Node_Str"))   return;
  assertEquals("String_Node_Str",cPdb.getSeqResGroups(GroupType.AMINOACID).size(),cCif.getSeqResGroups(GroupType.AMINOACID).size());
  assertEquals("String_Node_Str",cPdb.getSeqResGroups(GroupType.HETATM).size(),cCif.getSeqResGroups(GroupType.HETATM).size());
  assertEquals("String_Node_Str",cPdb.getSeqResGroups(GroupType.NUCLEOTIDE).size(),cCif.getSeqResGroups(GroupType.NUCLEOTIDE).size());
  assertTrue("String_Node_Str" + chainId + "String_Node_Str",cPdb.getAtomLength() >= 1);
  if (isPolymer(cPdb)) {
    assertTrue("String_Node_Str" + chainId + "String_Node_Str",cPdb.getSeqResLength() >= 1);
  }
  int allAtomGroupsSizePdb=cPdb.getAtomGroups(GroupType.AMINOACID).size() + cPdb.getAtomGroups(GroupType.HETATM).size() + cPdb.getAtomGroups(GroupType.NUCLEOTIDE).size();
  int allAtomGroupsSizeCif=cCif.getAtomGroups(GroupType.AMINOACID).size() + cCif.getAtomGroups(GroupType.HETATM).size() + cCif.getAtomGroups(GroupType.NUCLEOTIDE).size();
  assertEquals("String_Node_Str",allAtomGroupsSizePdb,allAtomGroupsSizeCif);
  assertEquals("String_Node_Str",cPdb.getAtomLength(),allAtomGroupsSizePdb);
  int allSeqResGroupsSizePdb=cPdb.getSeqResGroups(GroupType.AMINOACID).size() + cPdb.getSeqResGroups(GroupType.HETATM).size() + cPdb.getSeqResGroups(GroupType.NUCLEOTIDE).size();
  int allSeqResGroupsSizeCif=cCif.getSeqResGroups(GroupType.AMINOACID).size() + cCif.getSeqResGroups(GroupType.HETATM).size() + cCif.getSeqResGroups(GroupType.NUCLEOTIDE).size();
  assertEquals("String_Node_Str",allSeqResGroupsSizePdb,allSeqResGroupsSizeCif);
  assertEquals("String_Node_Str",cPdb.getSeqResLength(),allSeqResGroupsSizePdb);
}