Beispiel #1
0
def test_load_dddmp():
    # small sample
    fname = 'sample0.txt'
    bdd = load(fname)
    n = len(bdd)
    n_vars = len(bdd.ordering)
    assert n == 5, n
    assert n_vars == 3, n_vars
    assert bdd.roots == {-5}, bdd.roots
    root = -5
    u = bdd.add_expr('! ( (a & (b |c)) | (!a & (b | !c)) )')
    assert u == root, (u, root)
    # larger sample
    fname = 'sample1.txt'
    bdd = load(fname)
    n = len(bdd)
    n_vars = len(bdd.ordering)
    assert n == 16, n
    assert n_vars == 10, n_vars
    assert bdd.roots == {6, -13, -16}
    varnames = {'G0', 'G1', 'G2', 'G3', 'G5', 'G6',
                'G7', 'TMP1', 'TMP2', 'TMP3'}
    bddvars = set(bdd.ordering)
    assert bddvars == varnames, bddvars
    assert bdd.assert_consistent()
Beispiel #2
0
def test_load_dddmp():
    # small sample
    fname = 'sample0.dddmp'
    bdd = load(fname)
    n = len(bdd)
    n_vars = len(bdd.vars)
    assert n == 5, n
    assert n_vars == 3, n_vars
    assert bdd.roots == {-5}, bdd.roots
    root = -5
    u = bdd.add_expr('~ ( (a /\ (b \/ c)) \/ (~ a /\ (b \/ ~ c)) )')
    assert u == root, (u, root)
    # larger sample
    fname = 'sample1.dddmp'
    bdd = load(fname)
    n = len(bdd)
    n_vars = len(bdd.vars)
    assert n == 16, n
    assert n_vars == 10, n_vars
    assert bdd.roots == {6, -13, -16}
    varnames = {'G0', 'G1', 'G2', 'G3', 'G5', 'G6',
                'G7', 'TMP1', 'TMP2', 'TMP3'}
    bddvars = set(bdd.vars)
    assert bddvars == varnames, bddvars
    assert bdd.assert_consistent()
Beispiel #3
0
def test_load_dddmp():
    # small sample
    fname = 'sample0.txt'
    bdd = load(fname)
    n = len(bdd)
    n_vars = len(bdd.ordering)
    assert n == 5, n
    assert n_vars == 3, n_vars
    assert bdd.roots == {-5}, bdd.roots
    root = -5
    u = bdd.add_expr('! ( (a & (b |c)) | (!a & (b | !c)) )')
    assert u == root, (u, root)
    # larger sample
    fname = 'sample1.txt'
    bdd = load(fname)
    n = len(bdd)
    n_vars = len(bdd.ordering)
    assert n == 16, n
    assert n_vars == 10, n_vars
    assert bdd.roots == {6, -13, -16}
    varnames = {
        'G0', 'G1', 'G2', 'G3', 'G5', 'G6', 'G7', 'TMP1', 'TMP2', 'TMP3'
    }
    bddvars = set(bdd.ordering)
    assert bddvars == varnames, bddvars
    assert bdd.assert_consistent()
Beispiel #4
0
def test_sample3():
    # x /\ y
    # where x, y are at levels 1, 0
    # nodes are labeled with var names
    fname = 'sample3.dddmp'
    bdd = load(fname)
    n = len(bdd)
    assert n == 3, n
    n_vars = len(bdd.vars)
    assert n_vars == 2, n_vars
    assert bdd.roots == {3}, bdd.roots
    root = 3
    u = bdd.add_expr('x /\ y')
    assert root == u, u
Beispiel #5
0
def test_dump_with_cudd_load_with_dddmp():
    from dd import cudd
    fname = 'foo.dddmp'
    # dump
    bdd = cudd.BDD()
    bdd.declare('y', 'x')
    u = bdd.add_expr('x /\ y')
    bdd.dump(fname, [u])
    # load
    bdd = load(fname)
    print(bdd.roots)
    u, = bdd.roots
    u_ = bdd.add_expr('x /\ y')
    assert u == u_, (u, u_)
    expr = bdd.to_expr(u)
    print(expr)
Beispiel #6
0
def test_sample2():
    # x /\ y
    # where x, y have indices 0, 1
    fname = 'sample2.dddmp'
    bdd = load(fname)
    n = len(bdd)
    assert n == 3, n
    n_vars = len(bdd.vars)
    assert n_vars == 2, n_vars
    assert bdd.roots == {3}, bdd.roots
    root = 3
    i, v, w = bdd.succ(root)
    assert i == 0, i
    assert v == -1, v
    i, v, w = bdd.succ(w)
    assert i == 1, i
    assert v == -1, v
    assert w == 1, w
    # overwrite indices with strings
    bdd.vars = dict(x=0, y=1)
    u = bdd.add_expr('x /\ y')
    assert u == root, u