[PPL-devel] [GIT] ppl/ppl(master): Corrected/improved a few tests in BD_Shape/ frequency1.cc.
Enea Zaffanella
zaffanella at cs.unipr.it
Fri Mar 19 08:56:25 CET 2010
Module: ppl/ppl
Branch: master
Commit: 5c439aeac0c888387e97686f09a820e0cd3ea0e5
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=5c439aeac0c888387e97686f09a820e0cd3ea0e5
Author: Enea Zaffanella <zaffanella at cs.unipr.it>
Date: Fri Mar 19 08:55:40 2010 +0100
Corrected/improved a few tests in BD_Shape/frequency1.cc.
---
tests/BD_Shape/frequency1.cc | 51 ++++++++++++++++++++++++++++++++----------
1 files changed, 39 insertions(+), 12 deletions(-)
diff --git a/tests/BD_Shape/frequency1.cc b/tests/BD_Shape/frequency1.cc
index 8075fb6..7c420b6 100644
--- a/tests/BD_Shape/frequency1.cc
+++ b/tests/BD_Shape/frequency1.cc
@@ -46,7 +46,11 @@ test01() {
bool ok = (!bds1.frequency(A, num1, den1, valn1, vald1)
&& !bds2.frequency(A, num2, den2, valn2, vald2));
print_constraints(bds1, "*** bds1 ***");
+ nout << "num1 " << num1 << ", den1 " << den1 << endl;
+ nout << "valn1 " << valn1 << ", vald1 " << vald1 << endl;
print_constraints(bds2, "*** bds2 ***");
+ nout << "num2 " << num2 << ", den2 " << den2 << endl;
+ nout << "valn2 " << valn2 << ", vald2 " << vald2 << endl;
return ok;
}
@@ -66,11 +70,16 @@ test02() {
Coefficient den2;
Coefficient valn2;
Coefficient vald2;
- bool ok = (bds1.frequency(Linear_Expression(3), num1, den1, valn1, vald1)
+ Linear_Expression three(3);
+ bool ok = (bds1.frequency(three, num1, den1, valn1, vald1)
&& num1 == 0 && den1 == 1 && valn1 == 3 && vald1 == 1
- && !bds2.frequency(Linear_Expression(3), num2, den2, valn2, vald2));
+ && !bds2.frequency(three, num2, den2, valn2, vald2));
print_constraints(bds1, "*** bds1 ***");
+ nout << "num1 " << num1 << ", den1 " << den1 << endl;
+ nout << "valn1 " << valn1 << ", vald1 " << vald1 << endl;
print_constraints(bds2, "*** bds2 ***");
+ nout << "num2 " << num2 << ", den2 " << den2 << endl;
+ nout << "valn2 " << valn2 << ", vald2 " << vald2 << endl;
return ok;
}
@@ -90,6 +99,8 @@ test03() {
bool ok = (bds.frequency(Linear_Expression(A), num, den, valn, vald)
&& num == 0 && den == 1 && valn == 0 && vald == 1);
print_constraints(bds, "*** bds ***");
+ nout << "num " << num << ", den " << den << endl;
+ nout << "valn " << valn << ", vald " << vald << endl;
return ok;
}
@@ -108,6 +119,8 @@ test04() {
Coefficient vald;
bool ok = (!bds.frequency(Linear_Expression(A), num, den, valn, vald));
print_constraints(bds, "*** bds ***");
+ nout << "num " << num << ", den " << den << endl;
+ nout << "valn " << valn << ", vald " << vald << endl;
return ok;
}
@@ -127,6 +140,8 @@ test05() {
Coefficient vald;
bool ok = (!bds.frequency(Linear_Expression(B), num, den, valn, vald));
print_constraints(bds, "*** bds ***");
+ nout << "num " << num << ", den " << den << endl;
+ nout << "valn " << valn << ", vald " << vald << endl;
return ok;
}
@@ -137,7 +152,7 @@ test06() {
Variable B(1);
TBD_Shape bds(2);
- bds.add_constraint(2*A == 1);
+ bds.add_constraint(A == 1);
bds.add_constraint(B == 2);
Coefficient num;
@@ -145,8 +160,10 @@ test06() {
Coefficient valn;
Coefficient vald;
bool ok = (bds.frequency(Linear_Expression(A + B - 3), num, den, valn, vald)
- && num == 0 && den == 1 && valn == -1 && vald == 2);
+ && num == 0 && den == 1 && valn == 0 && vald == 1);
print_constraints(bds, "*** bds ***");
+ nout << "num " << num << ", den " << den << endl;
+ nout << "valn " << valn << ", vald " << vald << endl;
return ok;
}
@@ -166,6 +183,8 @@ test07() {
Coefficient vald;
bool ok = (!bds.frequency(Linear_Expression(A - B), num, den, valn, vald));
print_constraints(bds, "*** bds ***");
+ nout << "num " << num << ", den " << den << endl;
+ nout << "valn " << valn << ", vald " << vald << endl;
return ok;
}
@@ -177,8 +196,8 @@ test08() {
Variable C(2);
TBD_Shape bds(3);
- bds.add_constraint(2*A - 2*B == 1);
- bds.add_constraint(3*C == 2);
+ bds.add_constraint(2*A - 2*B == 2);
+ bds.add_constraint(3*C == 3);
bds.add_constraint(B <= 2);
Coefficient num;
@@ -187,8 +206,10 @@ test08() {
Coefficient vald;
bool ok = (bds.frequency(Linear_Expression(A - B + C + 1),
num, den, valn, vald)
- && num == 0 && den == 1 && valn == 13 && vald == 6);
+ && num == 0 && den == 1 && valn == 3 && vald == 1);
print_constraints(bds, "*** bds ***");
+ nout << "num " << num << ", den " << den << endl;
+ nout << "valn " << valn << ", vald " << vald << endl;
return ok;
}
@@ -200,18 +221,24 @@ test09() {
Variable C(2);
TBD_Shape bds(3);
- bds.add_constraint(2*A - 2*B == 1);
- bds.add_constraint(2*C == 1);
+ bds.add_constraint(4*A - 4*B == 1);
+ bds.add_constraint(3*C == 1);
bds.add_constraint(B <= 2);
Coefficient num;
Coefficient den;
Coefficient valn;
Coefficient vald;
- bool ok = (bds.frequency(Linear_Expression(A - B + C + 1),
- num, den, valn, vald)
- && num == 0 && den == 1 && valn == 2 && vald == 1);
+ bool discrete = bds.frequency(Linear_Expression(A - B),
+ num, den, valn, vald);
+ // If the shape is based on an integral coefficient type, then
+ // approximations will induce non discreteness of the linear expression.
+ bool ok = std::numeric_limits<TBD_Shape::coefficient_type_base>::is_integer
+ ? (!discrete && num == 0 && den == 0 && valn == 0 && vald == 0)
+ : (discrete && num == 0 && den == 1 && valn == 1 && vald == 4);
print_constraints(bds, "*** bds ***");
+ nout << "num " << num << ", den " << den << endl;
+ nout << "valn " << valn << ", vald " << vald << endl;
return ok;
}
More information about the PPL-devel
mailing list