source: git/Tst/Short/test_unit_ideal_decomposition.tst @ d0bdb6

spielwiese
Last change on this file since d0bdb6 was d0bdb6, checked in by Hans Schoenemann <hannes@…>, 9 years ago
format
  • Property mode set to 100644
File size: 12.2 KB
Line 
1LIB "tst.lib";
2tst_init();
3echo = 1;
4
5int assumeLevel = 3;
6
7LIB("primdec.lib");
8
9proc testMinAssUnitOrigBehaviour(method, I)
10{
11  def result = method(I);
12  ASSUME(0, size(result)==1);
13}
14
15
16proc testPrimdecUnit(method, I, expectedSize)
17{
18  def result = method(I);
19  ASSUME(0, size(result) == expectedSize);
20}
21
22
23proc testPrimdecUnitOrigBehaviour(method, I)
24{
25  def result = method(I);
26  ASSUME(0, size(result)==1);
27}
28
29proc testMinAssUnitNewBehaviour(method, I)
30{
31  def result = method(I);
32  ASSUME(0, size(result)==0);
33}
34
35proc testPrimdecUnitNewBehaviour(method, I)
36{
37  def result = method(I);
38  ASSUME(0, size(result)==0);
39}
40
41
42proc wDecompE (I)                    {    return ( Primdec::decompE(I) );                        }
43proc wDecomp (I)                     {    return ( Primdec::convList(Primdec::decomp(I) ) );     }
44
45
46proc primdecGTZEkeepKomp (I)         {    return ( primdecGTZE(I,"keep_comp") );     }
47proc primdecGTZkeepKomp (I)          {    return ( primdecGTZ (I,"keep_comp") );     }
48
49proc minAssGTZEFacSTD (I)            {    return ( minAssGTZE(I,"facstd") );         }
50proc minAssGTZFacSTD  (I)            {    return ( minAssGTZ (I,"facstd") );         }
51
52proc minAssGTZEnoFacSTD (I)          {    return ( minAssGTZE(I,"noFacstd") );       }
53proc minAssGTZnoFacSTD  (I)          {    return ( minAssGTZ (I,"noFacstd") );       }
54
55proc minAssGTZEorigNoFacSTD (I)      {    return ( minAssGTZE(I,"GTZ","noFacstd") ); }
56proc minAssGTZorigNoFacSTD (I)       {    return ( minAssGTZ (I,"GTZ","noFacstd") ); }
57
58proc minAssGTZEGTZ (I)               {    return ( minAssGTZE(I,"GTZ") );            }
59proc minAssGTZGTZ  (I)               {    return ( minAssGTZ (I,"GTZ") );            }
60
61proc primdecSYENoOptimalOrdering (I) {    return ( primdecSYE(I,0) );                }
62proc primdecSYNoOptimalOrdering  (I) {    return ( primdecSY (I,0) );                }
63
64proc minAssCharENoOptimalOrdering(I) {    return ( minAssCharE(I,0) );               }
65proc minAssCharNoOptimalOrdering (I) {    return ( minAssChar (I,0) );               }
66
67proc primdecEUsingMinAssChar  (I)    {    return ( Primdec::prim_dec_i( int(1),I,0) );        }
68proc primdecUsingMinAssChar   (I)    {    return ( Primdec::prim_dec_i( int(0),I,0) );        }
69
70
71proc minAssPrimesNew  (I)           {    return ( Primdec::minAssPrimesE(I) );        }
72proc minAssPrimesOrig (I)           {    return ( Primdec::minAssPrimes(I) );         }
73
74
75proc minAssPrimesOldNew  (I)        {    return ( Primdec::minAssPrimesoldE(I) );    }
76proc minAssPrimesOldOrig (I)        {    return ( Primdec::minAssPrimesold (I) );    }
77
78proc minAssNew  (I)                 {    return ( Primdec::minAssE(I) );             }
79proc minAssOrig (I)                 {    return ( Primdec::minAss (I) );             }
80
81
82proc minAssPrimCharsetsECurrentOrd(I)    {    return ( Primdec::min_ass_prim_charsets_i( int(1),I,0)) ; }
83proc minAssPrimCharsetsCurrentOrd (I)    {    return ( Primdec::min_ass_prim_charsets_i( int(0),I,0)) ; }
84
85proc minAssPrimCharsetsEOptimalOrd (I)    {    return ( Primdec::min_ass_prim_charsets_i( int(1),I,1)) ; }
86proc minAssPrimCharsetsOptimalOrd  (I)    {    return ( Primdec::min_ass_prim_charsets_i( int(0),I,1)) ; }
87
88
89proc minAssPrimCharsets0New  (I)    {    return ( Primdec::min_ass_prim_charsets0_i( int(1),I,0)) ; }
90proc minAssPrimCharsets0Orig (I)    {    return ( Primdec::min_ass_prim_charsets0_i( int(0),I,0)) ; }
91
92proc minAssPrimCharsets1New   (I)   {    return ( Primdec::min_ass_prim_charsets1_i( int(1), I,1)) ; }
93proc minAssPrimCharsets1Orig  (I)   {    return ( Primdec::min_ass_prim_charsets1_i( int(0), I,1)) ; }
94
95
96/////////////////////////////////////////////////////////////////////////////////////////
97/////////////////////////////////////////////////////////////////////////////////////////
98ring rng1 = 0,(x,y),dp;
99ideal I = x+y,x+1,y;
100
101list pr = primdecGTZE(I);
102ASSUME(0, testPrimaryE(pr,I) );
103
104testPrimdecUnitNewBehaviour( wDecompE,        I );
105
106testPrimdecUnitNewBehaviour( primdecGTZE,        I );
107testPrimdecUnitNewBehaviour( primdecGTZEkeepKomp,I );
108testMinAssUnitNewBehaviour ( minAssGTZE,         I );
109testMinAssUnitNewBehaviour ( minAssGTZEFacSTD,   I );
110testMinAssUnitNewBehaviour ( minAssGTZEnoFacSTD, I );
111testMinAssUnitNewBehaviour ( minAssGTZEGTZ,      I );
112testMinAssUnitNewBehaviour ( minAssGTZEorigNoFacSTD, I );
113
114testPrimdecUnitNewBehaviour( primdecSYE,                   I );
115testPrimdecUnitNewBehaviour( primdecSYENoOptimalOrdering,  I );
116testMinAssUnitNewBehaviour ( minAssCharE,                  I );
117testMinAssUnitNewBehaviour ( minAssCharENoOptimalOrdering, I );
118testMinAssUnitNewBehaviour ( minAssNew,                    I );
119testMinAssUnitNewBehaviour ( minAssPrimesNew,              I );
120testMinAssUnitNewBehaviour ( minAssPrimesOldNew,           I );
121testMinAssUnitNewBehaviour ( primdecEUsingMinAssChar,      I );
122testMinAssUnitNewBehaviour ( minAssPrimCharsetsECurrentOrd,I );
123testMinAssUnitNewBehaviour ( minAssPrimCharsetsEOptimalOrd,I );
124testMinAssUnitNewBehaviour ( minAssPrimCharsets0New,       I );
125testMinAssUnitNewBehaviour ( minAssPrimCharsets1New,       I );
126testMinAssUnitNewBehaviour ( minAssPrimesNew,              I );
127
128//////////////////////////////////////////////////////////////////////////////////////////////
129testPrimdecUnitOrigBehaviour( wDecomp,        I );
130testPrimdecUnitOrigBehaviour( primdecGTZ,I );
131testPrimdecUnitOrigBehaviour( primdecGTZkeepKomp,I );
132testMinAssUnitOrigBehaviour ( minAssGTZ, I );
133testMinAssUnitOrigBehaviour ( minAssGTZFacSTD, I );
134testMinAssUnitOrigBehaviour ( minAssGTZnoFacSTD, I );
135testMinAssUnitOrigBehaviour ( minAssGTZGTZ, I );
136testMinAssUnitOrigBehaviour ( minAssGTZorigNoFacSTD, I );
137testPrimdecUnitOrigBehaviour( primdecSY, I );
138testPrimdecUnitOrigBehaviour( primdecSYNoOptimalOrdering, I );
139testMinAssUnitOrigBehaviour ( minAssChar,I );
140testMinAssUnitOrigBehaviour ( minAssCharNoOptimalOrdering,I );
141testMinAssUnitOrigBehaviour ( minAssOrig,I );
142testMinAssUnitOrigBehaviour ( minAssPrimesOrig,I );
143
144// do not worry about this one
145// testMinAssUnitOrigBehaviour( minAssPrimesOldOrig,I );
146
147testMinAssUnitOrigBehaviour( primdecUsingMinAssChar,I );
148testMinAssUnitOrigBehaviour( minAssPrimCharsetsCurrentOrd,I );
149testMinAssUnitOrigBehaviour( minAssPrimCharsetsOptimalOrd,I );
150testMinAssUnitOrigBehaviour( minAssPrimCharsets0Orig,I );
151testMinAssUnitOrigBehaviour( minAssPrimCharsets1Orig,I );
152testMinAssUnitOrigBehaviour( minAssPrimesOrig,I );
153
154
155
156
157// will not hanld unit ideal case // testMinAssUnitNewBehaviour( absPrimdecGTZE,I );
158/////////////////////////////////////////////////////////////////////////////////////////
159/////////////////////////////////////////////////////////////////////////////////////////
160ring rng2 = 0,(x,y),dp;
161ideal I = x+y,x+1,y;
162
163if (defined(pr)) {kill pr;}
164list pr = primdecGTZE(I);
165
166testPrimdecUnitOrigBehaviour( primdecGTZ,I );
167testPrimdecUnitOrigBehaviour( primdecGTZkeepKomp,I );
168testMinAssUnitOrigBehaviour( minAssGTZ, I );
169testMinAssUnitOrigBehaviour( minAssGTZFacSTD, I );
170testMinAssUnitOrigBehaviour( minAssGTZnoFacSTD, I );
171testMinAssUnitOrigBehaviour( minAssGTZGTZ, I );
172testMinAssUnitOrigBehaviour( minAssGTZorigNoFacSTD, I );
173testPrimdecUnitOrigBehaviour( primdecSY, I );
174testPrimdecUnitOrigBehaviour( primdecSYNoOptimalOrdering, I );
175testMinAssUnitOrigBehaviour( minAssChar,I );
176testMinAssUnitOrigBehaviour( minAssCharNoOptimalOrdering,I );
177testMinAssUnitOrigBehaviour( minAssPrimesOrig,I );
178
179
180/////////////////////////////////////////////////////////////////////////////////////////
181/////////////////////////////////////////////////////////////////////////////////////////
182
183
184ring rng3 = 0,(x,y),ds;
185ideal I = x+y,x+1,y;
186
187// illegal ASSUME(0, testPrimaryE(pr,I) );
188testPrimdecUnit( primdecGTZE,I ,0 );
189testPrimdecUnit( primdecGTZEkeepKomp,I ,0);
190testPrimdecUnit( minAssGTZE, I,0 );
191testPrimdecUnit( minAssGTZEFacSTD, I,0 );
192testPrimdecUnit( minAssGTZEnoFacSTD, I ,0);
193testPrimdecUnit( minAssGTZEGTZ, I ,0);
194
195testPrimdecUnit( minAssGTZEorigNoFacSTD, I ,0);
196testPrimdecUnit( primdecSYE, I ,0);
197testPrimdecUnit( primdecSYENoOptimalOrdering, I ,0);
198testPrimdecUnit( minAssCharE,I,0 );
199testPrimdecUnit( minAssCharENoOptimalOrdering,I ,0);
200//illgal testPrimdecUnit( minAssPrimesNew,I ,0);
201// will not handle unit ideal case // testPrimdecUnit( absPrimdecGTZE,I ,0);
202
203
204testPrimdecUnit( primdecGTZ,I ,0);
205
206testPrimdecUnit( primdecGTZ,I ,0);
207//testPrimdecUnit( primdecGTZkeepKomp,I ,0);
208testPrimdecUnit( minAssGTZ, I ,0);
209// testPrimdecUnit( minAssGTZFacSTD, I ,0);
210// testPrimdecUnit( minAssGTZnoFacSTD, I ,0);
211// testPrimdecUnit( minAssGTZGTZ, I ,0);
212// testPrimdecUnit( minAssGTZorigNoFacSTD, I ,0);
213testPrimdecUnit( primdecSY, I ,0);
214testPrimdecUnit( primdecSYNoOptimalOrdering, I ,0);
215testPrimdecUnit( minAssChar,I ,0);
216testPrimdecUnit( minAssCharNoOptimalOrdering,I ,0);
217// invalid: testPrimdecUnit( minAssPrimesOrig,I ,0);
218/////////////////////////////////////////////////////////////////////////////////////////
219/////////////////////////////////////////////////////////////////////////////////////////
220
221ring rng4 = (7,a),(x,y,z),dp;
222minpoly = 1*a^2+6*a^1+3*a^0;
223ideal I = x+y,x+1,y;
224
225testPrimdecUnitNewBehaviour( wDecompE,        I );
226
227testPrimdecUnitNewBehaviour( primdecGTZE,        I );
228testPrimdecUnitNewBehaviour( primdecGTZEkeepKomp,I );
229testMinAssUnitNewBehaviour ( minAssGTZE,         I );
230testMinAssUnitNewBehaviour ( minAssGTZEFacSTD,   I );
231testMinAssUnitNewBehaviour ( minAssGTZEnoFacSTD, I );
232testMinAssUnitNewBehaviour ( minAssGTZEGTZ,     I );
233testMinAssUnitNewBehaviour ( minAssGTZEorigNoFacSTD, I );
234
235testPrimdecUnitNewBehaviour( primdecSYE,                  I );
236testPrimdecUnitNewBehaviour( primdecSYENoOptimalOrdering, I );
237//testMinAssUnitNewBehaviour ( minAssCharE,                 I );
238//testMinAssUnitNewBehaviour ( minAssCharENoOptimalOrdering,I );
239testMinAssUnitNewBehaviour ( minAssNew,                   I );
240testMinAssUnitNewBehaviour ( minAssPrimesNew,             I );
241testMinAssUnitNewBehaviour ( minAssPrimesOldNew,          I );
242testMinAssUnitNewBehaviour ( primdecEUsingMinAssChar,     I );
243//testMinAssUnitNewBehaviour ( minAssPrimCharsetsECurrentOrd,I );
244//testMinAssUnitNewBehaviour ( minAssPrimCharsetsEOptimalOrd,I );
245//testMinAssUnitNewBehaviour ( minAssPrimCharsets0New,      I );
246//testMinAssUnitNewBehaviour ( minAssPrimCharsets1New,      I );
247testMinAssUnitNewBehaviour ( minAssPrimesNew,             I );
248
249//////////////////////////////////////////////////////////////////////////////////////////////
250testPrimdecUnitOrigBehaviour( wDecomp,        I );
251testPrimdecUnitOrigBehaviour( primdecGTZ,I );
252testPrimdecUnitOrigBehaviour( primdecGTZkeepKomp,I );
253testMinAssUnitOrigBehaviour ( minAssGTZ, I );
254testMinAssUnitOrigBehaviour ( minAssGTZFacSTD, I );
255testMinAssUnitOrigBehaviour ( minAssGTZnoFacSTD, I );
256testMinAssUnitOrigBehaviour ( minAssGTZGTZ, I );
257testMinAssUnitOrigBehaviour ( minAssGTZorigNoFacSTD, I );
258testPrimdecUnitOrigBehaviour( primdecSY, I );
259testPrimdecUnitOrigBehaviour( primdecSYNoOptimalOrdering, I );
260
261//testMinAssUnitOrigBehaviour ( minAssChar,I );
262//testMinAssUnitOrigBehaviour ( minAssCharNoOptimalOrdering,I );
263testMinAssUnitOrigBehaviour ( minAssOrig,I );
264testMinAssUnitOrigBehaviour ( minAssPrimesOrig,I );
265
266// do not worry about this one
267// testMinAssUnitOrigBehaviour( minAssPrimesOldOrig,I );
268
269testMinAssUnitOrigBehaviour( primdecUsingMinAssChar,I );
270//testMinAssUnitOrigBehaviour( minAssPrimCharsetsCurrentOrd,I );
271//testMinAssUnitOrigBehaviour( minAssPrimCharsetsOptimalOrd,I );
272//testMinAssUnitOrigBehaviour( minAssPrimCharsets0Orig,I );
273//testMinAssUnitOrigBehaviour( minAssPrimCharsets1Orig,I );
274testMinAssUnitOrigBehaviour( minAssPrimesOrig,I );
275
276/////////////////////////////////////////////////////////////////////////////////////////
277/////////////////////////////////////////////////////////////////////////////////////////
278
279ring rng5 = (7,a),(x,y,z),ds; minpoly = a^2 + a+3;
280ideal I = x+y,x+1,y;
281
282testPrimdecUnitNewBehaviour( primdecGTZE,I );
283testPrimdecUnitNewBehaviour( primdecGTZEkeepKomp,I );
284testMinAssUnitNewBehaviour( minAssGTZE, I );
285testMinAssUnitNewBehaviour( minAssGTZEFacSTD, I );
286testMinAssUnitNewBehaviour( minAssGTZEnoFacSTD, I );
287testMinAssUnitNewBehaviour( minAssGTZEGTZ, I );
288testMinAssUnitNewBehaviour( minAssGTZEorigNoFacSTD, I );
289testPrimdecUnitNewBehaviour( primdecSYE, I );
290testPrimdecUnitNewBehaviour( primdecSYENoOptimalOrdering, I );
291// illegal testMinAssUnitNewBehaviour( minAssPrimesNew,I );
292
293
294
295tst_status(1); $
Note: See TracBrowser for help on using the repository browser.