Assert.fail("iterator() contains these extras: "+s1_minus_s2+"\n"+
Assert.fail(bdd.getVersion()+": iterator() contains these extras: "+s1_minus_s2+"\n"+
    public void testRandomIterator() {        reset();        Assert.assertTrue(hasNext());        while (hasNext()) {            BDDFactory bdd = nextFactory();            bdd.setNodeTableSize(200000);            int domainSize = 1024;            BDDDomain[] ds = bdd.extDomain(new int[] { domainSize, domainSize });            BDDDomain d = ds[0]; d.setName("D0");            BDDDomain d2 = ds[1]; d2.setName("D1");            bdd.setVarOrder(bdd.makeVarOrdering(true, "D1xD0"));            Random r = new Random(667);            int times = 500;            int combine = 400;            boolean dual = true;            for (int i = 0; i < times; ++i) {                int count = r.nextInt(combine);                BDD b = bdd.zero();                for (int j = 0; j < count; ++j) {                    int varNum = r.nextInt(domainSize);                    BDD c = d.ithVar(varNum);                    if (dual) c.andWith(d2.ithVar(r.nextInt(domainSize)));                    b.orWith(c);                }                BDDVarSet var = d.set();                if (dual) var.unionWith(d2.set());                Iterator i1 = b.iterator(var);                Iterator i2 = new MyBDDIterator(b, var);                b.free();                Set s1 = new HashSet();                Set s2 = new HashSet();                while (i1.hasNext()) {                    BDD b1 = (BDD) i1.next();                    double sc = b1.satCount(var);                    Assert.assertEquals(1., sc, 0.0000001);                    s1.add(b1);                }                while (i2.hasNext()) {                    BDD b2 = (BDD) i2.next();                    double sc = b2.satCount(var);                     Assert.assertEquals(1., sc, 0.0000001);                    s2.add(b2);                }                var.free();                if (!s1.equals(s2)) {                    Set s1_minus_s2 = new HashSet(s1);                    s1_minus_s2.removeAll(s2);                    Set s2_minus_s1 = new HashSet(s2);                    s2_minus_s1.removeAll(s1);                    Assert.fail("iterator() contains these extras: "+s1_minus_s2+"\n"+                        "iterator2() contains these extras: "+s2_minus_s1);                }                for (Iterator k = s1.iterator(); k.hasNext(); ) {                    BDD q = (BDD) k.next();                    q.free();                }                for (Iterator k = s2.iterator(); k.hasNext(); ) {                    BDD q = (BDD) k.next();                    q.free();                }            }        }    }