Ticket #68: dmodapp.tst

File dmodapp.tst, 4.3 KB (added by Oleksandr , 15 years ago)

my tests for dmodapp.lib.

Line 
1  LIB "dmodapp.lib";
2
3
4  ring r;
5  qring Q = x;
6  intvec V = option(get);
7  ideal I = 0;
8  I = engine(I, 0);
9  I = engine(I, 1);
10  I = engine(I, 2);
11  if( option(get) != V )
12  {
13
14    "BUG: engine changes options: ";
15
16    "New: ";
17    option();
18    "Old: ";
19    option(set, V);
20    option();
21  }
22 
23
24
25  "EXAMPLE:"; echo = 2;
26  ring @D = 0,(x,y,Dx,Dy),dp;
27  def D = Weyl();
28  setring D;
29  poly F = 3*x^2*Dy+2*y*Dx;
30  poly G = 2*x*Dx+3*y*Dy+6;
31  ideal I = F,G;
32  intvec w1 = -1,-1,1,1;
33  intvec w2 = -1,-2,1,2;
34  intvec w3 = -2,-3,2,3;
35  inForm(I,w1);
36  inForm(I,w2);
37  inForm(I,w3);
38  inForm(F,w1);
39  poly Z = 0;
40  inForm(Z,w1); // TODO: FIX THIS BUG: index[0] must be positive
41  inForm(poly(0),w1); // TODO: FIX THIS BUG: index[0] must be positive
42  inForm(0,w1); // TODO: FIX THIS BUG: index[0] must be positive
43
44
45  kill basering;
46
47
48
49
50 "EXAMPLE:"; echo = 2;
51  ring r = 0,x,dp;
52  poly F = x;
53  poly2list(F);
54  ring r2 = 0,(x,y),dp;
55  poly F = x2y-x*y2;
56  poly2list(F);
57  poly Z = 0;
58  poly2list(Z); // TODO: FIX THIS BUG: index[0] must be positive
59  poly2list(poly(0)); // TODO: FIX THIS BUG: index[0] must be positive
60  poly2list(0); // TODO: FIX THIS BUG: index[0] must be positive
61
62
63
64  kill basering;
65
66
67 "EXAMPLE:"; echo = 2;
68  ring r = 0,(x,y,Dx,Dy),dp;
69  def R = Weyl();    setring R;
70  ideal BS; // TODO: THIS LEADS TO A PARSE ERROR!!! PLEASE, FIX!
71  poly F = x2-y3;
72  ideal I = (y^3 - x^2)*Dx - 2*x, (y^3 - x^2)*Dy + 3*y^2; // I = Dx*F, Dy*F;
73  DLoc(I, x2-y3);
74
75
76  kill basering;
77
78
79
80
81
82  "EXAMPLE:"; echo = 2;
83
84
85
86  ring t = 0, (@t, @Dt, s), dp; //  @t, @Dt, s // This assumption is no documented!!!
87  ring r = 0,(x,y,Dx,Dy),dp;
88  def R = Weyl(); R = R + t;  setring R;  R;
89
90  poly F = x2-y3;
91  ideal I = Dx*F, Dy*F;
92
93  def W = SDLoc(I,F); //
94  setring W; W;  listvar(W);  kill W;
95
96
97  def W = DLoc0(I,F);
98  setring W; W;  listvar(W);  kill W;
99
100  kill r, t;
101
102
103
104  ring t1 = 0, (@t), dp;
105  ring t2 = 0, (@Dt), dp;
106  ring t3 = 0, (s), dp;
107  ring r = 0,(x,y,Dx,Dy),dp;
108  def R = Weyl();
109  def R1 = R + t1;
110  def R2 = R + t2;
111  def R3 = R + t3;
112
113  setring R1; R1;
114  poly F = x2-y3;
115  ideal I = Dx*F, Dy*F;
116  def W = SDLoc(I,F); // last variable name is not checked!!!???
117  setring W; W;  listvar(W);  kill W;
118
119
120  def W = DLoc0(I,F);
121  setring W; W;  listvar(W);  kill W;
122
123
124  setring R2; R2;
125  poly F = x2-y3;
126  ideal I = Dx*F, Dy*F;
127  def W = SDLoc(I,F); // last variable name is not checked!!!???
128  setring W; W;  listvar(W);  kill W;
129
130
131  def W = DLoc0(I,F);
132  setring W; W;  listvar(W);  kill W;
133
134
135
136  setring R3; R3;
137  poly F = x2-y3;
138  ideal I = Dx*F, Dy*F;
139  def W = SDLoc(I,F); // last variable name is not checked!!!???
140  setring W; W;  listvar(W);  kill W;
141
142
143  def W = DLoc0(I,F);
144  setring W; W;  listvar(W);  kill W;
145 
146
147  kill R, R3, R2, R1, t3, t2, t1, r;
148
149
150
151
152  ring r = (111, @t, @Dt, s, D, DD),(x,y,Dx,Dy),dp;
153  def R = Weyl();
154  setring R; R;
155  poly F = x2-y3;
156  ideal I = Dx*F, Dy*F;
157  def W = SDLoc(I,F);
158  setring W; W;  listvar(W);  kill W;
159
160  def W = DLoc0(I,F);
161  setring W; W;  listvar(W);  kill W;
162
163
164
165  kill R, r;
166
167
168
169
170  "EXAMPLE:"; echo = 2;
171  ring r = (111, Dx, Dy, Dz),(x,y,z, D, DD, DDD),dp;
172  poly f = x^2*z - y^3;
173  def A = annPoly(f); setring A;
174  A; "";
175  LD;
176// TODO: SINCE THE FOLLOWING DOES NOT YIELD ZERO - THE MEANING OF ANNIHILATOR IS NOT CLEAR!
177// IS THERE ANY WAY TO CHECK THAT THIS IS AN ANNIHILATOR OF f?
178  LD * imap(r, f);
179  gkdim(LD); // must be 3 since LD is holonomic, TODO: WHY IS THIS? PLEASE REFERENCE!
180  NF(Dy^4, LD); // must be 0 since Dy^4 clearly annihilates f
181
182
183  kill basering, r;
184
185
186
187
188
189
190  "EXAMPLE:"; echo = 2;
191  ring r = 0,(x,y,z),dp;
192  int J = 1;
193
194  ideal I = x^2,z^4;
195  I = insertGenerator(I,y^3); I;
196
197  J;
198
199  I = insertGenerator(I,y^3,20); I;
200
201  J;
202  I = deleteGenerator(I,20); I;
203
204  J;
205
206  module M = I;
207  M = insertGenerator(M,[x^3,y^2,z],22); M;
208
209  J;
210
211  M = deleteGenerator(M,22); M;
212  J;
213
214
215  kill J;
216
217  ideal J = x^2,z^4;
218
219  J = insertGenerator(J,y^3); J;
220  J = insertGenerator(J,y^3,2); J;
221  J = deleteGenerator(J,2); J;
222
223  kill J;
224  module J = I;
225  J = insertGenerator(J,[x^3,y^2,z],21); J;
226  J = deleteGenerator(J,21); J;
227
228  kill basering;
229
230
231
232
233
234 "EXAMPLE:"; echo = 2;
235  ring r = 0,(x,y,z,s),Dp;
236  ideal I = -1,-4/3,-5/3,-2;
237  intvec mI = 2,0,-1,1;
238  list BS = I,mI;
239  poly p = fl2poly(BS,"s"); // suggestion: variable name....? maybe a polynomial instead?
240  p; // wrong result due to bad powers...? no checks. Why no error message???
241  factorize(p,2);
242
243  kill basering;
244
245
246
247$$$
248