### Question:
PositionListIndex { @Override public PositionListIndex clone() { List<LongArrayList> newClusters = new ArrayList<>(); for (LongArrayList cluster : clusters) { newClusters.add(cluster.clone()); } PositionListIndex clone = new PositionListIndex(newClusters); clone.rawKeyError = this.rawKeyError; return clone; } PositionListIndex(List<LongArrayList> clusters);  PositionListIndex(); PositionListIndex intersect(PositionListIndex otherPLI); List<LongArrayList> getClusters(); @Override PositionListIndex clone(); @Override int hashCode(); @Override boolean equals(Object obj); Long2LongOpenHashMap asHashMap(); long size(); boolean isEmpty(); boolean isUnique(); long getRawKeyError();  }### Answer:
@Test public void testClone() { PositionListIndex pli = fixture.getFirstPLI(); PositionListIndex copy = pli.clone(); assertEquals(pli, copy); assertNotSame(pli, copy); for (int i = 0; i < pli.getClusters().size(); i++) { assertNotSame(pli.getClusters().get(i), copy.getClusters().get(i)); assertEquals(pli.getClusters().get(i), copy.getClusters().get(i)); } }