Program: 108339
Project: 108339
Buggy source:
@SuppressWarnings("String_Node_Str") @Test public void testNMEntropy() throws IllegalArgumentException, IOException {
  Data data=Data.create("String_Node_Str",';');
  data.getDefinition().setAttributeType("String_Node_Str",Hierarchy.create("String_Node_Str",';'));
  data.getDefinition().setAttributeType("String_Node_Str",Hierarchy.create("String_Node_Str",';'));
  data.getDefinition().setAttributeType("String_Node_Str",Hierarchy.create("String_Node_Str",';'));
  data.getDefinition().setAttributeType("String_Node_Str",Hierarchy.create("String_Node_Str",';'));
  data.getDefinition().setAttributeType("String_Node_Str",Hierarchy.create("String_Node_Str",';'));
  DataSelector selector=DataSelector.create(data).field("String_Node_Str").equals("String_Node_Str");
  DataSubset subset=DataSubset.create(data,selector);
  ARXConfiguration config=ARXConfiguration.create();
  config.addCriterion(new KAnonymity(5));
  config.addCriterion(new Inclusion(subset));
  config.setMaxOutliers(0.02d);
  config.setMetric(Metric.createEntropyMetric(false));
  ARXAnonymizer anonymizer=new ARXAnonymizer();
  ARXResult result=anonymizer.anonymize(data,config);
  result.getOutput(false).sort(true,new int[]{0,1,2,3,4});
  ARXLattice lattice=result.getLattice();
  for (  ARXNode[] level : lattice.getLevels()) {
    for (    ARXNode node : level) {
      if (Double.compare(((InformationLoss<Double>)node.getMinimumInformationLoss()).getValue(),Double.NaN) == 0 || Double.compare(((InformationLoss<Double>)node.getMaximumInformationLoss()).getValue(),Double.NaN) == 0) {
        fail();
      }
    }
  }
}

Fixed version (ground truth):
@Test public void testNMEntropy() throws IllegalArgumentException, IOException {
  Data data=Data.create("String_Node_Str",';');
  data.getDefinition().setAttributeType("String_Node_Str",Hierarchy.create("String_Node_Str",';'));
  data.getDefinition().setAttributeType("String_Node_Str",Hierarchy.create("String_Node_Str",';'));
  data.getDefinition().setAttributeType("String_Node_Str",Hierarchy.create("String_Node_Str",';'));
  data.getDefinition().setAttributeType("String_Node_Str",Hierarchy.create("String_Node_Str",';'));
  data.getDefinition().setAttributeType("String_Node_Str",Hierarchy.create("String_Node_Str",';'));
  DataSelector selector=DataSelector.create(data).field("String_Node_Str").equals("String_Node_Str");
  DataSubset subset=DataSubset.create(data,selector);
  ARXConfiguration config=ARXConfiguration.create();
  config.addCriterion(new KAnonymity(5));
  config.addCriterion(new Inclusion(subset));
  config.setMaxOutliers(0.02d);
  config.setMetric(Metric.createEntropyMetric(false));
  ARXAnonymizer anonymizer=new ARXAnonymizer();
  ARXResult result=anonymizer.anonymize(data,config);
  result.getOutput(false).sort(true,new int[]{0,1,2,3,4});
  ARXLattice lattice=result.getLattice();
  for (  ARXNode[] level : lattice.getLevels()) {
    for (    ARXNode node : level) {
      if (Double.compare((Double.valueOf(node.getMinimumInformationLoss().toString())),Double.NaN) == 0 || Double.compare((Double.valueOf(node.getMaximumInformationLoss().toString())),Double.NaN) == 0) {
        fail();
      }
    }
  }
}