42 namespace Test {
namespace Int {
45 namespace MiniModelArithmetic {
57 :
Test(
"MiniModel::Mult::"+s,3,d) {
62 double d0 =
static_cast<double>(x[0]);
63 double d1 =
static_cast<double>(x[1]);
64 double d2 =
static_cast<double>(x[2]);
69 using namespace Gecode;
79 :
Test(
"MiniModel::Div::"+s,3,d) {
84 return (x[1] != 0) && (x[0] / x[1] == x[2]);
88 using namespace Gecode;
98 :
Test(
"MiniModel::Mod::"+s,3,d) {
103 return (x[1] != 0) && (x[0] % x[1] == x[2]);
107 using namespace Gecode;
117 :
Test(
"MiniModel::Plus::"+s,3,d) {
122 double d0 =
static_cast<double>(x[0]);
123 double d1 =
static_cast<double>(x[1]);
124 double d2 =
static_cast<double>(x[2]);
131 using namespace Gecode;
141 :
Test(
"MiniModel::Minus::"+s,3,d) {
146 double d0 =
static_cast<double>(x[0]);
147 double d1 =
static_cast<double>(x[1]);
148 double d2 =
static_cast<double>(x[2]);
155 using namespace Gecode;
165 :
Test(
"MiniModel::Sqr::"+s,2,d) {
170 double d0 =
static_cast<double>(x[0]);
171 double d1 =
static_cast<double>(x[1]);
176 using namespace Gecode;
186 :
Test(
"MiniModel::Sqrt::"+s,2,d) {
191 double d0 =
static_cast<double>(x[0]);
192 double d1 =
static_cast<double>(x[1]);
193 return (d0 >= 0) && (d0 >= d1*
d1) && (d0 < (d1+1)*(d1+1));
197 using namespace Gecode;
207 :
Test(
"MiniModel::Abs::"+
str(icl)+
"::"+s,
213 double d0 =
static_cast<double>(x[0]);
214 double d1 =
static_cast<double>(x[1]);
215 return (d0<0.0 ? -d0 : d0) ==
d1;
219 using namespace Gecode;
229 :
Test(
"MiniModel::Min::Bin::"+s,3,d) {
238 using namespace Gecode;
248 :
Test(
"MiniModel::Max::Bin::"+s,3,d) {
257 using namespace Gecode;
275 using namespace Gecode;
277 m[0]=x[0]; m[1]=x[1]; m[2]=x[2];
295 using namespace Gecode;
297 m[0]=x[0]; m[1]=x[1]; m[2]=x[2];