@Test
// tests deep copy of non-null objects in input
public void testMakeCopy4() throws Exception {

    int size = 5;
    Individual[] source = new Individual[size];
    for (int i = 0; i < size; i++){
        if (i == 2 || i == 4){
            source[i] = null;
        } else {
            source[i] = new SimpleIndividual(i, i, new SimplePhenotypeRepresentation(new double[]{1.0, 2.0, 3.0}));
        }
    }
    int birthday = 1;
    Individual[] copies = IndividualUtils.makeCopy(source, birthday);
    for (int i = 0; i < size; i++){
        if (i == 2 || i == 4){
            assertTrue(copies[i] == null);
        } else {
            assertNotSame(copies[i], source[i]);
            assertEquals(birthday, copies[i].getBirthday());
            assertNotSame(copies[i].getRepresentation(), source[i].getRepresentation());
        }
    }
    assertNotSame(copies, source);
}