Fix bug #4260: translate fails with go tag in final position
[maxima.git] / tests / rtest1a.mac
blob6ce3d69febd37b1bcaa9662d48552db41769b25d
1 (use_fast_arrays:true,array(bil,3),0);
2 0$
3 bil[1];
4 false;
5 bil[1]:3;
6 3;
7 bil[1];
8 3;
9 listarray(bil);
10 [false, 3, false,false];
11 arrayinfo(bil);
12 [declared, 1, [3]];
13 ha[1]:2;
15 ha[3];
16 false;
17 arrayinfo(ha);
18 [hash_table, 1, 1];
19 use_fast_arrays:false;
20 false;
21 array(bil1,3);
22 bil1;
23 bil1[2];
24 bil1[2];
25 bil1[2]:3;
27 bil1[2];
29 listarray(bil1);
30 [''?munbound,''?munbound,3,''?munbound];
31 arrayinfo(bil1);
32 [declared, 1, [3]];
33 oldha[1]:8;
35 oldha[2];
36 oldha[2];
37 arrayinfo(oldha);
38 [hashed, 1, [1]];
39 use_fast_arrays:true;
40 true;
41 bilx[n]:=n*bilx[n-1];
42 bilx[n]:=n*bilx[n-1];
43 bilx[0]:1;
45 bilx[3];
48 use_fast_arrays: false;
49 false;
51 block ([use_fast_arrays : true], kill (foo), foo [2] : 'x, foo [3] : 'y, foo [5] : 'z, foo [7] : 'a, sort (listarray (foo)));
52 [a, x, y, z];
54 /* Bug #2978: "kill(a[i])" doesn't work with fast arrays */
56 block ([use_fast_arrays : true,
57         y : yvalue],
58   local (y),
59   kill (foo),
60   foo ['x] : 'x,
61   foo ['y] : 'y,
62   foo [ y] :  y,
63   foo ['z] : 'z,
64   /* Check that indices get evaluated */
65   kill (foo ['y]),
66   kill (foo [ y]),
67   sort (listarray (foo)));
68 [x, z];
70 block ([use_fast_arrays : true,
71         y : yvalue],
72   local (y),
73   kill (foo),
74   foo [1, 'x] : 'x,
75   foo [2, 'y] : 'y,
76   foo [2,  y] :  y,
77   foo [3, 'z] : 'z,
78   /* Check that indices get evaluated */
79   kill (foo [2, 'y]),
80   kill (foo [2,  y]),
81   sort (listarray (foo)));
82 [x, z];
84 /* kill(all) erases display properties for conjugate
85  * mailing list 2017-02-24: "kill(all) results in non-default display options in wxMaxima"
86  * Verify here that properties list for conjugate and friends is not reset by kill(all),
87  * but it is reset by kill(foo) where foo = conjugate or friend.
88  */
90 (?putprop ('conjugate, 111, 'foo),
91  ?putprop (nounify ('erf_generalized), 222, 'bar),
92  ?putprop ('beta, 333, 'baz),
93  ?putprop ('nset, 444, 'quux),
94  ?putprop ('maxmin, 666, 'blurf),
95  ?putprop ('nummod, 777, 'barf),
96  0);
99 kill(all);
100 done;
102 [?get ('conjugate, 'foo),
103  ?get (nounify ('erf_generalized), 'bar),
104  ?get ('beta, 'baz),
105  ?get ('nset, 'quux),
106  ?get ('maxmin, 'blurf),
107  ?get ('nummod, 'barf)];
108 [111, 222, 333, 444, 666, 777];
110 (kill (conjugate),
111  apply (kill, [nounify ('erf_generalized)]),
112  kill (beta),
113  kill (nset, maxmin, nummod),
114  0);
117 [?get ('conjugate, 'foo),
118  ?get (nounify ('erf_generalized), 'bar),
119  ?get ('beta, 'baz),
120  ?get ('nset, 'quux),
121  ?get ('maxmin, 'blurf),
122  ?get ('nummod, 'barf)];
123 [false, false, false, false, false, false];
125 /* verify that props is empty after kill(all) -- pre-bugfix behavior is that props
126  * has several built-in symbols before and after kill(all)
127  */
129 /* this test fails due to bug in kill(rules); see SF bug #3289 */
130 (kill(all), props);
133 /* workaround bug #3289 */
134 (kill(all),
135  not some (lambda ([x], member (x, props)),
136            ['conjugate, nounify ('erf_generalized), 'beta, 'nset, 'maxmin, 'nummod]));
137 true;
139 (reset(use_fast_arrays),1);