Program: 82275
Project: 82275
Buggy source:
public void testCanTriviallyCast(){
  assertTrue(typeOracle.canTriviallyCast(classB,classB));
  assertTrue(typeOracle.canTriviallyCast(classBSub,classB));
  assertFalse(typeOracle.canTriviallyCast(classB,classBSub));
  assertFalse(typeOracle.canTriviallyCast(classC,classA));
  assertFalse(typeOracle.canTriviallyCast(classA,classC));
  assertTrue(typeOracle.canTriviallyCast(classB,intfI));
  assertFalse(typeOracle.canTriviallyCast(intfI,classB));
  assertTrue(typeOracle.canTriviallyCast(classB,classObject));
  assertFalse(typeOracle.canTriviallyCast(classObject,classB));
  assertTrue(typeOracle.canTriviallyCast(classB,intfI));
  assertFalse(typeOracle.canTriviallyCast(intfI,classB));
  assertTrue(typeOracle.canTriviallyCast(classBnn,classB));
  assertFalse(typeOracle.canTriviallyCast(classB,classBnn));
  assertTrue(typeOracle.canTriviallyCast(typeNull,classB));
  assertFalse(typeOracle.canTriviallyCast(classB,typeNull));
  assertTrue(typeOracle.canTriviallyCast(arrayOfBSub,arrayOfB));
  assertFalse(typeOracle.canTriviallyCast(arrayOfB,arrayOfBSub));
  assertFalse(typeOracle.canTriviallyCast(arrayOfA,arrayOfB));
  assertFalse(typeOracle.canTriviallyCast(arrayOfB,arrayOfA));
  assertFalse(typeOracle.canTriviallyCast(arrayOfArrayOfB,arrayOfB));
  assertFalse(typeOracle.canTriviallyCast(arrayOfB,arrayOfArrayOfB));
  assertTrue(typeOracle.canTriviallyCast(arrayOfArrayOfB,arrayOfObject));
  assertFalse(typeOracle.canTriviallyCast(arrayOfObject,arrayOfArrayOfB));
  assertTrue(typeOracle.canTriviallyCast(classJso1,classJso2));
  assertTrue(typeOracle.canTriviallyCast(classJso2,classJso1));
  assertTrue(typeOracle.canTriviallyCast(classJso,classJso1));
  assertTrue(typeOracle.canTriviallyCast(classJso,classJso1));
  for (  JReferenceType type1 : severalTypes()) {
    for (    JReferenceType type2 : severalTypes()) {
      if (type1 != type2) {
        if (!isJso(type1) || !isJso(type2)) {
          assertFalse(typeOracle.canTriviallyCast(type1,type2) && typeOracle.canTriviallyCast(type2,type1));
        }
      }
    }
  }
}

Fixed version (ground truth):
public void testCanTriviallyCast(){
  assertTrue(typeOracle.canTriviallyCast(classB,classB));
  assertTrue(typeOracle.canTriviallyCast(classBSub,classB));
  assertFalse(typeOracle.canTriviallyCast(classB,classBSub));
  assertFalse(typeOracle.canTriviallyCast(classC,classA));
  assertFalse(typeOracle.canTriviallyCast(classA,classC));
  assertTrue(typeOracle.canTriviallyCast(classB,intfI));
  assertFalse(typeOracle.canTriviallyCast(intfI,classB));
  assertTrue(typeOracle.canTriviallyCast(classB,classObject));
  assertFalse(typeOracle.canTriviallyCast(classObject,classB));
  assertTrue(typeOracle.canTriviallyCast(classB,intfI));
  assertFalse(typeOracle.canTriviallyCast(intfI,classB));
  assertTrue(typeOracle.canTriviallyCast(classBnn,classB));
  assertFalse(typeOracle.canTriviallyCast(classB,classBnn));
  assertTrue(typeOracle.canTriviallyCast(typeNull,classB));
  assertFalse(typeOracle.canTriviallyCast(classB,typeNull));
  assertTrue(typeOracle.canTriviallyCast(arrayOfBSub,arrayOfB));
  assertFalse(typeOracle.canTriviallyCast(arrayOfB,arrayOfBSub));
  assertFalse(typeOracle.canTriviallyCast(arrayOfA,arrayOfB));
  assertFalse(typeOracle.canTriviallyCast(arrayOfB,arrayOfA));
  assertFalse(typeOracle.canTriviallyCast(arrayOfArrayOfB,arrayOfB));
  assertFalse(typeOracle.canTriviallyCast(arrayOfB,arrayOfArrayOfB));
  assertTrue(typeOracle.canTriviallyCast(arrayOfArrayOfB,arrayOfObject));
  assertFalse(typeOracle.canTriviallyCast(arrayOfObject,arrayOfArrayOfB));
  assertTrue(typeOracle.canTriviallyCast(classJso1,classJso2));
  assertTrue(typeOracle.canTriviallyCast(classJso2,classJso1));
  assertTrue(typeOracle.canTriviallyCast(classJso,classJso1));
  assertTrue(typeOracle.canTriviallyCast(classJso,classJso1));
  assertTrue(typeOracle.canTriviallyCast(arrayOfA,intfSerializable));
  assertFalse(typeOracle.canTriviallyCast(intfSerializable,arrayOfA));
  assertTrue(typeOracle.canTriviallyCast(arrayOfA,intfCloneable));
  assertFalse(typeOracle.canTriviallyCast(intfCloneable,arrayOfA));
  for (  JReferenceType type1 : severalTypes()) {
    for (    JReferenceType type2 : severalTypes()) {
      if (type1 != type2) {
        if (!isJso(type1) || !isJso(type2)) {
          assertFalse(typeOracle.canTriviallyCast(type1,type2) && typeOracle.canTriviallyCast(type2,type1));
        }
      }
    }
  }
}