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