42 using namespace Gecode;
44 namespace Test {
namespace Set {
55 static const int d1r[4][2] = {
56 {-4,-3},{-1,-1},{1,1},{3,5}
79 return s==(
unsigned int)x.
intval();
86 Card
_card(
"Int::Card");
109 Min
_min(
"Int::Min");
116 :
SetTest(t,1,ds_33,false,1) {}
120 return !(xr0() && xr0.
min()==x.
intval());
151 Max
_max(
"Int::Max");
158 :
SetTest(t,1,ds_33,false,1) {}
194 Elem
_elem(
"Int::Elem");
201 :
SetTest(t,1,ds_33,false,1) {}
224 :
SetTest(
"Int::Rel::"+str(srt0)+(inverse0 ?
"::i" :
""),
298 :
SetTest(
"Int::IntRel::"+Test::Int::Test::str(irt0)+
299 (inverse0 ?
"::i" :
""),1,ds_33,false,1)
310 if (xr.
val() != x.
intval())
return false;
313 if (xr.
val() == x.
intval())
return false;
368 while (elements[i]<
v.val()) i++;
369 assert(elements[i] ==
v.val());
384 int min = -10000,
int max = 10000)
401 const int el1v[] = {-3,-2,-1,0,1,2,3};
403 const int w1v[] = {1,-2,1,1,1,6,1};
407 const int w2v[] = {-1,-1,-1,10,-1,-1,-1};
412 const int w4v[] = {1,1,0,0,0,0,0};
421 :
SetTest(t,1,ds_33,false,3) {}
452 Match
_match(
"Int::Match");
461 :
SetTest(t,_ssize,d,false,_isize), ssize(_ssize), isize(_isize) {}
464 for (
int i=0;
i<isize;
i++) {
472 for (
int i=0;
i<ssize;
i++) {
475 if (
csv.val() < 0 ||
csv.val() >= isize)
return false;
476 if (x.
ints()[
csv.val()] !=
i)
return false;
488 ChannelInt
_channelint1(
"Int::Channel::Int::1", d2, 2, 3);
489 ChannelInt
_channelint2(
"Int::Channel::Int::2", d3, 3, 3);
498 :
SetTest(t,1,d,false,_isize), isize(_isize) {}
501 for (
int i=0;
i<isize;
i++) {
507 if (
csv.val() < 0 ||
csv.val() >= isize)
return false;
508 if (x.
ints()[
csv.val()] != 1)
return false;
509 for (; cur<
csv.val(); cur++)
510 if (x.
ints()[cur] != 0)
return false;
513 for (; cur<isize; cur++)
514 if (x.
ints()[cur] != 0)
return false;
520 for (
int i=y.
size();
i--;)