@Test
public void testClone() throws CloneNotSupportedException {

    Address addr = Address.root().add("one", "two", "three", "four", "five", "six");
    Address addr2 = addr.clone();
    assert addr2 != null;
    assert addr2 != addr; // clone worked, duplicated it, didn't just return the same ref
    assert addr2.equals(addr);
    assert addr2.hashCode() == addr.hashCode();
}