rtest_unit.mac: enclose input expressions in calls to TOPLEVEL-MACSYMA-EVAL in an...
[maxima.git] / share / contrib / unit / rtest_unit.mac
blob1f62f16aecdf2ef4924d4f5bdfe17e980794d4c8
1 /* tests for share/contrib/unit package, derived from doc/info/unit.texi */
3 (if not ?boundp ('globalbaseunitlisting) then load ("unit.mac"), 0);
4 0;
6 /* Evaluate all test inputs via TOPLEVEL-MACSYMA-EVAL, since the unit package
7  * redefines that function to call the pre- and post-processing functions,
8  * which produce the results that one would see if the input were entered
9  * at the console input prompt. The code for processing test cases
10  * (TEST-BATCH in src/mload.lisp) calls MEVAL*, not TOPLEVEL-MACSYMA-EVAL,
11  * so it misses the pre- and post-evaluation functions, and so the test
12  * outputs don't come out the same as if they were entered at the input prompt.
13  *
14  * I'm leaning towards thinking the pre- and post-evaluation functions
15  * should be called somehow from MEVAL, since as it stands, working with units
16  * within functions won't produce the same results as console inputs, since only
17  * MEVAL is called within functions and not TOPLEVEL-MACSYMA-EVAL (nor MEVAL*
18  * for that matter). Be that as it may, I will let it stand and work around
19  * the issue with explicit calls to TOPLEVEL-MACSYMA-EVAL here.
20  */
22 ?toplevel\-macsyma\-eval (N);
23 kg*m/s^2;
25 ?toplevel\-macsyma\-eval (dyn);
26 ?rat(1, 100000)*kg*m/s^2;
28 ?toplevel\-macsyma\-eval (g);
29 ?rat(1, 1000)*kg;
31 ?toplevel\-macsyma\-eval (centigram*inch/minutes^2);
32 ?rat(127, 1800000000000)*kg*m/s^2;
34 setunits([centigram,inch,minute]);
35 done;
37 ?toplevel\-macsyma\-eval (N);
38 ?rat(1800000000000, 127)*%in*cg/%min^2;
40 ?toplevel\-macsyma\-eval (dyn);
41 ?rat(18000000, 127)*%in*cg/%min^2;
43 ?toplevel\-macsyma\-eval (g);
44 100*cg;
46 ?toplevel\-macsyma\-eval (centigram*inch/minutes^2);
47 %in*cg/%min^2;
49 setunits([kg,m,s]);
50 done;
52 ?toplevel\-macsyma\-eval (centigram*inch/minutes^2);
53 ?rat(127, 1800000000000)*kg*m/s^2;
55 setunits(N);
56 done;
58 ?toplevel\-macsyma\-eval (N);
61 ?toplevel\-macsyma\-eval (dyn);
62 ?rat(1, 100000)*N;
64 ?toplevel\-macsyma\-eval (kg*m/s^2);
67 ?toplevel\-macsyma\-eval (centigram*inch/minutes^2);
68 ?rat(127, 1800000000000)*N;
70 setunits(dyn);
71 done;
73 ?toplevel\-macsyma\-eval (kg*m/s^2);
74 100000*dyn;
76 ?toplevel\-macsyma\-eval (centigram*inch/minutes^2);
77 ?rat(127, 18000000)*dyn;
79 uforget(dyn);
80 false;
82 ?toplevel\-macsyma\-eval (kg*m/s^2);
83 kg*m/s^2;
85 ?toplevel\-macsyma\-eval (centigram*inch/minutes^2);
86 ?rat(127, 1800000000000)*kg*m/s^2;
88 setunits([centigram,inch,minute]);
89 done;
91 ?toplevel\-macsyma\-eval (centigram*inch/minutes^2);
92 %in*cg/%min^2;
94 uforget([cg,%in,%min]);
95 [false, false, false];
97 ?toplevel\-macsyma\-eval (centigram*inch/minutes^2);
98 ?rat(127, 1800000000000)*kg*m/s^2;
100 ?toplevel\-macsyma\-eval (kg*m/s^2);
101 kg*m/s^2;
103 ?toplevel\-macsyma\-eval (convert(kg*m/s^2,[g,km,s]));
104 g*km/s^2;
106 ?toplevel\-macsyma\-eval (convert(kg*m/s^2,[g,inch,minute]));
107 ?rat(18000000000, 127)*%in*g/%min^2;
109 ?toplevel\-macsyma\-eval (convert(kg*m/s^2,[N]));
112 ?toplevel\-macsyma\-eval (convert(kg*m^2/s^2,[N]));
113 m*N;
115 setunits([N,J]);
116 done;
118 ?toplevel\-macsyma\-eval (convert(kg*m^2/s^2,[N]));
119 m*N;
121 ?toplevel\-macsyma\-eval (convert(kg*m^2/s^2,[N,inch]));
122 ?rat(5000, 127)*%in*N;
124 ?toplevel\-macsyma\-eval (convert(kg*m^2/s^2,[J]));
127 ?toplevel\-macsyma\-eval (kg*m^2/s^2);
130 setunits([g,inch,s]);
131 done;
133 ?toplevel\-macsyma\-eval (kg*m/s^2);
136 uforget(N);
137 false;
139 ?toplevel\-macsyma\-eval (kg*m/s^2);
140 ?rat(5000000, 127)*%in*g/s^2;
142 ?toplevel\-macsyma\-eval (convert(kg*m/s^2,[g,inch,s]));
143 ?rat(5000000, 127)*%in*g/s^2;
145 uforget (%in);
146 false;
148 /* omit examples for usersetunits, since that's hard to test */
150 setunits([N, J]);
151 done;
153 ?toplevel\-macsyma\-eval (kg*m/s^2);
156 ?toplevel\-macsyma\-eval (kg*m^2/s^2);
159 setunits([dyn,eV]);
160 done;
162 ?toplevel\-macsyma\-eval (kg*m/s^2);
163 100000*dyn;
165 ?toplevel\-macsyma\-eval (kg*m^2/s^2);
166 6241509596477042688*eV;
168 ?toplevel\-macsyma\-eval (kg*m^3/s^2);
169 6241509596477042688*eV*m;
171 ?toplevel\-macsyma\-eval (kg*m*km/s^2);
172 6241509596477042688000*eV;
174 uforget([dyn,eV]);
175 [false, false];
177 ?toplevel\-macsyma\-eval (kg*m/s^2);
180 ?toplevel\-macsyma\-eval (kg*m^2/s^2);
183 dontusedimension(N);
184 [%force];
186 dontusedimension(J);
187 [%energy, %force];
189 ?toplevel\-macsyma\-eval (kg*m/s^2);
190 kg*m/s^2;
192 ?toplevel\-macsyma\-eval (kg*m^2/s^2);
193 kg*m^2/s^2;
195 setunits([dyn,eV]);
196 done;
198 ?toplevel\-macsyma\-eval (kg*m/s^2);
199 kg*m/s^2;
201 ?toplevel\-macsyma\-eval (kg*m^2/s^2);
202 kg*m^2/s^2;
204 uforget([dyn,eV]);
205 [false, false];
207 ?toplevel\-macsyma\-eval (kg*m/s^2);
208 kg*m/s^2;
210 ?toplevel\-macsyma\-eval (kg*m^2/s^2);
211 kg*m^2/s^2;
213 usedimension(N);
214 true;
216 usedimension(J);
217 true;
219 ?toplevel\-macsyma\-eval (kg*m/s^2);
220 kg*m/s^2;
222 ?toplevel\-macsyma\-eval (kg*m^2/s^2);
223 kg*m^2/s^2;
225 setunits([dyn,eV]);
226 done;
228 ?toplevel\-macsyma\-eval (kg*m/s^2);
229 100000*dyn;
231 ?toplevel\-macsyma\-eval (kg*m^2/s^2);
232 6241509596477042688*eV;
234 uforget([dyn,eV]);
235 [false, false];
237 ?toplevel\-macsyma\-eval (kg*m/s^2);
240 ?toplevel\-macsyma\-eval (kg*m^2/s^2);
243 kill(usersetunits);
244 done;
246 uforget([dyn,eV]);
247 [false, false];
249 ?toplevel\-macsyma\-eval (kg*m/s^2);
250 kg*m/s^2;
252 ?toplevel\-macsyma\-eval (kg*m^2/s^2);
253 kg*m^2/s^2;