Windows installer: Update README.txt.
[maxima.git] / tests / rtestdefstruct.mac
blobea77336bbd89b9fa3ccac9d5748713c47eea66ec
1 kill (all);
2 done;
4 defstruct (mumble ());
5 [mumble ()];
7 f: new (mumble);
8 mumble ();
10 defstruct (bar (aa, bb), baz (aa), quux (aa));
11 [bar (aa, bb), baz (aa), quux (aa)];
13 defstruct (foo (aa, bb, cc = bar (2, 3), dd = baz (5), ee = quux (7)));
14 [foo (aa, bb, bar (2, 3), baz (5), quux (7))];
16 f: new (foo);
17 foo (aa, bb, bar (2, 3), baz (5), quux (7));
19 g: f@cc;
20 bar (2, 3);
22 g@bb: blurf (11);
23 blurf (11);
26 foo (aa, bb, bar (2, blurf (11)), baz (5), quux (7));
28 g: new (''f);
29 foo (aa, bb, bar (2, blurf (11)), baz (5), quux (7));
31 g@bb: [1, 2, 3];
32 [1, 2, 3];
35 foo (aa, [1, 2, 3], bar (2, blurf (11)), baz (5), quux (7));
38 foo (aa, bb, bar (2, blurf (11)), baz (5), quux (7));
40 f@4@1: %pi - 3;
41 %pi - 3;
44 foo (aa, bb, bar (2, blurf (11)), baz (%pi - 3), quux (7));
46 structures;
47 [mumble(), bar(aa, bb), baz(aa), quux(aa), foo(aa, bb, bar(2, 3), baz(5), quux(7))];
49 map (lambda ([a], ?get (op (a), ?defstruct\-template)), structures);
50 [mumble(), bar(aa, bb), baz(aa), quux(aa), foo(aa, bb, cc, dd, ee)];
52 kill (mumble, foo, bar, baz);
53 done;
55 errcatch (new (baz));
56 [];
58 structures;
59 [quux(aa)];
61 new (quux);
62 quux (aa);
64 /* begin stuff to test parallel multiple assignment */
66 [a, b, c]: [x, y, z];
67 [x, y, z];
69 [x, y, z]: [11, 22, 33];
70 [11, 22, 33];
72 [''a, ''b, ''c];
73 [11, 22, 33];
75 [x, y, z]: x*y*z;
76 [7986, 7986, 7986];
78 [x, y, z];
79 [7986, 7986, 7986];
81 [aa, bb]: [bb, 2*aa];
82 [bb, 2*aa];
84 ([aa, bb]: [bb, 2*aa], [aa, bb]: [bb, 2*aa], [aa, bb]: [bb, 2*aa], [aa, bb]: [bb, 2*aa]);
85 [4*bb, 8*aa];
87 (kgcd (a, b) := (while b#0 do [a, b]: [b, remainder (a, b)], abs(a)), 0);
90 kgcd (123456, 123);
91 ''(gcd (123456, 123));
93 /* Error on atomic argument */
94 errcatch (defstruct (xx));
95 [];
97 /* Error on malformed record initializer */
98 errcatch (defstruct (xx (1)));
99 [];