[PPL-devel] [GIT] ppl/ppl(master): Corrected a few expected results in Powerset/maxmin1 .cc.
Enea Zaffanella
zaffanella at cs.unipr.it
Sat Aug 15 08:35:44 CEST 2009
Module: ppl/ppl
Branch: master
Commit: dfff7e13e8817970647c38289b1f4e8d94999ea2
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=dfff7e13e8817970647c38289b1f4e8d94999ea2
Author: Enea Zaffanella <zaffanella at cs.unipr.it>
Date: Sat Aug 15 08:10:19 2009 +0200
Corrected a few expected results in Powerset/maxmin1.cc.
This uncovered a bug in Pointset_Powerset methods maximize() and minimize(),
whereby we are returning true even for empty powersets.
---
tests/Octagonal_Shape/max_min1.cc | 1 -
tests/Polyhedron/max_min1.cc | 25 ++++++++++-
tests/Powerset/maxmin1.cc | 93 +++++++++++++++++++------------------
3 files changed, 72 insertions(+), 47 deletions(-)
diff --git a/tests/Octagonal_Shape/max_min1.cc b/tests/Octagonal_Shape/max_min1.cc
index c0915ac..4d87172 100644
--- a/tests/Octagonal_Shape/max_min1.cc
+++ b/tests/Octagonal_Shape/max_min1.cc
@@ -326,7 +326,6 @@ test09() {
bool
test10() {
-
TOctagonal_Shape oct(0);
print_constraints(oct, "*** oct ***");
diff --git a/tests/Polyhedron/max_min1.cc b/tests/Polyhedron/max_min1.cc
index c8da74b..8a73b99 100644
--- a/tests/Polyhedron/max_min1.cc
+++ b/tests/Polyhedron/max_min1.cc
@@ -132,7 +132,6 @@ test02() {
bool
test03() {
-
C_Polyhedron ph(0);
print_constraints(ph, "*** ph ***");
@@ -172,10 +171,34 @@ test03() {
return ok;
}
+bool
+test04() {
+ C_Polyhedron ph(2, EMPTY);
+
+ print_constraints(ph, "*** ph ***");
+
+ Coefficient num = 0;
+ Coefficient den = 0;
+ bool included = false;
+ Generator g(point());
+ Linear_Expression LE;
+ bool ok = !ph.maximize(LE, num, den, included, g)
+ && num == 0 && den == 0 && !included
+ && g.is_point()
+ && g.divisor() == 1;
+ ok = ok && !ph.minimize(LE, num, den, included, g)
+ && num == 0 && den == 0 && !included
+ && g.is_point()
+ && g.divisor() == 1;
+
+ return ok;
+}
+
} // namespace
BEGIN_MAIN
DO_TEST(test01);
DO_TEST_F8(test02);
DO_TEST(test03);
+ DO_TEST(test04);
END_MAIN
diff --git a/tests/Powerset/maxmin1.cc b/tests/Powerset/maxmin1.cc
index b1a351f..0973762 100644
--- a/tests/Powerset/maxmin1.cc
+++ b/tests/Powerset/maxmin1.cc
@@ -29,15 +29,15 @@ namespace {
bool
test01() {
Pointset_Powerset<C_Polyhedron> ps(0, EMPTY);
- Coefficient num;
- Coefficient den;
- bool included;
+ Coefficient num = 0;
+ Coefficient den = 0;
+ bool included = false;
Generator g(point());
Linear_Expression LE;
- bool ok = ps.maximize(LE, num, den, included)
- && num == 0 && den == 1 && !included;
- ok = ok && ps.maximize(LE, num, den, included, g)
- && num == 0 && den == 1 && !included
+ bool ok = !ps.maximize(LE, num, den, included)
+ && num == 0 && den == 0 && !included;
+ ok = ok && !ps.maximize(LE, num, den, included, g)
+ && num == 0 && den == 0 && !included
&& g.is_point()
&& g.divisor() == 1;
@@ -69,9 +69,9 @@ test02() {
Constraint_System cs;
Linear_Expression LE = x;
- Coefficient max_n;
- Coefficient max_d;
- bool max_included;
+ Coefficient max_n = 0;
+ Coefficient max_d = 0;
+ bool max_included = false;
Generator max_g(point());
Pointset_Powerset<NNC_Polyhedron> ps(1, EMPTY);
@@ -123,9 +123,9 @@ test03() {
Constraint_System cs;
Linear_Expression LE = 9*x + y;
- Coefficient num;
- Coefficient den;
- bool included;
+ Coefficient num = 0;
+ Coefficient den = 0;
+ bool included = false;
Generator g(point());
Pointset_Powerset<C_Polyhedron> ps(2, EMPTY);
@@ -148,7 +148,6 @@ test03() {
print_generator(g);
nout << endl;
-
if (!ok)
return false;
@@ -180,16 +179,16 @@ test04() {
Variable x(0);
Linear_Expression LE = x;
- Coefficient num;
- Coefficient den;
- bool included;
+ Coefficient num = 0;
+ Coefficient den = 0;
+ bool included = false;
Generator g(point());
Pointset_Powerset<C_Polyhedron> ps(1, EMPTY);
- bool ok = ps.maximize(LE, num, den, included)
- && num == 0 && den == 1 && !included;
- ok = ok && ps.maximize(LE, num, den, included, g)
- && num == 0 && den == 1 && !included
+ bool ok = !ps.maximize(LE, num, den, included)
+ && num == 0 && den == 0 && !included;
+ ok = ok && !ps.maximize(LE, num, den, included, g)
+ && num == 0 && den == 0 && !included
&& g.is_point()
&& g.divisor() == 1;
@@ -197,7 +196,10 @@ test04() {
return false;
ps.add_disjunct(C_Polyhedron(1));
- ok = !ps.maximize(LE, num, den, included, g);
+ ok = !ps.maximize(LE, num, den, included, g)
+ && num == 0 && den == 0 && !included
+ && g.is_point()
+ && g.divisor() == 1;
return ok;
}
@@ -206,16 +208,16 @@ test04() {
bool
test05() {
Linear_Expression LE;
- Coefficient num;
- Coefficient den;
- bool included;
+ Coefficient num = 0;
+ Coefficient den = 0;
+ bool included = false;
Generator g(point());
Pointset_Powerset<C_Polyhedron> ps(0, EMPTY);
- bool ok = ps.minimize(LE, num, den, included)
- && num == 0 && den == 1 && !included;
- ok = ok && ps.minimize(LE, num, den, included, g)
- && num == 0 && den == 1 && !included
+ bool ok = !ps.minimize(LE, num, den, included)
+ && num == 0 && den == 0 && !included;
+ ok = ok && !ps.minimize(LE, num, den, included, g)
+ && num == 0 && den == 0 && !included
&& g.is_point()
&& g.divisor() == 1;
@@ -247,9 +249,9 @@ test06() {
Constraint_System cs;
Linear_Expression LE = x;
- Coefficient min_n;
- Coefficient min_d;
- bool min_included;
+ Coefficient min_n = 0;
+ Coefficient min_d = 0;
+ bool min_included = false;
Generator min_g(point());
Pointset_Powerset<NNC_Polyhedron> ps(1, EMPTY);
@@ -302,9 +304,9 @@ test07() {
Constraint_System cs;
Linear_Expression LE = x + y;
- Coefficient num;
- Coefficient den;
- bool included;
+ Coefficient num = 0;
+ Coefficient den = 0;
+ bool included = false;
Generator g(point());
Pointset_Powerset<C_Polyhedron> ps(2, EMPTY);
@@ -327,7 +329,6 @@ test07() {
print_generator(g);
nout << endl;
-
if (!ok)
return false;
@@ -359,25 +360,27 @@ test08() {
Variable x(0);
Linear_Expression LE = x;
- Coefficient num;
- Coefficient den;
- bool included;
+ Coefficient num = 0;
+ Coefficient den = 0;
+ bool included = false;
Generator g(point());
Pointset_Powerset<C_Polyhedron> ps(1, EMPTY);
- bool ok = ps.minimize(LE, num, den, included)
- && num == 0 && den == 1 && !included;
- ok = ok && ps.minimize(LE, num, den, included, g)
- && num == 0 && den == 1 && !included
+ bool ok = !ps.minimize(LE, num, den, included)
+ && num == 0 && den == 0 && !included;
+ ok = ok && !ps.minimize(LE, num, den, included, g)
+ && num == 0 && den == 0 && !included
&& g.is_point()
&& g.divisor() == 1;
-
if (!ok)
return false;
ps.add_disjunct(C_Polyhedron(1));
- ok = !ps.minimize(LE, num, den, included, g);
+ ok = !ps.minimize(LE, num, den, included, g)
+ && num == 0 && den == 0 && !included
+ && g.is_point()
+ && g.divisor() == 1;
return ok;
}
More information about the PPL-devel
mailing list