40 namespace Test {
namespace Int {
58 :
Test(
"Count::Int::Int::"+
str(irt0),4,-2,2), irt(irt0) {}
62 for (
int i=x.
size();
i--; )
81 :
Test(
"Count::Set::Int::"+
str(irt0),4,-2,2), irt(irt0) {}
85 for (
int i=x.
size();
i--; )
86 if ((x[
i] >= -1) && (x[
i] <= 1))
105 :
Test(
"Count::Int::Int::Dup::"+
str(irt0),4,-2,2), irt(irt0) {}
109 for (
int i=x.
size();
i--; )
117 for (
int i=x.
size();
i--; )
131 :
Test(
"Count::Int::Var::"+
str(irt0),5,-2,2), irt(irt0) {}
135 for (
int i=0;
i<4;
i++)
138 return cmp(m,irt,x[4]);
143 for (
int i=0;
i<4;
i++)
157 :
Test(
"Count::Set::Var::"+
str(irt0),5,-2,2), irt(irt0) {}
161 for (
int i=0;
i<4;
i++)
162 if ((x[
i] >= -1) && (x[
i] <= 1))
164 return cmp(m,irt,x[4]);
169 for (
int i=0;
i<4;
i++)
186 :
Test(
"Count::IntArray::Int::"+
str(irt0),5,-2,2), irt(irt0) {}
190 for (
int i=0;
i<4;
i++)
198 for (
int i=0;
i<4;
i++)
212 :
Test(
"Count::IntArray::Var::"+
str(irt0),5,-2,2), irt(irt0) {}
216 for (
int i=0;
i<4;
i++)
219 return cmp(m,irt,x[4]);
224 for (
int i=0;
i<4;
i++)
238 :
Test(
"Count::Int::Var::Shared::"+
str(irt0),4,-2,2), irt(irt0) {}
242 for (
int i=0;
i<4;
i++)
245 return cmp(m,irt,x[2]);
261 :
Test(
"Count::Var::Var::"+
str(irt0)+
"::"+
str(ipl),5,-2,2,false,ipl),
268 for (
int i=0;
i<3;
i++)
271 return cmp(m,irt,x[4]);
276 for (
int i=0;
i<3;
i++)
290 :
Test(
"Count::Var::Int::"+
str(irt0)+
"::"+
str(ipl),4,-2,2,false,ipl),
297 for (
int i=0;
i<3;
i++)
305 for (
int i=0;
i<3;
i++)
319 :
Test(
"Count::Var::Var::Shared::A::"+
str(irt0),5,-2,2), irt(irt0) {}
323 for (
int i=0;
i<4;
i++)
326 return cmp(m,irt,x[4]);
331 for (
int i=0;
i<4;
i++)
345 :
Test(
"Count::Var::Var::Shared::B::"+
str(irt0),5,-2,2), irt(irt0) {}
349 for (
int i=0;
i<4;
i++)
352 return cmp(m,irt,x[3]);
357 for (
int i=0;
i<4;
i++)
371 :
Test(
"Count::Var::Var::Shared::C::"+
str(irt0),4,-2,2), irt(irt0) {}
375 for (
int i=0;
i<4;
i++)
378 return cmp(m,irt,x[3]);
392 (void)
new IntInt(irts.irt());
393 (void)
new SetInt(irts.irt());
395 (void)
new IntVar(irts.irt());
396 (void)
new SetVar(irts.irt());
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
VarVar(Gecode::IntRelType irt0, Gecode::IntPropLevel ipl)
Create and register test.
Test number of equal variables equal to integer variable with sharing
IntArrayVar(Gecode::IntRelType irt0)
Create and register test.
VarVarSharedA(Gecode::IntRelType irt0)
Create and register test.
static std::string str(Gecode::IntPropLevel ipl)
Map integer propagation level to string.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
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
Gecode::IntRelType irt
Integer relation type to propagate.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
int size(void) const
Return size of array (number of elements)
void count(Home home, const IntVarArgs &x, int n, IntRelType irt, int m, IntPropLevel)
Post propagator for .
Test number of several equal integers equal to integer
int size(void) const
Return number of variables.
Gecode::IntRelType irt
Integer relation type to propagate.
static bool cmp(T x, Gecode::IntRelType r, T y)
Compare x and y with respect to r.
Test number of integers contained in an integer set equal to integer
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual bool solution(const Assignment &x) const
Test whether x is solution
Test number of equal integers equal to integer
Test number of equal variables equal to integer variable with sharing
VarVarSharedC(Gecode::IntRelType irt0)
Create and register test.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
Test number of several equal integers equal to integer variable
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual bool solution(const Assignment &x) const
Test whether x is solution
Test number of equal variables equal to integer
ConTestLevel contest
Whether to test for certain consistency.
Gecode::IntArgs ints(4, 1, 0, 3, 2)
Gecode::IntRelType irt
Integer relation type to propagate.
Gecode::IntRelType irt
Integer relation type to propagate.
SetVar(Gecode::IntRelType irt0)
Create and register test.
virtual bool solution(const Assignment &x) const
Test whether x is solution
Gecode::IntArgs i(4, 1, 2, 3, 4)
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.
Help class to create and register tests.
virtual bool solution(const Assignment &x) const
Test whether x is solution
Create(void)
Perform creation and registration.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
IntRelType
Relation types for integers.
IntVarShared(Gecode::IntRelType irt0)
Create and register test.
Gecode::IntRelType irt
Integer relation type to propagate.
IntIntDup(Gecode::IntRelType irt0)
Create and register test.
Iterator for integer relation types.
virtual bool solution(const Assignment &x) const
Test whether x is solution
Test number of equal integers equal to integer variable
Gecode::IntRelType irt
Integer relation type to propagate.
Gecode::IntRelType irt
Integer relation type to propagate.
Gecode::IntRelType irt
Integer relation type to propagate.
IntArrayInt(Gecode::IntRelType irt0)
Create and register test.
Gecode::IntPropLevel ipl
Propagation level.
Passing integer variables.
Test number of integers contained in an integer set equal to integer variable
Passing integer arguments.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
IntPropLevel
Propagation levels for integer propagators.
virtual bool solution(const Assignment &x) const
Test whether x is solution
Post propagator for SetVar SetOpType SetVar y
virtual bool solution(const Assignment &x) const
Test whether x is solution
virtual bool solution(const Assignment &x) const
Test whether x is solution
Node * x
Pointer to corresponding Boolean expression node.
Test number of equal variables equal to integer variable
Base class for assignments
Gecode::IntRelType irt
Integer relation type to propagate.
Domain propagation Preferences: prefer speed or memory.
Gecode::IntRelType irt
Integer relation type to propagate.
Test number of equal integers equal to integer variable with sharing
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
Gecode::IntRelType irt
Integer relation type to propagate.
Gecode::IntRelType irt
Integer relation type to propagate.
virtual bool solution(const Assignment &x) const
Test whether x is solution
VarVarSharedB(Gecode::IntRelType irt0)
Create and register test.
Gecode::IntRelType irt
Integer relation type to propagate.
SetInt(Gecode::IntRelType irt0)
Create and register test.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
VarInt(Gecode::IntRelType irt0, Gecode::IntPropLevel ipl)
Create and register test.
IntVar(Gecode::IntRelType irt0)
Create and register test.
Test number of equal integers equal to integer with duplicate variables
IntInt(Gecode::IntRelType irt0)
Create and register test.
virtual void post(Gecode::Space &home, Gecode::IntVarArray &x)
Post constraint on x.
Test number of equal variables equal to integer variable with sharing