source: git/Tst/Short/polybori_s.tst @ 1ebec3

spielwiese
Last change on this file since 1ebec3 was 42ea852, checked in by Oleksandr Motsak <motsak@…>, 11 years ago
Further incompatibilities with master! chg: Update 14.Jan.2013 (Tests regeneration/update due to master...) TODO: still missing commits from [master] (Interpreter...10912c588c406e6aab9dd2342c3d0c200096cb22 4b8a660ce83e9c109ec9eae1f413ab721fea2fd4)
  • Property mode set to 100644
File size: 8.8 KB
Line 
1LIB "tst.lib";
2tst_init();
3LIB "polybori.lib";
4
5///////////////////////////////////////////////////////////////////////////////
6
7//////////////// test for boolean_poly(poly,ring) and recursive_boolean_poly(poly,ring)
8
9"!!! Test: boolean_poly, recursive_boolean_poly !!!";
10
11ring r=2,x(1..4),lp;
12def br0=boolean_poly_ring(r);
13poly f=x(1)^2+2*x(2)*(x(3))-x(4)^3;
14"Singular Poly in char=2, x(1..4):";
15f;
16
17"Boolean Poly:";
18boolean_poly(f,br0);
19
20"Recursive Boolean Poly:";
21recursive_boolean_poly(f,br0);
22kill r;
23// --------------------------------------------------
24
25ring r=0,x(1..7),Dp;
26def br1=boolean_poly_ring(r);
27poly f=x(4)^3+2*x(7)+23*x(2)^2*x(6)^3-1;
28"Singular Poly in char=0, x(1..7):";
29f;
30
31"Boolean Poly:";
32boolean_poly(f,br1);
33
34"Recursive Boolean Poly:";
35recursive_boolean_poly(f,br1);
36kill r;
37
38// -------------------------------------------------
39ring r=0,(w,x,y,z),Dp;
40def br2=boolean_poly_ring(r);
41poly f=xyz+20*x^2*y-3*xz+15*w-58699;
42"Singular Poly in char=0,(w,x,y,z) :";
43f;
44
45"Boolean Poly:";
46boolean_poly(f,br2);
47
48"Recursive Boolean Poly:";
49recursive_boolean_poly(f,br2);
50kill r;
51// --------------------------------------------------
52
53
54//////////////// test for from_boolean_poly(pyobject) and recursive_from_boolean_poly(pyobject)
55"!!! Test: from_boolean_poly, recursive_from_boolean_poly !!!";
56
57python_run("ring = Ring(3)");
58pyobject pp01 = python_eval("ring.variable(0)+ring.variable(1)");
59"Boolean poly:";
60pp01;
61
62ring r=0,(x,y,z),Dp;
63"Singular poly in char=0, (x,y,z):";
64from_boolean_poly(pp01);
65
66"Recursive Singular Poly in char=0,(x,y,z) :";
67recursive_from_boolean_poly(pp01);
68kill r;
69
70// --------------------------------------------------
71python_run("ring1 = Ring(5)");
72pyobject pp = python_eval("ring1.variable(0)*ring1.variable(3)+(ring1.variable(1)+ring1.variable(2)*ring1.variable(4))*ring1.variable(0)");
73"Boolean poly:";
74pp;
75
76ring r=5,(v,w,x,y,z),Dp;
77"Singular poly in char=5, (v,w,x,y,z):";
78from_boolean_poly(pp);
79
80"Recursive Singular Poly in char=5, (v,w,x,y,z):";
81recursive_from_boolean_poly(pp);
82kill r;
83
84// --------------------------------------------------
85
86//////////////// test for poly2zdd(poly) and zdd2poly(zdd)
87"!!! Test: poly2zdd, zdd2poly !!!";
88
89ring r=0,x,Dp;
90poly f=0;
91"Singular Poly:";
92f;
93
94"poly2zdd:";
95poly2zdd(f);
96
97"zdd2poly:";
98zdd2poly(poly2zdd(f));
99kill r;
100
101// --------------------------------------------------
102ring r=0,x,Dp;
103poly f=1;
104"Singular Poly:";
105f;
106
107"poly2zdd:";
108poly2zdd(f);
109
110"zdd2poly:";
111zdd2poly(poly2zdd(f));
112kill r;
113
114// --------------------------------------------------
115ring r=0,(v,w,x,y,z),Dp;
116poly f=(v+1)*(w+1)*(x+1)*y*z;
117"Singular Poly in char=0,(v,w,x,y,z):";
118f;
119" ";
120"poly2zdd:";
121poly2zdd(f);
122" ";
123"zdd2poly:";
124zdd2poly(poly2zdd(f));
125kill r;
126
127// --------------------------------------------------
128ring r=0, x(1..5),Dp;
129poly g=x(3);
130"Singular Poly in char=0, x(1..5):";
131g;
132
133"poly2zdd:";
134poly2zdd(g);
135
136"zdd2poly:";
137zdd2poly(poly2zdd(g));
138
139kill r;
140// --------------------------------------------------
141// --------------------------------------------------
142
143
144//////////////// test for boolean_ideal(ideal,pyobject)
145"!!! Test: boolean_ideal !!!";
146
147ring r=0,(x,y,z),Dp;
148def br10=boolean_poly_ring(r);
149poly f1=x3*y+2*x*z+2z-1;
150poly f2=x10*y^2*z^15-x5*z^2+2x*y;
151poly f3=19;
152ideal I2=f1,f2,f3;
153"Singular ideal in char=0,(x,y,z):";
154I2;
155
156"Boolean ideal:";
157boolean_ideal(I2,br10);
158kill r;
159
160// --------------------------------------------------
161
162ring r=2,(x,y,z),Dp;
163def br200=boolean_poly_ring(r);
164poly f1=xyz+20*x^2*y-3*xz+15;
165poly f2=32001*xy+z2;
166poly f3=19;
167ideal I3=f1,f2,f3;
168"Singular ideal in char=2,(x,y,z):";
169I3;
170
171"Boolean ideal:";
172boolean_ideal(I3,br200);
173kill r;
174
175// --------------------------------------------------
176
177
178//////////////// test for from_boolean_ideal(pyobject)
179"!!! Test: from_boolean_ideal !!!";
180
181ring rs=0,(x,y,z),Dp;
182python_run("ring2 = Ring(3)");
183pyobject pp5 = python_eval("ring2.variable(0)+ring2.variable(2)");
184pyobject p5 = python_eval("ring2.variable(0)+ring2.variable(1)");
185list I4=(p5,pp5);
186"Boolean ideal:";
187I4;
188
189"Singular ideal in char=0,(x,y,z):";
190from_boolean_ideal(I4);
191kill rs;
192// --------------------------------------------------
193
194ring rs=5,(v,w,x,y,z),Dp;
195python_run("ring7 = Ring(5)");
196pyobject p1 = python_eval("ring7.variable(0)*ring7.variable(3)+ring7.variable(1)+ring7.variable(2)*ring7.variable(4)");
197pyobject pp1 = python_eval("ring7.variable(4)+ring7.variable(1)*ring7.variable(0)+ring7.variable(0)");
198pyobject ppp1 = python_eval("ring7.variable(2)+ring7.variable(3)");
199list I5=(p1,pp1,ppp1);
200"Boolean ideal:";
201I5;
202
203"Singular ideal in char=5,(v,w,x,y,z):";
204from_boolean_ideal(I5);
205kill rs;
206
207// --------------------------------------------------
208// --------------------------------------------------
209
210
211//////////////// test for boolean_std(ideal)
212"!!! Test: boolean_std !!!";
213" ";
214ring r=2,x(1..4),lp;
215poly f1=x(1)^2+2*x(2)*(x(3))-x(4)^3;
216poly f2=x(1)^2-x(3)*x(1);
217poly f3=x(2)+5-2*x(1);
218poly f4=x(1)*x(2)-x(3);
219ideal I6=f1,f2,f3,f4;
220"Singular ideal:";
221I6;
222
223"Boolean_std:";
224boolean_std(I6);
225kill r;
226// --------------------------------------------------
227
228ring r=0,x,Dp;
229poly f1=x3+2*x+1;
230poly f2=x10-x5+2x;
231poly f3=19;
232ideal I7=f1,f2,f3;
233"Singular ideal:";
234I7;
235
236"Boolean_std:";
237boolean_std(I7);
238kill r;
239
240// --------------------------------------------------
241
242ring r=32003,(x,y,z),Dp;
243poly f1=xz+y+20*x^2*y;
244poly f2=32002*xy+xz2+y;
245ideal I8=f1,f2;
246"Singular ideal:";
247I8;
248
249"Boolean_std:";
250boolean_std(I8);
251kill r;
252
253// --------------------------------------------------
254// --------------------------------------------------
255//////////////// test for boolean_set(zdd,pyobject) and from_boolean_set(pyobject, def)
256"!!! Test: boolean_set, from_boolean_set !!!";
257
258ring r=17,(x,y,z),Dp;
259poly f=25015x7+13689x3y4+21482x6z+18377x5z2+21142x4yz2+29755xy4z2+6632y4z3+644x3z4+15302x2yz4;
260def rb=boolean_poly_ring(r);
261def fb=boolean_poly(f,rb);
262"Boolean Polynomial:";
263fb;
264
265def fs=fb.set();
266zdd fz=from_boolean_set(fs,rb);
267"from_boolean_set visualized:";
268disp_zdd(fz);
269
270
271"boolean_set:";
272boolean_set(fz,rb);
273kill r;
274// --------------------------------------------------
275
276ring r=2,x(1..6),Dp;
277def rb6=boolean_poly_ring(r);
278poly h=x(3)^3+x(2)^2*x(4)+x(3)^2*x(5)+x(1)*x(2)*x(6)+x(3)*x(4)*x(6)+x(4)^2*x(6)+x(5)^2*x(6)+x(2)*x(6)^2;
279def hb=boolean_poly(h,rb6);
280"Boolean Polynomial:";
281hb;
282
283def hs=hb.set();
284zdd hz=from_boolean_set(hs,rb6);
285"from_boolean_set visualized:";
286disp_zdd(hz);
287
288"boolean_set:";
289boolean_set(hz,rb6);
290kill r;
291// --------------------------------------------------
292
293ring r=0,(a,b,c,d,e),Dp;
294def rb9=boolean_poly_ring(r);
295poly j=(a+1)*(b+1)*(c+1)*(d+1)*(e+1);
296def jb=boolean_poly(j,rb9);
297"Boolean Polynomial:";
298jb;
299
300def js=jb.set();
301zdd jz=from_boolean_set(js,rb9);
302"from_boolean_set visualized:";
303disp_zdd(jz);
304
305"boolean_set:";
306boolean_set(jz,rb9);
307kill r;
308// --------------------------------------------------
309// --------------------------------------------------
310
311
312//////////////// test for Typecasts
313"!!! Test: Typecasts !!!";
314
315ring r=0,x(1..5),Dp;
316poly f=(x(1)-1)*(x(2)*x(3)-x(4))+x(5);
317"Poly f in Singular:";
318f;
319
320bpoly lb=f;
321"bpoly lb=f;";
322lb;
323
324poly ftest=poly(lb);
325"poly ftest=poly(lb);";
326ftest;
327
328pyobject g=lb;
329"pyobject g=lb;";
330g;
331
332bpoly lbtest=g;
333"bpoly lbtest=g;";
334lbtest;
335
336zdd s=f;
337"zdd s=f;";
338s;
339
340poly sbtest=poly(s);
341"poly sbtest=poly(s);";
342sbtest;
343
344pyobject sb=s;
345"pyobject sb=s;";
346sb;
347
348zdd stest=sb;
349"zdd stest=sb;";
350stest;
351
352poly f2=f^2;
353ideal I=f,f2;
354"Ideal I in Singular:";
355I;
356
357bideal Ib=I;
358"bideal Ib=I;";
359Ib;
360
361ideal Itest=ideal(Ib);
362Itest;
363
364pyobject J=Ib;
365J;
366
367bideal Ibtest=J;
368Ibtest;
369
370// --------------------------------------------------
371// --------------------------------------------------
372
373// testing cached rings...
374ring r4=0,x(1..10),Dp;
375bring rb4 = r4;
376bpoly bp4_1 = x(1)*x(2)*x(6)*x(7)+1;
377bpoly bp4_2 = x(1)*x(2)*x(3)+1;
378lead(bp4_1) < lead(bp4_2);
379
380ring r5=0,x(1..10),(Dp(5),Dp(5));
381bring rb5 = r5;
382bpoly bp5_1 = x(1)*x(2)*x(6)*x(7)+1;
383bpoly bp5_2 = x(1)*x(2)*x(3)+1;
384
385lead(bp5_1) < lead(bp5_2);
386
387ring r7=0,x(1..10),(Dp(3),Dp(3),Dp(6));
388bring rb7 = r7;
389bpoly bp7_1 = x(1)*x(2)*x(6)*x(7)+1;
390bpoly bp7_2 = x(1)*x(2)*x(4)+1;
391
392lead(bp7_1) < lead(bp7_2);
393
394// Checking some more overloaded stuff
395ring r11=2,x,lp;
396bideal bI11 = ideal(x, x+1);
397std(bI11);
398
399bideal bI11 = list(x, x+1);
400
401bI11[1..2];
402bring br11 = r11;
403nvars(br11);
404
405bpoly bp11 = bI11[1];
406
407bideal(bp11);
408
409bp11 + 1;
410
411bI11 + bideal(bp11);
412bI11 + bp11;
413
414ring r12=2,(x,y),lp;
415bideal bI12_1 = ideal(x, x+1);
416bideal bI12_2 = ideal(y, y+1);
417
418bI12_1 + bI12_2;
419
420bI12_2 = ideal(x, y, y+1);
421bI12_1 + bI12_2;
422
423// --------------------------
424// execute examples
425
426example bvar;
427example boolean_set;
428example from_boolean_set;
429example from_boolean_poly;
430example boolean_constant;
431example boolean_poly;
432example from_boolean_poly;
433example boolean_poly;
434example recursive_boolean_poly;
435example boolean_ideal;
436example from_boolean_ideal;
437example boolean_std;
438example from_boolean_constant;
439example recursive_from_boolean_poly;
440example poly2zdd;
441example poly2zdd;
442example disp_zdd;
443
444
445// Finally statistics...
446tst_status(1);
447
Note: See TracBrowser for help on using the repository browser.