40namespace Test {
namespace Int {
55 :
Test(
"GCC::Int::All::MinMax::"+
str(
ipl),4,-1,3,false,
ipl) {}
61 for (
int i=
x.
size(); i--; )
76 for (
int i=0; i<5; i++) {
77 values[i] = i-1; cards[i] = fixed;
80 count(home,
x, cards, values,
ipl);
89 :
Test(
"GCC::Int::All::MinMaxDef::"+
str(
ipl),4,0,3,false,
ipl) {}
95 for (
int i=
x.
size(); i--; )
109 for (
int i=0; i<4; i++) {
113 count(home,
x, cards,
ipl);
122 :
Test(
"GCC::Int::All::Max::"+
str(
ipl), 4, 1,2, false,
ipl) {}
128 for (
int i=
x.
size(); i--; )
130 if (
n[0] != 2 ||
n[1] != 2)
148 :
Test(
std::string(
"GCC::Int::Some::")+
149 (hole ?
"::Hole" :
"::Full")+
str(
ipl),4,1,4,false,
ipl) {}
155 for (
int i=
x.
size(); i--; )
157 if ((
n[0] < 2) || (
n[1] < 2) || (
n[2] > 0) || (
n[3] > 0))
173 cards[0]=fixed; cards[1]=fixed;
174 count(home,
x, cards, values,
ipl);
182 static const int n = 4;
191 for (
int i=0; i<
n; i++)
192 if ((
x[i] < 0) || (
x[i] > 2))
194 int* card =
new int[m];
195 for (
int i=0; i<m; i++) {
197 if ((
x[
n+i] < 0) || (
x[
n+i] > 2)) {
202 for (
int i=0; i<
n; i++)
204 for (
int i=0; i<m; i++)
205 if (card[i] !=
x[
n+i]) {
219 for (
int i=0; i<
n; i++)
221 for (
int i=0; i<m; i++)
223 count(home,
x, y,
ipl);
236 VarSome(std::string s,
int n0,
int min,
int max,
239 n0+(max-min)+1,min,max,false,
ipl)
250 int* card =
new int[m];
251 for (
int i=0; i<m; i++) {
253 if ((
x[
n+i] < 0) || (
x[
n+i] >
n)) {
258 for (
int i=0; i<
n; i++)
260 for (
int i=0; i<m; i++)
261 if (card[i] !=
x[
n+i]) {
281 for (
int i=0; i<
n; i++)
283 for (
int i=0; i<m; i++)
288 count(home,
x,y,values,
ipl);
303 (void)
new VarAll(ipls.ipl());
304 (void)
new VarSome(
"Small",2,-1,3,ipls.ipl());
305 (void)
new VarSome(
"Large",3,-1,4,ipls.ipl());
int n
Number of negative literals for node type.
Node * x
Pointer to corresponding Boolean expression node.
int size(void) const
Return size of array (number of elements)
Passing integer arguments.
int min(int i) const
Return minimum of range at position i.
Passing integer variables.
int size(void) const
Return size of array (number of elements)
Base class for assignments
Generate all assignments.
Help class to create and register tests.
Create(void)
Perform creation and registration.
Test for integer cardinality with max cardinality for all variables
IntAllMax(Gecode::IntPropLevel ipl)
Create and register test.
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
Test for integer cardinality with min and max for all variables
IntAllMinMaxDef(Gecode::IntPropLevel ipl)
Create and register test.
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
Test for integer cardinality with min and max for all variables
IntAllMinMax(Gecode::IntPropLevel ipl)
Create and register test.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
virtual bool solution(const Assignment &x) const
Test whether x is solution
Test for integer cardinality for some variables
virtual bool solution(const Assignment &x) const
Test whether x is solution
IntSome(Gecode::IntPropLevel ipl)
Create and register test.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
Test for variable cardinality for all cardinality values
virtual bool solution(const Assignment &x) const
Test whether x is solution
static const int n
Number of non-cardinality variables.
VarAll(Gecode::IntPropLevel ipl)
Create and register test.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &xy)
Post constraint on xy.
Test for variable cardinality for some cardinality values
int n
Number of non-cardinality variables.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &xy)
Post constraint on xy.
virtual Assignment * assignment(void) const
Create and register initial assignment.
virtual bool solution(const Assignment &x) const
Test whether x is solution
VarSome(std::string s, int n0, int min, int max, Gecode::IntPropLevel ipl)
Create and register test.
static const int randomArity
Arity beyond which to use randomized tests.
Iterator for simple integer propagation levels.
Generate random selection of assignments.
bool testsearch
Whether to perform search test.
Gecode::IntPropLevel ipl
Propagation level.
int arity
Number of variables.
static std::string str(Gecode::IntPropLevel ipl)
Map integer propagation level to string.
Gecode::IntSet dom
Domain of variables.
ConTestLevel contest
Whether to test for certain consistency.
IntPropLevel
Propagation levels for integer propagators.
Gecode toplevel namespace
void count(Home home, const IntVarArgs &x, int n, IntRelType irt, int m, IntPropLevel ipl=IPL_DEF)
Post propagator for .
@ CTL_NONE
No consistency-test.