Program: 169227
Project: 169227
Buggy source:
public static void main(String[] args){
  String a="String_Node_Str";
  String b="String_Node_Str";
  RandomSequenceGenerator generator=new RandomSequenceGenerator();
  a=generator.generateRandomSequence(2000);
  b=a.substring(500,1600);
  a=generator.addPacBioError(a);
  b=generator.addPacBioError(b);
  Aligner<AlignElementString> aligner=new Aligner<AlignElementString>(true,-2.0,-1 * Float.MAX_VALUE,0.0);
  Alignment<AlignElementString> alignment=aligner.localAlignSmithWaterGotoh(new AlignElementString(a),new AlignElementString(b));
  System.err.println(alignment.getOverlapScore(5));
  System.out.println(alignment.outputAlignment());
  System.err.println("String_Node_Str" + alignment.getA1());
  System.err.println("String_Node_Str" + alignment.getB1());
  System.err.println("String_Node_Str" + alignment.getA2());
  System.err.println("String_Node_Str" + alignment.getB2());
  MinHashBitSequenceSubSketches m1=new MinHashBitSequenceSubSketches(a,6,200,20);
  MinHashBitSequenceSubSketches m2=new MinHashBitSequenceSubSketches(b,6,200,20);
  System.err.println("String_Node_Str" + m1.length());
  System.err.println("String_Node_Str" + m2.length());
  OverlapInfo info=m1.getOverlapInfo(new Aligner<AlignElementSketch<MinHashBitSketch>>(true,0.00,0.0,-0.51),m2);
  System.err.println("String_Node_Str");
  System.err.println(info.rawScore);
  System.err.println(info.a1);
  System.err.println(info.b1);
  System.err.println(info.a2);
  System.err.println(info.b2);
  OverlapInfo info2=m2.getOverlapInfo(new Aligner<AlignElementSketch<MinHashBitSketch>>(true,0.00,0.0,-0.51),m1);
  System.err.println("String_Node_Str");
  System.err.println(info2.rawScore);
  System.err.println(info2.a1);
  System.err.println(info2.b1);
  System.err.println(info2.a2);
  System.err.println(info2.b2);
  System.exit(1);
  OrderedNGramHashes hashes1=new OrderedNGramHashes(a,10);
  OrderedNGramHashes hashes2=new OrderedNGramHashes(b,10);
  System.err.println("String_Node_Str");
  System.err.println(hashes1.getOverlapInfo(hashes2,.2).a1);
  System.err.println(hashes1.getOverlapInfo(hashes2,.2).b1);
  System.err.println(hashes1.getOverlapInfo(hashes2,.2).a2);
  System.err.println(hashes1.getOverlapInfo(hashes2,.2).b2);
}

Fixed version (ground truth):
public static void main(String[] args){
  String a="String_Node_Str";
  String b="String_Node_Str";
  RandomSequenceGenerator generator=new RandomSequenceGenerator();
  a=generator.generateRandomSequence(2000);
  b=a;
  Aligner<AlignElementString> aligner=new Aligner<AlignElementString>(true,-2.0,-1 * Float.MAX_VALUE,0.0);
  Alignment<AlignElementString> alignment=aligner.localAlignSmithWaterGotoh(new AlignElementString(a),new AlignElementString(b));
  System.err.println(alignment.getOverlapScore(5));
  System.out.println(alignment.outputAlignment());
  System.err.println("String_Node_Str" + alignment.getA1());
  System.err.println("String_Node_Str" + alignment.getB1());
  System.err.println("String_Node_Str" + alignment.getA2());
  System.err.println("String_Node_Str" + alignment.getB2());
  MinHashBitSequenceSubSketches m1=new MinHashBitSequenceSubSketches(a,6,200,20);
  MinHashBitSequenceSubSketches m2=new MinHashBitSequenceSubSketches(b,6,200,20);
  OverlapInfo info=m1.getOverlapInfo(new Aligner<AlignElementSketch<MinHashBitSketch>>(true,0.00,0.0,-0.51),m2);
  System.err.println("String_Node_Str");
  System.err.println(info.rawScore);
  System.err.println(info.a1);
  System.err.println(info.b1);
  System.err.println(info.a2);
  System.err.println(info.b2);
  OverlapInfo info2=m2.getOverlapInfo(new Aligner<AlignElementSketch<MinHashBitSketch>>(true,0.00,0.0,-0.51),m1);
  System.err.println("String_Node_Str");
  System.err.println(info2.rawScore);
  System.err.println(info2.a1);
  System.err.println(info2.b1);
  System.err.println(info2.a2);
  System.err.println(info2.b2);
  System.exit(1);
  OrderedNGramHashes hashes1=new OrderedNGramHashes(a,10);
  OrderedNGramHashes hashes2=new OrderedNGramHashes(b,10);
  System.err.println("String_Node_Str");
  System.err.println(hashes1.getOverlapInfo(hashes2,.2).a1);
  System.err.println(hashes1.getOverlapInfo(hashes2,.2).b1);
  System.err.println(hashes1.getOverlapInfo(hashes2,.2).a2);
  System.err.println(hashes1.getOverlapInfo(hashes2,.2).b2);
}