Program: 41048
Project: 41048
Buggy source:
private static void runForN(int N){
  PList<Float> output;
  PList<Float> input=new FloatList();
  for (int i=0; i < N; i++) {
    input.add((float)i);
  }
  System.out.println("String_Node_Str");
  output=input.map(new LambdaMapper<Float,Float>(){
    @Override public Float map(    Float input){
      return input + 1;
    }
  }
);
  output.get(0);
  sleep();
  System.out.println("String_Node_Str" + input.size());
  output=input.map(new LambdaMapper<Float,Float>(){
    @Override public Float map(    Float input){
      return (float)Math.sin(input);
    }
  }
);
  output.get(0);
  sleep();
  System.out.println("String_Node_Str" + input.size());
  output=input.map(new LambdaMapper<Float,Float>(){
    @Override public Float map(    Float input){
      return (float)(Math.sin(input) + Math.cos(input));
    }
  }
);
  output.get(0);
  sleep();
  System.out.println("String_Node_Str" + input.size());
  output=input.map(new LambdaMapper<Float,Float>(){
    @Override public Float map(    Float input){
      int r=1;
      for (int i=1; i <= 10000; i++) {
        r*=i;
      }
      return (float)r;
    }
  }
);
  output.get(0);
  sleep();
  System.out.println("String_Node_Str" + input.size());
  PList<Integer> li=new Range(input.size());
  PList<Double> li2=li.map(new LambdaMapper<Integer,Double>(){
    @Override public Double map(    Integer input){
      double n=10000000.0;
      double b=Math.pow(Math.E,Math.sin(input / n));
      double B=Math.pow(Math.E,Math.sin((input + 1) / n));
      return ((b + B) / 2) * (1 / n);
    }
  }
);
  @SuppressWarnings("String_Node_Str") double output2=li2.reduce(new LambdaReducer<Double>(){
    @Override public Double combine(    Double input,    Double other){
      return input + other;
    }
    @Override public Double getSeed(){
      return 0.0;
    }
  }
);
  sleep();
  System.out.println("String_Node_Str" + input.size());
  final double RESOLUTION=100000;
  output2=new Range(input.size()).map(new LambdaMapper<Integer,Double>(){
    @Override public Double map(    Integer input){
      double x=2 * input / (double)(RESOLUTION) - 1;
      return 10 * Math.pow(x,6) + Math.pow(x,5) + 2 * Math.pow(x,4) + 3 * x * x* x + 2 / 5 * x * x + Math.PI * x;
    }
  }
).reduce(new LambdaReducer<Double>(){
    @Override public Double combine(    Double input,    Double other){
      return Math.min(input,other);
    }
    @Override public Double getSeed(){
      return Double.MAX_VALUE;
    }
  }
);
  sleep();
}

Fixed version (ground truth):
private static void runForN(int N){
  PList<Float> output;
  PList<Float> input=new FloatList();
  for (int i=0; i < N; i++) {
    input.add((float)i);
  }
  System.out.println("String_Node_Str");
  output=input.map(new LambdaMapper<Float,Float>(){
    @Override public Float map(    Float input){
      return input + 1;
    }
  }
);
  output.get(0);
  sleep();
  System.out.println("String_Node_Str" + input.size());
  output=input.map(new LambdaMapper<Float,Float>(){
    @Override public Float map(    Float input){
      return (float)Math.sin(input);
    }
  }
);
  output.get(0);
  sleep();
  System.out.println("String_Node_Str" + input.size());
  output=input.map(new LambdaMapper<Float,Float>(){
    @Override public Float map(    Float input){
      return (float)(Math.sin(input) + Math.cos(input));
    }
  }
);
  output.get(0);
  sleep();
  System.out.println("String_Node_Str" + input.size());
  output=input.map(new LambdaMapper<Float,Float>(){
    @Override public Float map(    Float input){
      int r=1;
      for (int i=1; i <= 10000; i++) {
        r*=i;
      }
      return (float)r;
    }
  }
);
  output.get(0);
  sleep();
  System.out.println("String_Node_Str" + input.size());
  PList<Integer> li=new Range(input.size());
  PList<Double> li2=li.map(new LambdaMapper<Integer,Double>(){
    @Override public Double map(    Integer input){
      double n=10000000.0;
      double b=Math.pow(Math.E,Math.sin(input / n));
      double B=Math.pow(Math.E,Math.sin((input + 1) / n));
      return ((b + B) / 2) * (1 / n);
    }
  }
);
  @SuppressWarnings("String_Node_Str") double output2=li2.reduce(new LambdaReducer<Double>(){
    @Override public Double combine(    Double input,    Double other){
      return input + other;
    }
    @Override public Double getSeed(){
      return 0.0;
    }
  }
);
  sleep();
  System.out.println("String_Node_Str" + input.size());
  output2=new Range(input.size()).map(new LambdaMapper<Integer,Double>(){
    @Override public Double map(    Integer input){
      double x=2 * input / (double)(100000) - 1;
      return 10 * Math.pow(x,6) + Math.pow(x,5) + 2 * Math.pow(x,4) + 3 * x * x* x + 2 / 5 * x * x + Math.PI * x;
    }
  }
).reduce(new LambdaReducer<Double>(){
    @Override public Double combine(    Double input,    Double other){
      return Math.min(input,other);
    }
    @Override public Double getSeed(){
      return Double.MAX_VALUE;
    }
  }
);
  sleep();
}