1. Engineering
  2. Computer Science
  3. hello i am working on a question that requires me...

Question: hello i am working on a question that requires me...

Question details

Hello, I am working on a question that requires me to return true if an item exists at sub-array at index idx1 and at index idx2 within that sub-array, false otherwise. I cannot use inbuilt libaries or hardcode it. I am attempting the question and I can't get the test to pass. 

 /**

     * 

     * @param idx1 index of sub-array

     * @param idx2 index of item within the sub-array 

     * @return true if an item exists at sub-array at index idx1 and 

     * at index idx2 within that sub-array, false otherwise

     */

    public boolean itemExistsAt(int idx1, int idx2) {

    int i = 0;

        int j = 0;

        while (i < idx1 && j < idx2)

        if (data[i] == data[j]) {

        i++;

        j++;

        if (j == idx2)

        return true;

        }

        else

        {

        i = i - j + 1;

        j = 0;

        }

return false;

    }

 

Tests

@BeforeEach

public void setUp() throws Exception {

currentMethodName = null;

 

aP = new Analytics(new int[][]{{30, 10, 40},

            {50, 20, 80},

            {10, 60, 30},

            {60, 60, 60}});

            

        aCR = new Analytics(new int[][]{{-30, 10, -40},

            {-50, 20, 0},

            {-10, 60, 30},

            {-60, 60, 60},

            {-20, -20, -20}});

 

        aD = new Analytics(new int[][]{{-30, 10, -40},

            {},

            {-10, 60},

            {-60},

            {-20, -20, -20, -20, -20},

            {-20, -20, -20, -20, -20},

            {-20, -20, -20, -20, -20},

            {-20, -20, -20, -20, -20},

            {-20, -20, -20, -20, -20},

            {-20, -20, -20, -20, -20},

            {-20, -20, -20, -20, -20}});

 

        aHD = new Analytics(new int[][]{{-30, 10, -40},

            {},

            {-10, 60},

            {-60},

            {-20, -20, -20, -20, -20},

            {-20, -20},

            {-20},

            {},

            {50},

            {10, 30, 20}});

        

@Test @Order(9) @Graded(description="testItemExistsAtP", marks=2.5)

public void testItemExistsAtP() {

assertFalse(aP.itemExistsAt(-1, 0));

assertFalse(aP.itemExistsAt(0, -1));

for(int i=0; i < 3; i++) {

assertTrue(aP.itemExistsAt(i, 0));

assertTrue(aP.itemExistsAt(i, 1));

assertTrue(aP.itemExistsAt(i, 2));

}

assertFalse(aP.itemExistsAt(4, 0));

assertFalse(aP.itemExistsAt(0, 3));

assertFalse(aP.itemExistsAt(0, 3 + (int)(Math.random()*1000)));

currentMethodName = new Throwable().getStackTrace()[0].getMethodName();

}

 

@Test @Order(10) @Graded(description="testItemExistsAtCR", marks=2.5)

public void testItemExistsAtCR() {

testItemExistsAtP();

assertFalse(aCR.itemExistsAt(-1, 0));

assertFalse(aCR.itemExistsAt(0, -1));

for(int i=0; i < 4; i++) {

assertTrue(aCR.itemExistsAt(i, 0));

assertTrue(aCR.itemExistsAt(i, 1));

assertTrue(aCR.itemExistsAt(i, 2));

}

assertFalse(aCR.itemExistsAt(5, 0));

assertFalse(aCR.itemExistsAt(0, 4));

assertFalse(aCR.itemExistsAt(0, 4 + (int)(Math.random()*1000)));

currentMethodName = new Throwable().getStackTrace()[0].getMethodName();

}

 

@Test @Order(11) @Graded(description="testItemExistsAtD", marks=2.5)

public void testItemExistsAtD() {

testItemExistsAtCR();

assertFalse(aD.itemExistsAt(-1, 0));

assertFalse(aD.itemExistsAt(0, -1));

for(int i=0; i < 11; i++) {

for(int k=0; k < aD.data[i].length; k++) {

assertTrue(aD.itemExistsAt(i, k));

}

for(int k=aD.data[i].length; k < 20; k++) {

assertFalse(aD.itemExistsAt(i, k));

}

}

assertFalse(aD.itemExistsAt(11, 0));

assertFalse(aEmpty.itemExistsAt(10, 0));

currentMethodName = new Throwable().getStackTrace()[0].getMethodName();

}

 

@Test @Order(12) @Graded(description="testItemExistsAtHD", marks=2.5)

public void testItemExistsAtHD() {

testItemExistsAtD();

assertFalse(aHD.itemExistsAt(-1, 0));

assertFalse(aHD.itemExistsAt(0, -1));

for(int i=0; i < 10; i++) {

for(int k=0; k < aHD.data[i].length; k++) {

assertTrue(aHD.itemExistsAt(i, k));

}

for(int k=aHD.data[i].length; k < 20; k++) {

assertFalse(aHD.itemExistsAt(i, k));

}

}

assertFalse(aHD.itemExistsAt(10, 0));

currentMethodName = new Throwable().getStackTrace()[0].getMethodName();

}

 

Solution by an expert tutor
Blurred Solution
This question has been solved
Subscribe to see this solution