package jadx.tests.integration.loops;
import jadx.core.dex.nodes.ClassNode;
import jadx.tests.api.IntegrationTest;
import org.junit.Test;
import static jadx.tests.api.utils.JadxMatchers.containsOne;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
public class TestIfInLoop3 extends IntegrationTest {
public static class TestCls {
static boolean[][] occupied = new boolean[70][70];
static boolean placingStone = true;
private static boolean test(int xx, int yy) {
int[] extraArray = new int[]{10, 45, 50, 50, 20, 20};
if (extraArray != null && placingStone) {
for (int i = 0; i < extraArray.length; i += 2) {
int tX;
int tY;
if (yy % 2 == 0) {
if (extraArray[i + 1] % 2 == 0) {
tX = xx + extraArray[i];
} else {
tX = extraArray[i] + xx - 1;
}
tY = yy + extraArray[i + 1];
} else {
tX = xx + extraArray[i];
tY = yy + extraArray[i + 1];
}
if (tX < 0 || tY < 0 || tY % 2 != 0 && tX > 28 || tY > 70
|| occupied[tX][tY]) {
return false;
}
}
}
return true;
}
public void check() {
assertTrue(test(14, 2));
}
}
@Test
public void test() {
ClassNode cls = getClassNode(TestCls.class);
String code = cls.getCode().toString();
assertThat(code, containsOne("for (int i = 0; i < extraArray.length; i += 2) {"));
assertThat(code, containsOne("if (extraArray != null && placingStone) {"));
}
}