Program: 108068
Project: 108068
Buggy source:
/** 
 * Returns a list of all available metrics for information loss.
 * @return
 */
public static List<MetricDescription> list(){
  return Arrays.asList(new MetricDescription[]{new MetricDescription("String_Node_Str",false,false,false,false,false){
    private static final long serialVersionUID=5194477380451716051L;
    @Override public Metric<?> createInstance(    MetricConfiguration config){
      return createAECSMetric();
    }
    @Override public boolean isInstance(    Metric<?> metric){
      return (metric instanceof MetricSDAECS);
    }
  }
,new MetricDescription("String_Node_Str",true,false,false,false,false){
    private static final long serialVersionUID=183842500322023095L;
    @Override public Metric<?> createInstance(    MetricConfiguration config){
      return createDiscernabilityMetric(config.isMonotonic());
    }
    @Override public boolean isInstance(    Metric<?> metric){
      return (metric instanceof MetricSDDiscernability) || (metric instanceof MetricSDNMDiscernability);
    }
  }
,new MetricDescription("String_Node_Str",false,false,false,false,false){
    /** 
 * SVUID 
 */
    private static final long serialVersionUID=9125639204133496116L;
    @Override public Metric<?> createInstance(    MetricConfiguration config){
      return createAmbiguityMetric();
    }
    @Override public boolean isInstance(    Metric<?> metric){
      return (metric instanceof MetricSDNMAmbiguity);
    }
  }
,new MetricDescription("String_Node_Str",false,true,false,false,true){
    private static final long serialVersionUID=9125639204133496116L;
    @Override public Metric<?> createInstance(    MetricConfiguration config){
      return createHeightMetric(config.getAggregateFunction());
    }
    @Override public boolean isInstance(    Metric<?> metric){
      return (metric instanceof MetricMDHeight);
    }
  }
,new MetricDescription("String_Node_Str",false,true,true,true,true){
    private static final long serialVersionUID=4274885123814166707L;
    @Override public Metric<?> createInstance(    MetricConfiguration config){
      if (config.isPrecomputed()) {
        return createPrecomputedLossMetric(config.getPrecomputationThreshold(),config.getGsFactor(),config.getAggregateFunction());
      }
 else {
        return createLossMetric(config.getGsFactor(),config.getAggregateFunction());
      }
    }
    @Override public boolean isInstance(    Metric<?> metric){
      return (metric instanceof MetricMDNMLoss) || (metric instanceof MetricMDNMLossPrecomputed) || (metric instanceof MetricMDNMLossPotentiallyPrecomputed);
    }
  }
,new MetricDescription("String_Node_Str",true,true,false,true,true){
    private static final long serialVersionUID=2578476174209277258L;
    @Override public Metric<?> createInstance(    MetricConfiguration config){
      if (config.isPrecomputed()) {
        return createPrecomputedEntropyMetric(config.getPrecomputationThreshold(),config.isMonotonic(),config.getAggregateFunction());
      }
 else {
        return createEntropyMetric(config.isMonotonic(),config.getAggregateFunction());
      }
    }
    @Override public boolean isInstance(    Metric<?> metric){
      return (metric instanceof MetricMDNUEntropy) || (metric instanceof MetricMDNUEntropyPrecomputed) || (metric instanceof MetricMDNUEntropyPotentiallyPrecomputed)|| (metric instanceof MetricMDNUNMEntropy)|| (metric instanceof MetricMDNUNMEntropyPrecomputed)|| (metric instanceof MetricMDNUNMEntropyPotentiallyPrecomputed);
    }
  }
,new MetricDescription("String_Node_Str",true,true,false,false,true){
    private static final long serialVersionUID=2992096817427174514L;
    @Override public Metric<?> createInstance(    MetricConfiguration config){
      return createPrecisionMetric(config.isMonotonic(),config.getAggregateFunction());
    }
    @Override public boolean isInstance(    Metric<?> metric){
      return (metric instanceof MetricMDPrecision) || (metric instanceof MetricMDNMPrecision);
    }
  }
});
}

Fixed version (ground truth):
/** 
 * Returns a list of all available metrics for information loss.
 * @return
 */
public static List<MetricDescription> list(){
  return Arrays.asList(new MetricDescription[]{new MetricDescription("String_Node_Str",false,false,false,false,false){
    private static final long serialVersionUID=5194477380451716051L;
    @Override public Metric<?> createInstance(    MetricConfiguration config){
      return createAECSMetric();
    }
    @Override public boolean isInstance(    Metric<?> metric){
      return (metric instanceof MetricSDAECS);
    }
  }
,new MetricDescription("String_Node_Str",true,false,false,false,false){
    private static final long serialVersionUID=183842500322023095L;
    @Override public Metric<?> createInstance(    MetricConfiguration config){
      return createDiscernabilityMetric(config.isMonotonic());
    }
    @Override public boolean isInstance(    Metric<?> metric){
      return (metric instanceof MetricSDDiscernability) || (metric instanceof MetricSDNMDiscernability);
    }
  }
,new MetricDescription("String_Node_Str",false,true,false,false,true){
    private static final long serialVersionUID=9125639204133496116L;
    @Override public Metric<?> createInstance(    MetricConfiguration config){
      return createHeightMetric(config.getAggregateFunction());
    }
    @Override public boolean isInstance(    Metric<?> metric){
      return (metric instanceof MetricMDHeight);
    }
  }
,new MetricDescription("String_Node_Str",false,true,true,true,true){
    private static final long serialVersionUID=4274885123814166707L;
    @Override public Metric<?> createInstance(    MetricConfiguration config){
      if (config.isPrecomputed()) {
        return createPrecomputedLossMetric(config.getPrecomputationThreshold(),config.getGsFactor(),config.getAggregateFunction());
      }
 else {
        return createLossMetric(config.getGsFactor(),config.getAggregateFunction());
      }
    }
    @Override public boolean isInstance(    Metric<?> metric){
      return (metric instanceof MetricMDNMLoss) || (metric instanceof MetricMDNMLossPrecomputed) || (metric instanceof MetricMDNMLossPotentiallyPrecomputed);
    }
  }
,new MetricDescription("String_Node_Str",true,true,false,true,true){
    private static final long serialVersionUID=2578476174209277258L;
    @Override public Metric<?> createInstance(    MetricConfiguration config){
      if (config.isPrecomputed()) {
        return createPrecomputedEntropyMetric(config.getPrecomputationThreshold(),config.isMonotonic(),config.getAggregateFunction());
      }
 else {
        return createEntropyMetric(config.isMonotonic(),config.getAggregateFunction());
      }
    }
    @Override public boolean isInstance(    Metric<?> metric){
      return (metric instanceof MetricMDNUEntropy) || (metric instanceof MetricMDNUEntropyPrecomputed) || (metric instanceof MetricMDNUEntropyPotentiallyPrecomputed)|| (metric instanceof MetricMDNUNMEntropy)|| (metric instanceof MetricMDNUNMEntropyPrecomputed)|| (metric instanceof MetricMDNUNMEntropyPotentiallyPrecomputed);
    }
  }
,new MetricDescription("String_Node_Str",true,true,false,false,true){
    private static final long serialVersionUID=2992096817427174514L;
    @Override public Metric<?> createInstance(    MetricConfiguration config){
      return createPrecisionMetric(config.isMonotonic(),config.getAggregateFunction());
    }
    @Override public boolean isInstance(    Metric<?> metric){
      return (metric instanceof MetricMDPrecision) || (metric instanceof MetricMDNMPrecision);
    }
  }
,new MetricDescription("String_Node_Str",false,false,false,false,false){
    /** 
 * SVUID 
 */
    private static final long serialVersionUID=3549715700376537750L;
    @Override public Metric<?> createInstance(    MetricConfiguration config){
      return createAmbiguityMetric();
    }
    @Override public boolean isInstance(    Metric<?> metric){
      return (metric instanceof MetricSDNMAmbiguity);
    }
  }
});
}