Remove some code duplication in TRANSLATE-PREDICATE
[maxima.git] / tests / rtest_ask.mac
blob2f1dd075e0effeb89d2facc4c66450b2fc351d19
1 /* Test askinteger and asksign -- these are interactive,
2  * therefore this script SHOULD NOT be included in testsuite_files.
3  *
4  * You can run this script via batch("tests/rtest_ask.mac", test);
5  * and respond as indicated by the messages.
6  * The appropriate inputs are also contained in tests/rtest_ask_input.mac
7  * and therefore you can run all tests automatically like this:
8  *
9  * maxima --batch-string='batch("tests/rtest_ask.mac", test);' < tests/rtest_ask_input.mac
10  */
12 (kill(all),0);
15 /* commit 3137b946 tried to fix *LOCAL-SIGNS* craziness,
16  * but screwed up in its own way. Fixed for good this time?
17  * Nicked from mailing list circa 2013-08-28
18  */
19 block (print ("Please enter 'p;' now:"), 0);
22 integrate(sin(omega*t)*exp(-s*t),t,0,inf);
23 omega/(s^2+omega^2);
25 block (print ("Please enter 'p;' now:"), 0);
28 [asksign (foo), sign (foo), sign (foo)];
29 [pos, pos, pos];
31 block (print ("Please enter 'n;' now:"), 0);
34 [asksign (foo), sign (foo), sign (foo)];
35 [neg, neg, neg];
37 block (print ("Please enter 'z;' now:"), 0);
40 [asksign (foo), sign (foo), sign (foo)];
41 [zero, zero, zero];
43 block (print ("Please enter 'p;' now:"), 0);
46 limit((exp(a*x)-1)/(exp(a*x)+1),x,inf);
49 block (print ("Please enter 'n;' now:"), 0);
52 limit((exp(a*x)-1)/(exp(a*x)+1),x,inf);
53 -1;
55 block (print ("Please enter 'z;' now:"), 0);
58 limit((exp(a*x)-1)/(exp(a*x)+1),x,inf);
61 /* mailing list 2017-11-25: "bug in Laplace transform"
62  * root cause is asksign(-a^2) forgot the minus sign,
63  * so include some cases to handle that and then the Laplace transform.
64  */
66 (print ("Please enter 'z;' now:"), 0);
68 asksign (a^2);
69 zero;
71 (print ("Please enter 'nz;' now:"), 0);
73 asksign (a^2);
74 pos;
76 (print ("Please enter 'p;' now:"), 0);
78 asksign (a^3);
79 pos;
81 (print ("Please enter 'n;' now:"), 0);
83 asksign (a^3);
84 neg;
86 (print ("Please enter 'z;' now:"), 0);
88 asksign (a^3);
89 zero;
91 (print ("Please enter 'z;' now:"), 0);
93 asksign (-a^2);
94 zero;
96 (print ("Please enter 'nz;' now:"), 0);
98 asksign (-a^2);
99 neg;
101 (print ("Please enter 'p;' now:"), 0);
103 asksign (-a^3);
104 neg;
106 (print ("Please enter 'n;' now:"), 0);
108 asksign (-a^3);
109 pos;
111 (print ("Please enter 'z;' now:"), 0);
113 asksign (-a^3);
114 zero;
116 (print ("Please enter 'z;' now:"), 0);
118 asksign (a^4);
119 zero;
121 (print ("Please enter 'nz;' now:"), 0);
123 asksign (a^4);
124 pos;
126 (print ("Please enter 'p;' now:"), 0);
128 asksign (a^5);
129 pos;
131 (print ("Please enter 'n;' now:"), 0);
133 asksign (a^5);
134 neg;
136 (print ("Please enter 'z;' now:"), 0);
138 asksign (a^5);
139 zero;
141 (print ("Please enter 'z;' now:"), 0);
143 asksign (-a^4);
144 zero;
146 (print ("Please enter 'nz;' now:"), 0);
148 asksign (-a^4);
149 neg;
151 (print ("Please enter 'p;' now:"), 0);
153 asksign (-a^5);
154 neg;
156 (print ("Please enter 'n;' now:"), 0);
158 asksign (-a^5);
159 pos;
161 (print ("Please enter 'z;' now:"), 0);
163 asksign (-a^5);
164 zero;
166 (print ("Please enter 'p;' now:"), 0);
168 asksign (a*b^2);
169 pos;
171 (print ("Please enter 'n;' now:"), 0);
173 asksign (a*b^2);
174 neg;
176 (print ("Please enter 'z;' now:"), 0);
178 asksign (a*b^2);
179 zero;
181 (print ("Please enter 'p;' now:"), 0);
183 asksign (a*b^3);
184 pos;
186 (print ("Please enter 'n;' now:"), 0);
188 asksign (a*b^3);
189 neg;
191 (print ("Please enter 'z;' now:"), 0);
193 asksign (a*b^3);
194 zero;
196 (print ("Please enter 'p;' now:"), 0);
198 asksign (-a*b^2);
199 neg;
201 (print ("Please enter 'n;' now:"), 0);
203 asksign (-a*b^2);
204 pos;
206 (print ("Please enter 'z;' now:"), 0);
208 asksign (-a*b^2);
209 zero;
211 (print ("Please enter 'p;' now:"), 0);
213 asksign (-a*b^3);
214 neg;
216 (print ("Please enter 'n;' now:"), 0);
218 asksign (-a*b^3);
219 pos;
221 (print ("Please enter 'z;' now:"), 0);
223 asksign (-a*b^3);
224 zero;
226 (print ("Please enter 'p;' now:"), 0);
228 asksign (a*b^4);
229 pos;
231 (print ("Please enter 'n;' now:"), 0);
233 asksign (a*b^4);
234 neg;
236 (print ("Please enter 'z;' now:"), 0);
238 asksign (a*b^4);
239 zero;
241 (print ("Please enter 'p;' now:"), 0);
243 asksign (-a*b^4);
244 neg;
246 (print ("Please enter 'n;' now:"), 0);
248 asksign (-a*b^4);
249 pos;
251 (print ("Please enter 'z;' now:"), 0);
253 asksign (-a*b^4);
254 zero;
256 (print ("Please enter 'z;' now:"), 0);
258 asksign (a^2*b^2);
259 zero;
261 (print ("Please enter 'nz;' now:"), 0);
263 asksign (a^2*b^2);
264 pos;
266 (print ("Please enter 'p;' now:"), 0);
268 asksign (a^2*b^3);
269 pos;
271 (print ("Please enter 'n;' now:"), 0);
273 asksign (a^2*b^3);
274 neg;
276 (print ("Please enter 'z;' now:"), 0);
278 asksign (a^2*b^3);
279 zero;
281 (print ("Please enter 'z;' now:"), 0);
283 asksign (-a^2*b^2);
284 zero;
286 (print ("Please enter 'nz;' now:"), 0);
288 asksign (-a^2*b^2);
289 neg;
291 (print ("Please enter 'p;' now:"), 0);
293 asksign (-a^2*b^3);
294 neg;
296 (print ("Please enter 'n;' now:"), 0);
298 asksign (-a^2*b^3);
299 pos;
301 (print ("Please enter 'z;' now:"), 0);
303 asksign (-a^2*b^3);
304 zero;
306 (print ("Please enter 'z;' now:"), 0);
308 asksign (a^2*b^4);
309 zero;
311 (print ("Please enter 'nz;' now:"), 0);
313 asksign (a^2*b^4);
314 pos;
316 (print ("Please enter 'p;' now:"), 0);
318 asksign (a^2*b^5);
319 pos;
321 (print ("Please enter 'n;' now:"), 0);
323 asksign (a^2*b^5);
324 neg;
326 (print ("Please enter 'z;' now:"), 0);
328 asksign (a^2*b^5);
329 zero;
331 (print ("Please enter 'z;' now:"), 0);
333 asksign (-a^2*b^4);
334 zero;
336 (print ("Please enter 'nz;' now:"), 0);
338 asksign (-a^2*b^4);
339 neg;
341 (print ("Please enter 'p;' now:"), 0);
343 asksign (-a^2*b^5);
344 neg;
346 (print ("Please enter 'n;' now:"), 0);
348 asksign (-a^2*b^5);
349 pos;
351 (print ("Please enter 'z;' now:"), 0);
353 asksign (-a^2*b^5);
354 zero;
356 /* here's the Laplace transform that exposed the bug */
358 (print ("Please enter 'z;' now:"), 0);
360 laplace (delta (t - x^2), t, s);
363 (print ("Please enter 'nz;' now:"), 0);
365 laplace (delta (t - x^2), t, s);
366 exp(-s*x^2);