Program: 39338
Project: 39338
Buggy source:
/** 
 * A main method with some informal tests
 */
public static void main(String[] args){
  Parameters.initializeParameterCollections(new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"});
  MMNEAT.loadClasses();
  TWEANNGenotype tg1=new TWEANNGenotype(5,2,0);
  MMNEAT.genotype=tg1.copy();
  EvolutionaryHistory.initArchetype(0);
  TWEANNGenotype tg2=new TWEANNGenotype(5,2,0);
  final int MUTATIONS1=10;
  for (int i=0; i < MUTATIONS1; i++) {
    tg1.mutate();
    tg2.mutate();
  }
  double[] inputs=RandomNumbers.randomArray(tg1.numIn);
  DrawingPanel p1=new DrawingPanel(TWEANN.NETWORK_VIEW_DIM,TWEANN.NETWORK_VIEW_DIM,"String_Node_Str");
  DrawingPanel p2=new DrawingPanel(TWEANN.NETWORK_VIEW_DIM,TWEANN.NETWORK_VIEW_DIM,"String_Node_Str");
  p2.setLocation(TWEANN.NETWORK_VIEW_DIM + 10,0);
  tg1.getPhenotype().draw(p1,true);
  tg2.getPhenotype().draw(p2,true);
  new MMR().mutate(tg1);
  tg1.freezePreferenceNeurons();
  System.out.println("String_Node_Str" + Arrays.toString(tg1.getPhenotype().process(inputs)));
  DrawingPanel p3=new DrawingPanel(TWEANN.NETWORK_VIEW_DIM,TWEANN.NETWORK_VIEW_DIM,"String_Node_Str");
  p3.setLocation(0,TWEANN.NETWORK_VIEW_DIM + 10);
  tg1.getPhenotype().draw(p3,true);
  new MMR().mutate(tg2);
  tg2.freezePolicyNeurons();
  System.out.println("String_Node_Str" + Arrays.toString(tg2.getPhenotype().process(inputs)));
  DrawingPanel p4=new DrawingPanel(TWEANN.NETWORK_VIEW_DIM,TWEANN.NETWORK_VIEW_DIM,"String_Node_Str");
  p4.setLocation(TWEANN.NETWORK_VIEW_DIM + 10,TWEANN.NETWORK_VIEW_DIM + 10);
  tg2.getPhenotype().draw(p4,true);
  for (int i=0; i < MUTATIONS1; i++) {
    tg1.mutate();
    tg2.mutate();
  }
  System.out.println("String_Node_Str" + Arrays.toString(tg1.getPhenotype().process(inputs)));
  System.out.println("String_Node_Str" + Arrays.toString(tg2.getPhenotype().process(inputs)));
  DrawingPanel p5=new DrawingPanel(TWEANN.NETWORK_VIEW_DIM,TWEANN.NETWORK_VIEW_DIM,"String_Node_Str");
  p5.setLocation(2 * (TWEANN.NETWORK_VIEW_DIM + 10),0);
  tg1.getPhenotype().draw(p5,true);
  DrawingPanel p6=new DrawingPanel(TWEANN.NETWORK_VIEW_DIM,TWEANN.NETWORK_VIEW_DIM,"String_Node_Str");
  p6.setLocation(2 * (TWEANN.NETWORK_VIEW_DIM + 10),TWEANN.NETWORK_VIEW_DIM + 10);
  tg2.getPhenotype().draw(p6,true);
}

Fixed version (ground truth):
/** 
 * A main method with some informal tests
 */
public static void main(String[] args){
  Parameters.initializeParameterCollections(new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"});
  MMNEAT.loadClasses();
  TWEANNGenotype tg1=new TWEANNGenotype(5,2,0);
  MMNEAT.genotype=tg1.copy();
  EvolutionaryHistory.initArchetype(0);
  TWEANNGenotype tg2=new TWEANNGenotype(5,2,0);
  final int MUTATIONS1=10;
  for (int i=0; i < MUTATIONS1; i++) {
    tg1.mutate();
    tg2.mutate();
  }
  System.out.println(tg1);
  System.out.println(new TWEANN(tg1));
  double[] inputs=RandomNumbers.randomArray(tg1.numIn);
  DrawingPanel p1=new DrawingPanel(TWEANN.NETWORK_VIEW_DIM,TWEANN.NETWORK_VIEW_DIM,"String_Node_Str");
  DrawingPanel p2=new DrawingPanel(TWEANN.NETWORK_VIEW_DIM,TWEANN.NETWORK_VIEW_DIM,"String_Node_Str");
  p2.setLocation(TWEANN.NETWORK_VIEW_DIM + 10,0);
  tg1.getPhenotype().draw(p1,true);
  tg2.getPhenotype().draw(p2,true);
  new MMR().mutate(tg1);
  tg1.freezePreferenceNeurons();
  System.out.println("String_Node_Str" + Arrays.toString(tg1.getPhenotype().process(inputs)));
  DrawingPanel p3=new DrawingPanel(TWEANN.NETWORK_VIEW_DIM,TWEANN.NETWORK_VIEW_DIM,"String_Node_Str");
  p3.setLocation(0,TWEANN.NETWORK_VIEW_DIM + 10);
  tg1.getPhenotype().draw(p3,true);
  new MMR().mutate(tg2);
  tg2.freezePolicyNeurons();
  System.out.println("String_Node_Str" + Arrays.toString(tg2.getPhenotype().process(inputs)));
  DrawingPanel p4=new DrawingPanel(TWEANN.NETWORK_VIEW_DIM,TWEANN.NETWORK_VIEW_DIM,"String_Node_Str");
  p4.setLocation(TWEANN.NETWORK_VIEW_DIM + 10,TWEANN.NETWORK_VIEW_DIM + 10);
  tg2.getPhenotype().draw(p4,true);
  for (int i=0; i < MUTATIONS1; i++) {
    tg1.mutate();
    tg2.mutate();
  }
  System.out.println("String_Node_Str" + Arrays.toString(tg1.getPhenotype().process(inputs)));
  System.out.println("String_Node_Str" + Arrays.toString(tg2.getPhenotype().process(inputs)));
  DrawingPanel p5=new DrawingPanel(TWEANN.NETWORK_VIEW_DIM,TWEANN.NETWORK_VIEW_DIM,"String_Node_Str");
  p5.setLocation(2 * (TWEANN.NETWORK_VIEW_DIM + 10),0);
  tg1.getPhenotype().draw(p5,true);
  DrawingPanel p6=new DrawingPanel(TWEANN.NETWORK_VIEW_DIM,TWEANN.NETWORK_VIEW_DIM,"String_Node_Str");
  p6.setLocation(2 * (TWEANN.NETWORK_VIEW_DIM + 10),TWEANN.NETWORK_VIEW_DIM + 10);
  tg2.getPhenotype().draw(p6,true);
}