apron/apron-test.patch
2012-07-25 15:07:01 -06:00

336 lines
14 KiB
Diff

--- ./apronxx/apronxx_test.cc.orig 2009-12-22 06:33:22.000000000 -0700
+++ ./apronxx/apronxx_test.cc 2012-07-25 14:53:57.429804754 -0600
@@ -327,11 +327,13 @@ void test_coeff()
void test_dimchange()
{
+ ap_dim_t temp_array1[3] = {1,2,3};
+ ap_dim_t temp_array2[3] = {3,2,1};
cout << endl << "dimchange"
<< endl << "=========" << endl << endl;
- dimchange d = dimchange(1,2,(ap_dim_t[]){1,2,3});
+ dimchange d = dimchange(1,2,temp_array1);
cout << "from array 1 2 3: " << d;
- d = (ap_dim_t[]){3,2,1};
+ d = temp_array2;
cout << "from array 3 2 1: " << d;
cout << d.get_intdim() << " " << d.get_realdim() << " " << d.get(0) << " " << d[1] << endl;
try { d.get(3); assert(0); } catch (out_of_range& b) {}
@@ -362,15 +364,17 @@ void test_dimchange()
void test_dimperm()
{
+ ap_dim_t temp_array1[3] = {1,0,2};
+ ap_dim_t temp_array2[3] = {1,2,0};
cout << endl << "dimperm"
<< endl << "=======" << endl << endl;
dimperm i = id(3);
cout << "identity: " << i << endl;
- dimperm d = dimperm(3,(ap_dim_t[]){1,0,2});
+ dimperm d = dimperm(3,temp_array1);
cout << "from array 1 0 2: " << d;
d = id(3);
cout << "identity: " << d;
- d = (ap_dim_t[]){1,2,0};
+ d = temp_array2;
cout << "from array 1 2 0: " << d;
cout << d.size() << " " << d.get(0) << " " << d[1] << endl;
try { d.get(3); assert(0); } catch (out_of_range& b) {}
@@ -408,8 +412,10 @@ void test_dimperm()
void test_linexpr0()
{
- dimchange dim = dimchange(1,1,(ap_dim_t[]){0,2});
- dimperm perm = dimperm(3,(ap_dim_t[]){1,0,2});
+ ap_dim_t temp_array1[2] = {0,2};
+ ap_dim_t temp_array2[3] = {1,0,2};
+ dimchange dim = dimchange(1,1,temp_array1);
+ dimperm perm = dimperm(3,temp_array2);
dimperm perm2 = -perm;
// dense
@@ -554,6 +560,8 @@ void test_linexpr0()
void test_lincons0()
{
+ ap_dim_t temp_array1[2] = {0,2};
+ ap_dim_t temp_array2[3] = {1,0,2};
cout << endl << "lincons0"
<< endl << "========" << endl << endl;
coeff a[] = {1,2,3};
@@ -568,10 +576,10 @@ void test_lincons0()
lincons0 m = l;
assert(!l.is_unsat() && l.is_quasilinear() && l.is_linear());
cout << "copy 1x0 + 2x1 + 3x2 + 4 = 0: " << m << endl;
- lincons0 n = lincons0(m,dimchange(2,0,(ap_dim_t[]){0,2}));
+ lincons0 n = lincons0(m,dimchange(2,0,temp_array1));
assert(!n.is_unsat() && n.is_quasilinear() && n.is_linear());
cout << "dimchange 1x1 + 2x2 + 3x4 + 4 = 0: " << n << endl;
- lincons0 o = lincons0(m,dimperm(3,(ap_dim_t[]){1,0,2}));
+ lincons0 o = lincons0(m,dimperm(3,temp_array2));
assert(!o.is_unsat() && o.is_quasilinear() && o.is_linear());
cout << "dimperm 2x0 + 1x1 + 3x2 + 4 = 0: " << o << endl;
cout << "unsat: " << lincons0(unsat()) << endl;
@@ -582,9 +590,9 @@ void test_lincons0()
cout << "unsat: " << l << endl;
o = n = lincons0(AP_CONS_EQ,linexpr0(3,a,4));
cout << "chained copy 1x0 + 2x1 + 3x2 + 4 = 0: " << o << endl;
- o.add_dimensions(dimchange(2,0,(ap_dim_t[]){0,2}));
+ o.add_dimensions(dimchange(2,0,temp_array1));
cout << "dimchange 1x1 + 2x2 + 3x4 + 4 = 0: " << o << endl;
- n.permute_dimensions(dimperm(3,(ap_dim_t[]){1,0,2}));
+ n.permute_dimensions(dimperm(3,temp_array2));
cout << "dimperm 2x0 + 1x1 + 3x2 + 4 = 0: " << n << endl;
n.resize(2);
cout << "resize 2x0 + 1x1 + 4 = 0: " << n << endl;
@@ -620,6 +628,8 @@ void test_lincons0()
void test_lincons0_array()
{
+ ap_dim_t temp_array1[3] = {1,0,2};
+ ap_dim_t temp_array2[2] = {0,2};
cout << endl << "lincons0 array"
<< endl << "==============" << endl << endl;
coeff a[] = {1,2,3};
@@ -631,9 +641,9 @@ void test_lincons0_array()
cout << "construct: " << t << endl;
lincons0_array u = t;
cout << "copy: " << t << endl;
- lincons0_array v = lincons0_array(u,dimperm(3,(ap_dim_t[]){1,0,2}));
+ lincons0_array v = lincons0_array(u,dimperm(3,temp_array1));
cout << "permutation: " << v << endl;
- lincons0_array w = lincons0_array(u,dimchange(1,1,(ap_dim_t[]){0,2}));
+ lincons0_array w = lincons0_array(u,dimchange(1,1,temp_array2));
cout << "dim change: " << w << endl;
lincons0 ar[3] = { lincons0(AP_CONS_EQ,linexpr0(3,a,5)),
lincons0(AP_CONS_EQ,linexpr0(2,b,4)),
@@ -650,10 +660,10 @@ void test_lincons0_array()
cout << "from vector: " << x << endl;
w = v;
cout << "copy: " << w << endl;
- w.add_dimensions(dimchange(1,1,(ap_dim_t[]){0,2}));
+ w.add_dimensions(dimchange(1,1,temp_array2));
cout << "dim change: " << w << endl;
w = v;
- w.permute_dimensions(dimperm(3,(ap_dim_t[]){1,0,2}));
+ w.permute_dimensions(dimperm(3,temp_array1));
cout << "permutation: " << w << endl;
cout << "size: " << w.size() << endl;
assert(w.is_linear() && w.is_quasilinear());
@@ -675,6 +685,8 @@ void test_lincons0_array()
void test_generator0()
{
+ ap_dim_t temp_array1[2] = {0,2};
+ ap_dim_t temp_array2[3] = {1,0,2};
cout << endl << "generator0"
<< endl << "==========" << endl << endl;
coeff a[] = {1,2,3};
@@ -688,17 +700,17 @@ void test_generator0()
generator0 l = generator0(AP_GEN_VERTEX,linexpr0(3,a,4));
generator0 m = l;
cout << "copy vert 1x0 + 2x1 + 3x2 + 4: " << m << endl;
- generator0 n = generator0(m,dimchange(2,0,(ap_dim_t[]){0,2}));
+ generator0 n = generator0(m,dimchange(2,0,temp_array1));
cout << "dimchange vert 1x1 + 2x2 + 3x4 + 4: " << n << endl;
- generator0 o = generator0(m,dimperm(3,(ap_dim_t[]){1,0,2}));
+ generator0 o = generator0(m,dimperm(3,temp_array2));
cout << "dimperm vert 2x0 + 1x1 + 3x2 + 4: " << o << endl;
l = generator0(AP_GEN_RAY,linexpr0(4,b,5));
cout << "copy ray 4x0 + 3x1 + 2x2 + 1x3 + 5: " << l << endl;
o = n = generator0(AP_GEN_LINE,linexpr0(3,a,4));
cout << "chained copy line 1x0 + 2x1 + 3x2 + 4: " << o << endl;
- o.add_dimensions(dimchange(2,0,(ap_dim_t[]){0,2}));
+ o.add_dimensions(dimchange(2,0,temp_array1));
cout << "dimchange line 1x1 + 2x2 + 3x4 + 4: " << o << endl;
- n.permute_dimensions(dimperm(3,(ap_dim_t[]){1,0,2}));
+ n.permute_dimensions(dimperm(3,temp_array2));
cout << "dimperm line 2x0 + 1x1 + 3x2 + 4: " << n << endl;
n.resize(2);
cout << "resize line 2x0 + 1x1 + 4: " << n << endl;
@@ -723,6 +735,8 @@ void test_generator0()
void test_generator0_array()
{
+ ap_dim_t temp_array1[3] = {1,0,2};
+ ap_dim_t temp_array2[2] = {0,2};
cout << endl << "generator0 array"
<< endl << "================" << endl << endl;
coeff a[] = {1,2,3};
@@ -734,9 +748,9 @@ void test_generator0_array()
cout << "construct: " << t << endl;
generator0_array u = t;
cout << "copy: " << t << endl;
- generator0_array v = generator0_array(u,dimperm(3,(ap_dim_t[]){1,0,2}));
+ generator0_array v = generator0_array(u,dimperm(3,temp_array1));
cout << "permutation: " << v << endl;
- generator0_array w = generator0_array(u,dimchange(1,1,(ap_dim_t[]){0,2}));
+ generator0_array w = generator0_array(u,dimchange(1,1,temp_array2));
cout << "dim change: " << w << endl;
generator0 ar[3] = { generator0(AP_GEN_VERTEX,linexpr0(3,a,5)),
generator0(AP_GEN_VERTEX,linexpr0(2,b,4)),
@@ -753,10 +767,10 @@ void test_generator0_array()
cout << "from vector: " << x << endl;
w = v;
cout << "copy: " << w << endl;
- w.add_dimensions(dimchange(1,1,(ap_dim_t[]){0,2}));
+ w.add_dimensions(dimchange(1,1,temp_array2));
cout << "dim change: " << w << endl;
w = v;
- w.permute_dimensions(dimperm(3,(ap_dim_t[]){1,0,2}));
+ w.permute_dimensions(dimperm(3,temp_array1));
cout << "permutation: " << w << endl;
cout << "size: " << w.size() << endl;
w[0] = generator0(AP_GEN_LINE,linexpr0(2,b,88));
@@ -775,6 +789,8 @@ void test_generator0_array()
void test_texpr0()
{
+ ap_dim_t temp_array1[2] = {0,2};
+ ap_dim_t temp_array2[3] = {1,0,2};
cout << endl << "texpr0"
<< endl << "======" << endl << endl;
coeff a[] = {1,2,3};
@@ -857,8 +873,8 @@ void test_texpr0()
x = y = sqrt(dim(0)+1); cout << "chained assign sqrt(x0+1): " << x << "; " << y << endl;
// dimensions
- dimchange dimc = dimchange(1,1,(ap_dim_t[]){0,2});
- dimperm perm = dimperm(3,(ap_dim_t[]){1,0,2});
+ dimchange dimc = dimchange(1,1,temp_array1);
+ dimperm perm = dimperm(3,temp_array2);
x = dim(0)/dim(1);
cout << "add dim x1/x2: " << texpr0(x,dimc) << endl;
cout << "del dim ]-oo;+oo[/x0: " << texpr0(x,dimc,false) << endl;
@@ -1002,6 +1018,8 @@ void test_texpr0()
void test_tcons0()
{
+ ap_dim_t temp_array1[2] = {0,2};
+ ap_dim_t temp_array2[3] = {1,0,2};
cout << endl << "tcons0"
<< endl << "======" << endl << endl;
coeff a[] = {1,2,3};
@@ -1026,9 +1044,9 @@ void test_tcons0()
assert(!l.is_interval_cst() && !l.is_interval_linear() && l.is_interval_polynomial() &&
l.is_interval_polyfrac() && l.is_scalar());
cout << "copy x0 * x2 = 0: " << m << endl;
- tcons0 n = tcons0(m,dimchange(2,0,(ap_dim_t[]){0,2}));
+ tcons0 n = tcons0(m,dimchange(2,0,temp_array1));
cout << "dimchange x1 * x4 = 0: " << n << endl;
- tcons0 o = tcons0(m,dimperm(3,(ap_dim_t[]){1,0,2}));
+ tcons0 o = tcons0(m,dimperm(3,temp_array2));
cout << "dimperm x1 * x2 = 0: " << o << endl;
cout << "unsat: " << tcons0(unsat()) << endl;
l = tcons0(AP_CONS_SUPEQ,dim(0));
@@ -1040,12 +1058,12 @@ void test_tcons0()
l.is_interval_polyfrac() && l.is_scalar());
o = n = tcons0(AP_CONS_EQ,dim(0)*dim(2)+2);
cout << "chained copy x0 * x2 +2 = 0: " << o << endl;
- o.add_dimensions(dimchange(2,0,(ap_dim_t[]){0,2}));
+ o.add_dimensions(dimchange(2,0,temp_array1));
cout << "dimchange x1 * x4 + 2 = 0: " << o << endl;
o = tcons0(AP_CONS_EQ,dim(0)*dim(3)+2);
- o.remove_dimensions(dimchange(2,0,(ap_dim_t[]){0,2}));
+ o.remove_dimensions(dimchange(2,0,temp_array1));
cout << "dimchange ]-oo;+oo[ * x1 + 2 = 0: " << o << endl;
- n.permute_dimensions(dimperm(3,(ap_dim_t[]){1,0,2}));
+ n.permute_dimensions(dimperm(3,temp_array2));
cout << "dimperm x1 * x2 + 2 = 0: " << n << endl;
assert(n.get_constyp()==AP_CONS_EQ);
n.get_constyp()=AP_CONS_SUP;
@@ -1084,6 +1102,8 @@ void test_tcons0()
void test_tcons0_array()
{
+ ap_dim_t temp_array1[3] = {1,0,2};
+ ap_dim_t temp_array2[2] = {0,2};
cout << endl << "tcons0 array"
<< endl << "============" << endl << endl;
coeff a[] = {1,2,3};
@@ -1095,11 +1115,11 @@ void test_tcons0_array()
cout << "construct: " << t << endl;
tcons0_array u = t;
cout << "copy: " << t << endl;
- tcons0_array v = tcons0_array(u,dimperm(3,(ap_dim_t[]){1,0,2}));
+ tcons0_array v = tcons0_array(u,dimperm(3,temp_array1));
cout << "permutation: " << v << endl;
- tcons0_array w = tcons0_array(u,dimchange(1,1,(ap_dim_t[]){0,2}));
+ tcons0_array w = tcons0_array(u,dimchange(1,1,temp_array2));
cout << "add dim: " << w << endl;
- tcons0_array ww = tcons0_array(u,dimchange(1,1,(ap_dim_t[]){0,2}),false);
+ tcons0_array ww = tcons0_array(u,dimchange(1,1,temp_array2),false);
cout << "rem dim: " << ww << endl;
tcons0 ar[3] = { tcons0(AP_CONS_SUPEQ,dim(0)*dim(1)*dim(2)),
tcons0(AP_CONS_EQ,dim(0)%dim(1)),
@@ -1117,13 +1137,13 @@ void test_tcons0_array()
cout << "from vector: " << x << endl;
w = u;
cout << "copy: " << w << endl;
- w.add_dimensions(dimchange(1,1,(ap_dim_t[]){0,2}));
+ w.add_dimensions(dimchange(1,1,temp_array2));
cout << "add dim: " << w << endl;
w = u;
- w.remove_dimensions(dimchange(1,1,(ap_dim_t[]){0,2}));
+ w.remove_dimensions(dimchange(1,1,temp_array2));
cout << "del dim: " << w << endl;
w = u;
- w.permute_dimensions(dimperm(3,(ap_dim_t[]){1,0,2}));
+ w.permute_dimensions(dimperm(3,temp_array1));
cout << "permutation: " << w << endl;
cout << "size: " << w.size() << endl;
assert(!w.is_interval_linear());
@@ -1607,7 +1627,6 @@ void test_texpr1()
var af[] = { "f1","f3","f2" };
environment env(ai,2,af,2);
environment env2(ai,3,af,3);
- coeff a[] = {1,2,3};
// construction
cout << "construct 2: " << texpr1(env,2) << endl;
@@ -1806,7 +1825,6 @@ void test_tcons1_array()
var af[] = { "f1","f3","f2" };
environment env(ai,2,af,2);
environment env2(ai,3,af,3);
- coeff a[] = {1,2,3};
coeff b[] = {5,3};
tcons1_array t = tcons1_array(env,2);
try { cout << t; assert(0); } catch (invalid_argument& r) { cout << endl; }
@@ -1859,6 +1877,9 @@ void test_tcons1_array()
void test_abstract0(manager& m, manager& mm)
{
+ ap_dim_t temp_array1[3] = {1,2,3};
+ ap_dim_t temp_array2[5] = {0,1,3,4,2};
+ ap_dim_t temp_array3[3] = {0,1,2};
cout << "level 0" << endl << endl;
interval i[5] = {
@@ -2220,7 +2241,7 @@ void test_abstract0(manager& m, manager&
// dim change & permute
- dimchange dc = dimchange(1,2,(ap_dim_t[]){1,2,3});
+ dimchange dc = dimchange(1,2,temp_array1);
a1 = abstract0(m,2,3,ia);
add_dimensions(m,a2,a1,dc);
add_dimensions(m,a3,a1,dc,true);
@@ -2235,7 +2256,7 @@ void test_abstract0(manager& m, manager&
assert(a1==abstract0(m,2,3,ia));
cout << "remove dim: " << a1 << endl;
- dimperm dp = dimperm(5,(ap_dim_t[]){0,1,3,4,2});
+ dimperm dp = dimperm(5,temp_array2);
a1 = abstract0(m,2,3,ia);
permute_dimensions(m,a2,a1,dp);
a1.permute_dimensions(m,dp);
@@ -2243,7 +2264,7 @@ void test_abstract0(manager& m, manager&
cout << "permute dim: " << a1 << endl;
a1.permute_dimensions(m,-dp);
assert(a1==abstract0(m,2,3,ia));
- try { a1.permute_dimensions(m,dimperm(3,(ap_dim_t[]){0,1,2})); assert(0); }
+ try { a1.permute_dimensions(m,dimperm(3,temp_array3)); assert(0); }
catch (invalid_argument&c) {}
// expand fold