Program: 91942
Project: 91942
Buggy source:
/** 
 * Tests the parsing of a projected CRS using angular values in grades instead than degrees and in lengths in kilometres instead than metres.
 * @throws ParseException if the parsing failed.
 */
@Test @DependsOnMethod({"String_Node_Str","String_Node_Str"}) public void testProjectedWithGradUnits() throws ParseException {
  String wkt="String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  ProjectedCRS crs=parse(ProjectedCRS.class,wkt);
  assertNameAndIdentifierEqual("String_Node_Str",0,crs);
  verifyProjectedCS(crs.getCoordinateSystem(),SI.KILOMETRE);
  PrimeMeridian pm=verifyNTF(crs.getDatum(),true);
  assertEquals("String_Node_Str",NonSI.GRADE,pm.getAngularUnit());
  assertEquals("String_Node_Str",2.5969213,pm.getGreenwichLongitude(),STRICT);
  ParameterValue<?> param=verifyNTF(crs.getConversionFromBase().getParameterValues());
  assertEquals("String_Node_Str",NonSI.GRADE,param.getUnit());
  assertEquals("String_Node_Str",52.0,param.doubleValue(),STRICT);
  wkt=wkt.replace("String_Node_Str","String_Node_Str");
  wkt=wkt.replace("String_Node_Str","String_Node_Str");
  wkt=wkt.replace("String_Node_Str","String_Node_Str");
  wkt=wkt.replace("String_Node_Str","String_Node_Str");
  newParser(Convention.WKT1_IGNORE_AXES);
  crs=parse(ProjectedCRS.class,wkt);
  assertNameAndIdentifierEqual("String_Node_Str",0,crs);
  verifyProjectedCS(crs.getCoordinateSystem(),SI.KILOMETRE);
  pm=verifyNTF(crs.getDatum(),true);
  assertEquals("String_Node_Str",NonSI.DEGREE_ANGLE,pm.getAngularUnit());
  assertEquals("String_Node_Str",2.33722917,pm.getGreenwichLongitude(),STRICT);
  param=verifyNTF(crs.getConversionFromBase().getParameterValues());
  assertEquals("String_Node_Str",NonSI.DEGREE_ANGLE,param.getUnit());
  assertEquals("String_Node_Str",46.8,param.doubleValue(),STRICT);
}

Fixed version (ground truth):
/** 
 * Tests the parsing of a projected CRS using angular values in grades instead than degrees and in lengths in kilometres instead than metres.
 * @throws ParseException if the parsing failed.
 */
@Test @DependsOnMethod({"String_Node_Str","String_Node_Str"}) public void testProjectedWithGradUnits() throws ParseException {
  String wkt="String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  validateParisFranceII(parse(ProjectedCRS.class,wkt),0,true);
  wkt=wkt.replace("String_Node_Str","String_Node_Str");
  wkt=wkt.replace("String_Node_Str","String_Node_Str");
  wkt=wkt.replace("String_Node_Str","String_Node_Str");
  wkt=wkt.replace("String_Node_Str","String_Node_Str");
  newParser(Convention.WKT1_IGNORE_AXES);
  final ProjectedCRS crs=parse(ProjectedCRS.class,wkt);
  assertNameAndIdentifierEqual("String_Node_Str",0,crs);
  verifyProjectedCS(crs.getCoordinateSystem(),SI.KILOMETRE);
  final PrimeMeridian pm=verifyNTF(crs.getDatum(),true);
  assertEquals("String_Node_Str",NonSI.DEGREE_ANGLE,pm.getAngularUnit());
  assertEquals("String_Node_Str",2.33722917,pm.getGreenwichLongitude(),STRICT);
  final ParameterValue<?> param=verifyNTF(crs.getConversionFromBase().getParameterValues());
  assertEquals("String_Node_Str",NonSI.DEGREE_ANGLE,param.getUnit());
  assertEquals("String_Node_Str",46.8,param.doubleValue(),STRICT);
}