[GIT] ppl/ppl(pip): Test test07() in pipproblem2. cc shows a bug in PIP_Problem.

Module: ppl/ppl Branch: pip Commit: 9cc933834e49973804e0865ff034f5663b5c2648 URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=9cc933834e499...
Author: Enea Zaffanella zaffanella@cs.unipr.it Date: Tue Nov 24 13:06:50 2009 +0100
Test test07() in pipproblem2.cc shows a bug in PIP_Problem. Apparently, we cannot incrementally add new constraints to a PIP_Problem taht was already solved.
---
tests/PIP_Problem/pipproblem2.cc | 45 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 45 insertions(+), 0 deletions(-)
diff --git a/tests/PIP_Problem/pipproblem2.cc b/tests/PIP_Problem/pipproblem2.cc index a6b5b8c..cbadbbb 100644 --- a/tests/PIP_Problem/pipproblem2.cc +++ b/tests/PIP_Problem/pipproblem2.cc @@ -109,6 +109,48 @@ test04() { return ok; }
+bool +test05() { + Variable X(0); + PIP_Problem pip(1); + pip.add_constraint(X == -X); + + bool ok = (pip.solve() == OPTIMIZED_PIP_PROBLEM); + // Solving again a problem already optimized. + ok &= (pip.solve() == OPTIMIZED_PIP_PROBLEM); + + return ok; +} + +bool +test06() { + Variable X(0); + PIP_Problem pip(1); + pip.add_constraint(X == -X); + pip.add_constraint(X >= 1); + + bool ok = (pip.solve() == UNFEASIBLE_PIP_PROBLEM); + // Solving again a problem already detected to be unfeasible. + ok &= (pip.solve() == UNFEASIBLE_PIP_PROBLEM); + + return ok; +} + +bool +test07() { + Variable X(0); + PIP_Problem pip(1); + pip.add_constraint(X == -X); + bool ok = (pip.solve() == OPTIMIZED_PIP_PROBLEM); + + // Incrementally adding a constraint. + pip.add_constraint(X >= 1); + // Solving a problem that was optimized and now is unfeasible. + ok &= (pip.solve() == UNFEASIBLE_PIP_PROBLEM); + + return ok; +} + } // namespace
BEGIN_MAIN @@ -116,4 +158,7 @@ BEGIN_MAIN DO_TEST(test02); DO_TEST(test03); DO_TEST(test04); + DO_TEST(test05); + DO_TEST(test06); + DO_TEST_F(test07); END_MAIN
participants (1)
-
Enea Zaffanella