Program: 16225
Project: 16225
Buggy source:
@Test public void testMmcifWritingPartialAltlocs() throws IOException {
  String mmcifData="String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  SimpleMMcifParser parser=new SimpleMMcifParser();
  SimpleMMcifConsumer consumer=new SimpleMMcifConsumer();
  parser.addMMcifConsumer(consumer);
  BufferedReader buf=new BufferedReader(new StringReader(mmcifData));
  parser.parse(buf);
  buf.close();
  Structure s=consumer.getStructure();
  Chain c=s.getPolyChains().get(0);
  assertEquals(1,c.getAtomGroups().size());
  Group g=c.getAtomGroup(0);
  assertEquals(11,g.size());
  assertEquals(1,g.getAltLocs().size());
  for (  Atom a : g.getAtoms()) {
    if (a.getName().equals("String_Node_Str") || a.getName().equals("String_Node_Str") || a.getName().equals("String_Node_Str")|| a.getName().equals("String_Node_Str")|| a.getName().equals("String_Node_Str"))     assertEquals(' ',a.getAltLoc().charValue());
 else     assertEquals('A',a.getAltLoc().charValue());
  }
  assertEquals(11,g.getAltLocs().get(0).size());
  for (  Atom a : g.getAltLocs().get(0).getAtoms()) {
    if (a.getName().equals("String_Node_Str") || a.getName().equals("String_Node_Str") || a.getName().equals("String_Node_Str")|| a.getName().equals("String_Node_Str")|| a.getName().equals("String_Node_Str"))     assertEquals(' ',a.getAltLoc().charValue());
 else     assertEquals('B',a.getAltLoc().charValue());
  }
  List<AtomSite> atomSites=MMCIFFileTools.convertChainToAtomSites(c,1,"String_Node_Str","String_Node_Str");
  assertEquals(17,atomSites.size());
}

Fixed version (ground truth):
@Test public void testMmcifWritingPartialAltlocs() throws IOException {
  String mmcifData="String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  SimpleMMcifParser parser=new SimpleMMcifParser();
  SimpleMMcifConsumer consumer=new SimpleMMcifConsumer();
  parser.addMMcifConsumer(consumer);
  BufferedReader buf=new BufferedReader(new StringReader(mmcifData));
  parser.parse(buf);
  buf.close();
  Structure s=consumer.getStructure();
  Chain c=s.getPolyChains().get(0);
  assertEquals(1,c.getAtomGroups().size());
  Group g=c.getAtomGroup(0);
  assertEquals(11,g.size());
  assertEquals(2,g.getAltLocs().size());
  for (  Atom a : g.getAtoms()) {
    if (a.getName().equals("String_Node_Str") || a.getName().equals("String_Node_Str") || a.getName().equals("String_Node_Str")|| a.getName().equals("String_Node_Str")|| a.getName().equals("String_Node_Str"))     assertEquals(' ',a.getAltLoc().charValue());
 else     assertEquals('A',a.getAltLoc().charValue());
  }
  assertEquals(11,g.getAltLocs().get(0).size());
  for (  Atom a : g.getAltLocs().get(0).getAtoms()) {
    if (a.getName().equals("String_Node_Str") || a.getName().equals("String_Node_Str") || a.getName().equals("String_Node_Str")|| a.getName().equals("String_Node_Str")|| a.getName().equals("String_Node_Str"))     assertEquals(' ',a.getAltLoc().charValue());
 else     assertEquals('A',a.getAltLoc().charValue());
  }
  assertEquals(11,g.getAltLocs().get(1).size());
  for (  Atom a : g.getAltLocs().get(1).getAtoms()) {
    if (a.getName().equals("String_Node_Str") || a.getName().equals("String_Node_Str") || a.getName().equals("String_Node_Str")|| a.getName().equals("String_Node_Str")|| a.getName().equals("String_Node_Str"))     assertEquals(' ',a.getAltLoc().charValue());
 else     assertEquals('B',a.getAltLoc().charValue());
  }
  List<AtomSite> atomSites=MMCIFFileTools.convertChainToAtomSites(c,1,"String_Node_Str","String_Node_Str");
  assertEquals(17,atomSites.size());
}