abstract class Test {
void testSameEquals(int[] arr1, int[] arr2) {
if (arr1[0] == arr2[0] && arr1[0] == arr2[0]) {
}
}
void testMatrices(int[][][] arr1, int[][][] arr2) {
if (arr1[0][1][2] == arr1[0][1][3] &&
arr1[0][1][2] == arr1[0][1][3]) {
}
}
void testNotEquals(int[] arr1, int[] arr2) {
if (arr1[0] != arr2[0]) return;
if (arr1[0] == arr2[0]) {}
}
void testInvalidatingCall(int[] arr1, int[] arr2) {
if (arr1[0] != arr2[0]) return;
changeArray(arr1);
if (arr1[0] == arr2[0]) {}
}
abstract void changeArray(int[] array);
void testIndirectlyInvalidatingCall(int[] arr1, int[] arr2, int[][] arr3) {
arr3[0] = arr1;
if (arr1[0] != arr2[0]) return;
changeSubArray(arr3);
if (arr1[0] == arr2[0]) {}
}
abstract void changeSubArray(int[][] array);
void testAssigning(int[] arr1, int j) {
arr1[0] = j;
if (arr1[0] == j) { }
}
void testReassigning(int[] arr1) {
arr1[0] = 1;
arr1[1] = 3;
if (arr1[0] == 1) { }
for (int i = 0; i < arr1.length; i++) {
arr1[i] = 2;
}
if (arr1[0] == 1) { }
}
}