Program: 51321
Project: 51321
Buggy source:
public void testKeyExpressionCardinalityCache(){
  String storeDim1="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"+ "String_Node_Str"+ "String_Node_Str";
  String storeDim2="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"+ "String_Node_Str"+ "String_Node_Str";
  String salesCube1="String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  String salesCube2="String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  String query="String_Node_Str";
  String query1="String_Node_Str";
  String query2="String_Node_Str";
  String cardinalitySqlDerby1="String_Node_Str";
  String cardinalitySqlMySql1="String_Node_Str";
  String cardinalitySqlDerby2="String_Node_Str";
  String cardinalitySqlMySql2="String_Node_Str";
  SqlPattern[] patterns1=new SqlPattern[]{new SqlPattern(SqlPattern.Dialect.DERBY,cardinalitySqlDerby1,cardinalitySqlDerby1),new SqlPattern(SqlPattern.Dialect.MYSQL,cardinalitySqlMySql1,cardinalitySqlMySql1)};
  SqlPattern[] patterns2=new SqlPattern[]{new SqlPattern(SqlPattern.Dialect.DERBY,cardinalitySqlDerby2,cardinalitySqlDerby2),new SqlPattern(SqlPattern.Dialect.MYSQL,cardinalitySqlMySql2,cardinalitySqlMySql2)};
  TestContext testContext=TestContext.create(storeDim1 + storeDim2,salesCube1 + salesCube2,null,null,null);
  testContext.executeQuery(query);
  assertQuerySqlOrNot(testContext,query1,patterns1,true,false);
  assertQuerySqlOrNot(testContext,query2,patterns2,false,false);
}

Fixed version (ground truth):
public void testKeyExpressionCardinalityCache(){
  String storeDim1="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"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  String storeDim2="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"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  String salesCube1="String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  String salesCube2="String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  String query="String_Node_Str";
  String query1="String_Node_Str";
  String query2="String_Node_Str";
  String cardinalitySqlDerby1="String_Node_Str";
  String cardinalitySqlMySql1="String_Node_Str";
  String cardinalitySqlDerby2="String_Node_Str";
  String cardinalitySqlMySql2="String_Node_Str";
  SqlPattern[] patterns1=new SqlPattern[]{new SqlPattern(SqlPattern.Dialect.DERBY,cardinalitySqlDerby1,cardinalitySqlDerby1),new SqlPattern(SqlPattern.Dialect.MYSQL,cardinalitySqlMySql1,cardinalitySqlMySql1)};
  SqlPattern[] patterns2=new SqlPattern[]{new SqlPattern(SqlPattern.Dialect.DERBY,cardinalitySqlDerby2,cardinalitySqlDerby2),new SqlPattern(SqlPattern.Dialect.MYSQL,cardinalitySqlMySql2,cardinalitySqlMySql2)};
  TestContext testContext=TestContext.create(storeDim1 + storeDim2,salesCube1 + salesCube2,null,null,null);
  testContext.executeQuery(query);
  assertQuerySqlOrNot(testContext,query1,patterns1,true,false);
  assertQuerySqlOrNot(testContext,query2,patterns2,false,false);
}