SO an IPv4 array is passed for this method, and if valid, a deep copy of the array is created in the instance variable "parts"
public void setParts(int[] data) { this.parts = new int[4]; if (data.length != 4){ parts = new int[]{0,0,0,0}; } else for (int i = 0; i <= data.length; i++) if ((data[i] < 0) || (data[i] > 255)) parts = new int[]{0,0,0,0}; else parts[i] = data[i]; }
- that’s all I have so far. What can i skip?
EDIT: one simple change made:
for (int i = 0; i <= data.length; i++)
to
for (int i = 0; i < data.length; i++)
And the JUnit test
public void testSetPartsIntArray() { correct1.setParts(new int[]{12, 14, 16, 18}); int[] a = correct1.getParts(); assertEquals(4, a.length); assertEquals(12, a[0]); assertEquals(14, a[1]); assertEquals(16, a[2]); assertEquals(18, a[3]); correct1.setParts(new int[]{-12, 14, 16, 18}); a = correct1.getParts(); assertEquals(4, a.length); assertEquals(0, a[0]); assertEquals(0, a[1]); assertEquals(0, a[2]); assertEquals(0, a[3]);
UNTIL works
assertEquals(0, a[1]);
What makes him stop there?