public static boolean cloneTaskTree() {
        Data data=new Data("SomeData");
        IDGenerator generator = new IDGenerator();
        TaskTree tree1 = new TaskTree(generator, data);
        TaskTree child1 = new TaskTree(generator, data);
        tree1.add(child1);
        TaskTree child2 = new TaskTree(generator, data);
        tree1.add(child2);
        TaskTree tree2;
        tree2=tree1.clone();
        if (tree1.getData()==tree2.getData()) return false;
        TaskTree[] trit1=tree1.getChildren();
        TaskTree[] trit2=tree2.getChildren();
        if (trit1.length!=trit2.length) return false;
        for(int i=0; i<trit1.length; i++)
        {
            if (trit1[i]==trit2[i]) return false;
            if (trit1[i].getData()==trit2[i].getData()) return false;
            if (!trit1[i].getData().equals(trit2[i].getData())) return false;
            //??? Test IDs
        }
        return true;
    }