@Test
  public void testSet() throws Exception {
    List<String> mList = new ArrayList<>();
    mList.add("x");
    mList.add("y");
    ImmutableList<String> l = new ArrayBackedImmutableList<String>(mList);
    Assert.assertEquals(l.size(), 2);
    Assert.assertEquals("[x, x, y, y]", l.insert(1, l).toString());
    Assert.assertEquals("[x, y, x, y]", l.insert(2, l).toString());
    Assert.assertEquals("[x, y, x, y]", l.insert(0, l).toString());
    Assert.assertEquals("[, x, y]", l.insert(0, "").toString());
    Assert.assertEquals("[x, y, ]", l.insert(2, "").toString());

    // remember, the result of these insertes was never assigned.
    Assert.assertEquals(l.size(), 2);
  }