Program: 32989
Project: 32989
Buggy source:
private static void test1() throws Exception {
  MultiLabelClfDataSet dataSet=TRECFormat.loadMultiLabelClfDataSet(new File(DATASETS,"String_Node_Str"),DataSetType.ML_CLF_SPARSE,true);
  MultiLabelClfDataSet testSet=TRECFormat.loadMultiLabelClfDataSet(new File(DATASETS,"String_Node_Str"),DataSetType.ML_CLF_SPARSE,true);
  BMMClassifier bmmClassifier=new BMMClassifier(dataSet.getNumClasses(),1,dataSet.getNumFeatures());
  BMMOptimizer optimizer=new BMMOptimizer(bmmClassifier,dataSet,1,1);
  bmmClassifier.setNumSample(100);
  System.out.println("String_Node_Str" + bmmClassifier.numClusters);
  System.out.println("String_Node_Str");
  System.out.println("String_Node_Str" + Accuracy.accuracy(bmmClassifier,dataSet));
  System.out.println("String_Node_Str" + Accuracy.accuracy(bmmClassifier,testSet));
  for (int i=1; i <= 30; i++) {
    optimizer.iterate();
    System.out.print("String_Node_Str" + i + "String_Node_Str");
    System.out.print("String_Node_Str" + optimizer.getTerminator().getLastValue() + "String_Node_Str");
    System.out.print("String_Node_Str" + Accuracy.accuracy(bmmClassifier,dataSet) + "String_Node_Str");
    System.out.print("String_Node_Str" + Overlap.overlap(bmmClassifier,dataSet) + "String_Node_Str");
    System.out.print("String_Node_Str" + Accuracy.accuracy(bmmClassifier,testSet) + "String_Node_Str");
    System.out.println("String_Node_Str" + Overlap.overlap(bmmClassifier,testSet) + "String_Node_Str");
  }
  System.out.println("String_Node_Str" + optimizer.getTerminator().getHistory());
  System.out.println(bmmClassifier);
}

Fixed version (ground truth):
private static void test1() throws Exception {
  MultiLabelClfDataSet dataSet=TRECFormat.loadMultiLabelClfDataSet(new File(DATASETS,"String_Node_Str"),DataSetType.ML_CLF_SPARSE,true);
  MultiLabelClfDataSet testSet=TRECFormat.loadMultiLabelClfDataSet(new File(DATASETS,"String_Node_Str"),DataSetType.ML_CLF_SPARSE,true);
  BMMClassifier bmmClassifier=new BMMClassifier(dataSet.getNumClasses(),2,dataSet.getNumFeatures());
  BMMOptimizer optimizer=new BMMOptimizer(bmmClassifier,dataSet,1,1);
  bmmClassifier.setNumSample(100);
  System.out.println("String_Node_Str" + bmmClassifier.numClusters);
  System.out.println("String_Node_Str");
  System.out.println("String_Node_Str" + Accuracy.accuracy(bmmClassifier,dataSet));
  System.out.println("String_Node_Str" + Accuracy.accuracy(bmmClassifier,testSet));
  for (int i=1; i <= 30; i++) {
    optimizer.iterate();
    System.out.print("String_Node_Str" + i + "String_Node_Str");
    System.out.print("String_Node_Str" + optimizer.getTerminator().getLastValue() + "String_Node_Str");
    System.out.print("String_Node_Str" + Accuracy.accuracy(bmmClassifier,dataSet) + "String_Node_Str");
    System.out.print("String_Node_Str" + Overlap.overlap(bmmClassifier,dataSet) + "String_Node_Str");
    System.out.print("String_Node_Str" + Accuracy.accuracy(bmmClassifier,testSet) + "String_Node_Str");
    System.out.println("String_Node_Str" + Overlap.overlap(bmmClassifier,testSet) + "String_Node_Str");
  }
  System.out.println("String_Node_Str" + optimizer.getTerminator().getHistory());
  System.out.println(bmmClassifier);
}