--- jsr166/src/test/tck/ArrayListTest.java 2017/03/11 17:33:32 1.5 +++ jsr166/src/test/tck/ArrayListTest.java 2017/08/04 03:43:44 1.6 @@ -6,6 +6,7 @@ */ import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import junit.framework.Test; @@ -34,4 +35,27 @@ public class ArrayListTest extends JSR16 CollectionTest.testSuite(new SubListImplementation())); } + /** + * A cloned list equals original + */ + public void testClone() throws Exception { + ArrayList x = new ArrayList<>(); + x.add(1); + x.add(2); + x.add(3); + ArrayList y = (ArrayList) x.clone(); + + assertNotSame(y, x); + assertEquals(x, y); + assertEquals(y, x); + assertEquals(x.size(), y.size()); + assertEquals(x.toString(), y.toString()); + assertTrue(Arrays.equals(x.toArray(), y.toArray())); + while (!x.isEmpty()) { + assertFalse(y.isEmpty()); + assertEquals(x.remove(0), y.remove(0)); + } + assertTrue(y.isEmpty()); + } + }