From 93ce78ab3fd349ab5207c482f11685e2101d3736 Mon Sep 17 00:00:00 2001 From: bdemsky Date: Sun, 9 Jul 2017 19:26:37 -0700 Subject: [PATCH] Extend test case to call solver --- src/Backend/nodeedge.c | 11 ++++++++++- src/Backend/nodeedge.h | 2 +- src/Test/testcnf.c | 1 + 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/Backend/nodeedge.c b/src/Backend/nodeedge.c index a6d9dcc..340cdd0 100644 --- a/src/Backend/nodeedge.c +++ b/src/Backend/nodeedge.c @@ -19,7 +19,8 @@ CNF * createCNF() { cnf->enableMatching=true; allocInlineDefVectorEdge(& cnf->constraints); allocInlineDefVectorEdge(& cnf->args); - return cnf; + cnf->solver=allocIncrementalSolver(); + return cnf; } void deleteCNF(CNF * cnf) { @@ -30,6 +31,7 @@ void deleteCNF(CNF * cnf) { } deleteVectorArrayEdge(& cnf->constraints); deleteVectorArrayEdge(& cnf->args); + deleteIncrementalSolver(cnf->solver); ourfree(cnf->node_array); ourfree(cnf); } @@ -275,6 +277,13 @@ Edge constraintNewVar(CNF *cnf) { return e; } +void solveCNF(CNF *cnf) { + countPass(cnf); + convertPass(cnf, false); + solve(cnf->solver); +} + + void countPass(CNF *cnf) { uint numConstraints=getSizeVectorEdge(&cnf->constraints); VectorEdge *ve=allocDefVectorEdge(); diff --git a/src/Backend/nodeedge.h b/src/Backend/nodeedge.h index aff2c35..95ee530 100644 --- a/src/Backend/nodeedge.h +++ b/src/Backend/nodeedge.h @@ -191,7 +191,7 @@ Edge constraintNewVar(CNF *cnf); void countPass(CNF *cnf); void countConstraint(CNF *cnf, VectorEdge * stack, Edge e); void addConstraint(CNF *cnf, Edge constraint); - +void solveCNF(CNF *cnf); void convertPass(CNF *cnf, bool backtrackLit); diff --git a/src/Test/testcnf.c b/src/Test/testcnf.c index 68e2104..82f926d 100644 --- a/src/Test/testcnf.c +++ b/src/Test/testcnf.c @@ -12,5 +12,6 @@ int main(int numargs, char ** argv) { Edge iff3=constraintIFF(cnf, v3, nv1); Edge cand=constraintAND(cnf, 3, (Edge[]) {iff1, iff2, iff3}); addConstraint(cnf, cand); + solveCNF(cnf); deleteCNF(cnf); } -- 2.34.1