43 namespace Test {
namespace Int {
63 :
Test(
"NoOverlap::Int::2::"+
str(m)+
"::"+
str(w0)+
"::"+
str(h0),
69 int n = xy.
size() / 2;
70 for (
int i=0;
i<n;
i++) {
71 int xi=xy[2*
i+0], yi=xy[2*
i+1];
72 for (
int j=
i+1; j<n; j++) {
73 int xj=xy[2*j+0], yj=xy[2*j+1];
74 if (!((xi +
w[
i] <= xj) || (xj +
w[j] <= xi) ||
75 (yi +
h[
i] <= yj) || (yj +
h[j] <= yi)))
83 using namespace Gecode;
84 int n = xy.
size() / 2;
86 for (
int i=0;
i<n;
i++) {
87 x[
i]=xy[2*
i+0]; y[
i]=xy[2*
i+1];
102 :
Test(
"NoOverlap::Int::Opt::2::"+
str(m)+
"::"+
str(w0)+
"::"+
str(h0),
103 3*w0.
size(), 0, m-1),
w(w0),
h(h0) {}
106 int n = xyo.
size() / 3;
107 for (
int i=0;
i<n;
i++) {
108 int xi=xyo[3*
i+0], yi=xyo[3*
i+1];
110 for (
int j=
i+1; j<n; j++) {
111 int xj=xyo[3*j+0], yj=xyo[3*j+1];
113 if ((oi > 0) && (oj > 0) &&
114 !((xi +
w[
i] <= xj) || (xj +
w[j] <= xi) ||
115 (yi +
h[
i] <= yj) || (yj +
h[j] <= yi)))
123 using namespace Gecode;
124 int n = xyo.
size() / 3;
127 for (
int i=0;
i<n;
i++) {
128 x[
i]=xyo[3*
i+0]; y[
i]=xyo[3*
i+1];
129 o[
i]=
expr(home, xyo[3*
i+2] > 0);
140 :
Test(
"NoOverlap::Var::2::"+
str(m)+
"::"+
str(n), 4*n, 0, m) {}
143 int n = xwyh.
size() / 4;
144 for (
int i=0;
i<n;
i++) {
145 int xi=xwyh[4*
i+0], yi=xwyh[4*
i+2];
146 int wi=xwyh[4*
i+1], hi=xwyh[4*
i+3];
147 for (
int j=
i+1; j<n; j++) {
148 int xj=xwyh[4*j+0], yj=xwyh[4*j+2];
149 int wj=xwyh[4*j+1], hj=xwyh[4*j+3];
150 if (!((xi + wi <= xj) || (xj + wj <= xi) ||
151 (yi + hi <= yj) || (yj + hj <= yi)))
159 using namespace Gecode;
160 int n = xwyh.
size() / 4;
162 for (
int i=0;
i<n;
i++) {
163 x0[
i]=xwyh[4*
i+0];
w[
i]=xwyh[4*
i+1];
165 y0[
i]=xwyh[4*i+2];
h[
i]=xwyh[4*i+3];
166 y1[
i]=
expr(home, y0[i] +
h[i]);
177 :
Test(
"NoOverlap::Var::Opt::2::"+
str(m)+
"::"+
str(n), 5*n, 0, m) {
182 int n = xwyho.
size() / 5;
183 for (
int i=0;
i<n;
i++) {
184 int xi=xwyho[5*
i+0], yi=xwyho[5*
i+2];
185 int wi=xwyho[5*
i+1], hi=xwyho[5*
i+3];
187 for (
int j=
i+1; j<n; j++) {
188 int xj=xwyho[5*j+0], yj=xwyho[5*j+2];
189 int wj=xwyho[5*j+1], hj=xwyho[5*j+3];
191 if ((oi > 0) && (oj > 0) &&
192 !((xi + wi <= xj) || (xj + wj <= xi) ||
193 (yi + hi <= yj) || (yj + hj <= yi)))
201 using namespace Gecode;
202 int n = xwyho.
size() / 5;
205 for (
int i=0;
i<n;
i++) {
206 x0[
i]=xwyho[5*
i+0];
w[
i]=xwyho[5*
i+1];
208 y0[
i]=xwyho[5*i+2];
h[
i]=xwyho[5*i+3];
209 y1[
i]=
expr(home, y0[i] +
h[i]);
210 o[
i]=
expr(home, xwyho[5*i+4] > 0);
222 using namespace Gecode;
229 for (
int m=2;
m<3;
m++) {
230 (void)
new Int2(
m, s1, s1);
231 (void)
new Int2(
m, s2, s2);
232 (void)
new Int2(
m, s3, s3);
233 (void)
new Int2(
m, s2, s3);
234 (void)
new Int2(
m, s4, s4);
235 (void)
new Int2(
m, s4, s2);
240 (void)
new Var2(2, 2);
241 (void)
new Var2(3, 2);
242 (void)
new Var2(1, 3);