PySDD 1.0.4__tar.gz → 1.0.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pysdd-1.0.4 → pysdd-1.0.5}/PKG-INFO +1 -1
- {pysdd-1.0.4 → pysdd-1.0.5}/PySDD.egg-info/PKG-INFO +1 -1
- {pysdd-1.0.4 → pysdd-1.0.5}/pyproject.toml +2 -1
- {pysdd-1.0.4 → pysdd-1.0.5}/tests/test_nnf.py +13 -18
- {pysdd-1.0.4 → pysdd-1.0.5}/LICENSE +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/PySDD.egg-info/SOURCES.txt +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/PySDD.egg-info/dependency_links.txt +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/PySDD.egg-info/entry_points.txt +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/PySDD.egg-info/requires.txt +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/PySDD.egg-info/top_level.txt +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/README.rst +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/__init__.py +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/__main__.py +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/cli.py +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/iterator.py +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/basic/computed.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/basic/count_and_size.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/basic/gc.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/basic/hash.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/basic/memory.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/basic/multiply.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/basic/nodes.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/basic/partitions.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/basic/references.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/basic/replace.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/basic/shadows.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/basic/sort.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/manager/copy.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/manager/interface.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/manager/manager.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/manager/stats.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/manager/variables.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/sdds/apply.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/sdds/bits.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/sdds/cardinality.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/sdds/condition.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/sdds/copy.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/sdds/count.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/sdds/essential_vars.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/sdds/exists.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/sdds/exists_multiple.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/sdds/exists_multiple_static.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/sdds/forall.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/sdds/io.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/sdds/model_count.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/sdds/rename_vars.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/sdds/size.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/sdds/wmc.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/util.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/verify.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/version.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/vtree_fragments/construction.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/vtree_fragments/moves.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/vtree_fragments/operations.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/vtree_operations/cartesian_product.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/vtree_operations/dissect.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/vtree_operations/limits.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/vtree_operations/op_left_rotate.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/vtree_operations/op_right_rotate.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/vtree_operations/op_swap.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/vtree_operations/rollback.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/vtree_operations/split.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/vtree_search/auto.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/vtree_search/search.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/vtree_search/state.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/vtrees/compare.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/vtrees/edit.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/vtrees/io.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/vtrees/maps.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/vtrees/moves.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/vtrees/static.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/libsdd-2.0/src/vtrees/vtree.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/sdd-2.0/src/fnf/compiler.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/sdd-2.0/src/fnf/fnf.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/sdd-2.0/src/fnf/io.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/lib/sdd-2.0/src/fnf/utils.c +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/sdd.pyx +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/util.py +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/pysdd/wmcstochastic.py +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/setup.cfg +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/tests/test_iterator.py +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/tests/test_minimize.py +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/tests/test_psdd.py +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/tests/test_util.py +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/tests/test_vtree.py +0 -0
- {pysdd-1.0.4 → pysdd-1.0.5}/tests/test_wmcstochastic.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "PySDD"
|
|
7
|
-
version = "1.0.
|
|
7
|
+
version = "1.0.5"
|
|
8
8
|
description = "Sentential Decision Diagrams"
|
|
9
9
|
authors = [
|
|
10
10
|
{ name = "Wannes Meert", email = "wannes.meert@cs.kuleuven.be" },
|
|
@@ -116,6 +116,7 @@ include-dirs = [
|
|
|
116
116
|
environment = {CFLAGS="-O3 -DNDEBUG" }
|
|
117
117
|
test-requires = "pytest"
|
|
118
118
|
test-command = "pytest {project}/tests"
|
|
119
|
+
skip = "pp*"
|
|
119
120
|
|
|
120
121
|
[tool.cibuildwheel.windows]
|
|
121
122
|
environment = {CL = "/O2 /DNDEBUG"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
from pysdd.util import nnf_file_wmc, sdd_file_wmc, psdd_file_wmc
|
|
2
|
-
from pysdd.sdd import Fnf, Vtree, SddManager
|
|
3
2
|
from pysdd import cli
|
|
4
3
|
import sys
|
|
5
4
|
import os
|
|
6
5
|
import math
|
|
7
6
|
import logging
|
|
8
7
|
from pathlib import Path
|
|
9
|
-
import filecmp
|
|
10
8
|
|
|
11
9
|
|
|
12
10
|
logger = logging.getLogger("pysdd")
|
|
@@ -14,6 +12,13 @@ directory = None
|
|
|
14
12
|
counter = 0
|
|
15
13
|
here = Path(__file__).parent
|
|
16
14
|
|
|
15
|
+
def file_contents_equal(path1, path2):
|
|
16
|
+
with open(path1) as f1:
|
|
17
|
+
lines1 = [l.strip() for l in f1.readlines()]
|
|
18
|
+
with open(path2) as f2:
|
|
19
|
+
lines2 = [l.strip() for l in f2.readlines()]
|
|
20
|
+
return lines1 == lines2
|
|
21
|
+
|
|
17
22
|
|
|
18
23
|
def test_nnf1():
|
|
19
24
|
weights = {
|
|
@@ -33,16 +38,6 @@ def test_nnf2():
|
|
|
33
38
|
assert wmc == 0.75
|
|
34
39
|
|
|
35
40
|
|
|
36
|
-
# def test_dnf1():
|
|
37
|
-
# dnf_filename = str(here / "rsrc" / "test.cnf.nnf")
|
|
38
|
-
# fnf = Fnf.from_dnf_file(bytes(dnf_filename, encoding='utf8'))
|
|
39
|
-
# # weights = read_weights(dnf_filename)
|
|
40
|
-
# vtree = Vtree(var_count=fnf.var_count)
|
|
41
|
-
# manager = SddManager.from_vtree(vtree)
|
|
42
|
-
# node = manager.fnf_to_sdd(fnf)
|
|
43
|
-
# print(node)
|
|
44
|
-
|
|
45
|
-
|
|
46
41
|
def test_sdd1():
|
|
47
42
|
weights = {
|
|
48
43
|
+3: 0.5, +2: 0.5, +1: 1,
|
|
@@ -70,13 +65,12 @@ def test_psdd1():
|
|
|
70
65
|
|
|
71
66
|
|
|
72
67
|
def test_dimacs1():
|
|
73
|
-
"""This test fails on Windows because of a mismatch between 64b and 32b data types."""
|
|
74
68
|
fn_dimacs = here / "rsrc" / "dimacs1.txt"
|
|
75
69
|
fn_vtree = here / "rsrc" / "dimacs1.vtree"
|
|
76
70
|
fn_vtree_sol = here / "rsrc" / "dimacs1_solution.vtree"
|
|
77
71
|
fn_sdd = here / "rsrc" / "dimacs1.sdd"
|
|
78
72
|
cli.main(["-c", str(fn_dimacs), "-W", str(fn_vtree), "-R", str(fn_sdd)])
|
|
79
|
-
assert
|
|
73
|
+
assert file_contents_equal(fn_vtree, fn_vtree_sol)
|
|
80
74
|
with fn_vtree.open("r") as fp:
|
|
81
75
|
print(fp.read())
|
|
82
76
|
|
|
@@ -87,8 +81,9 @@ if __name__ == "__main__":
|
|
|
87
81
|
logger.addHandler(sh)
|
|
88
82
|
directory = Path(os.environ.get('TESTDIR', Path(__file__).parent))
|
|
89
83
|
print(f"Saving files to {directory}")
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
84
|
+
test_nnf1()
|
|
85
|
+
test_nnf2()
|
|
86
|
+
test_sdd1()
|
|
87
|
+
test_sdd2()
|
|
88
|
+
test_psdd1()
|
|
94
89
|
test_dimacs1()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|