Revision: 475
http://svn.sourceforge.net/javabdd/?rev=475&view=rev
Author: joewhaley
Date: 2006-12-05 02:59:01 -0800 (Tue, 05 Dec 2006)
Log Message:
-----------
Added random relprod test.
Modified Paths:
--------------
trunk/JavaBDD_tests/bdd/IteratorTests.java
Modified: trunk/JavaBDD_tests/bdd/IteratorTests.java
===================================================================
--- trunk/JavaBDD_tests/bdd/IteratorTests.java 2006-12-05 10:58:16 UTC (rev 474)
+++ trunk/JavaBDD_tests/bdd/IteratorTests.java 2006-12-05 10:59:01 UTC (rev 475)
@@ -13,6 +13,7 @@
import net.sf.javabdd.BDDDomain;
import net.sf.javabdd.BDDFactory;
import net.sf.javabdd.BDDVarSet;
+import net.sf.javabdd.TestBDDFactory;
/**
* IteratorTests
@@ -21,6 +22,8 @@
* @version $Id$
*/
public class IteratorTests extends BDDTestCase {
+ static Random random = new Random(1238);
+
public static void main(String[] args) {
junit.textui.TestRunner.run(IteratorTests.class);
}
@@ -84,8 +87,6 @@
}
}
- static Random random = new Random(1234);
-
static BDD randomBDD(BDDFactory f) {
BDD result = f.zero();
for (int i = 0; i < f.varNum(); ++i) {
@@ -100,6 +101,15 @@
return result;
}
+ static BDDVarSet randomBDDVarSet(BDDFactory f) {
+ BDDVarSet s = f.emptySet();
+ for (int i = 0; i < f.varNum(); ++i) {
+ if (random.nextBoolean())
+ s.unionWith(i);
+ }
+ return s;
+ }
+
static BDD betterRandomBDD(BDDFactory f) {
// Use a random truth table.
byte[] bytes = new byte[(1 << f.varNum()) / 8 + 1];
@@ -153,6 +163,25 @@
}
}
+ public void testRandomRelprod() {
+ System.setProperty("bdd1", "zdd");
+ System.setProperty("bdd2", "j");
+ BDDFactory bdd = TestBDDFactory.init(10000, 1000);
+ bdd.setVarNum(5);
+ for (int i = 0; i < 1000; ++i) {
+ BDD b = betterRandomBDD(bdd);
+ BDD c = betterRandomBDD(bdd);
+ BDDVarSet d = randomBDDVarSet(bdd);
+ BDD e = b.relprod(c, d);
+
+ BDD f = b.and(c);
+ BDD g = f.exist(d);
+ Assert.assertEquals(g, e);
+
+ b.free(); c.free(); d.free(); e.free(); f.free(); g.free();
+ }
+ }
+
public void testRandomIterator() {
reset();
Assert.assertTrue(hasNext());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|