FunctionalTests: UcumFunctionalTests.2.xml

File UcumFunctionalTests.2.xml, 34.9 KB (added by grahamegrieve, 10 years ago)

Functional Tests for UCUM implementations

Line 
1<?xml version="1.0" encoding="UTF-8"?> 
2<ucumTests>
3<!--
4  Ucum Functional Tests.
5 
6  This file is maintained by Grahame Grieve (grahameg@gmail.com).
7  Contributions/Corrections are welcome, and are best made through
8  the trac system at unitsofmeasure.org
9 
10  Conformance:
11    You may declare conformance to these UCUM functional tests if
12        your implementation accepts this file as an input, and passes
13        all the test cases below. You should always quote the most
14        recent date from the history entries below when claiming
15        conformance.
16       
17        You may qualify the conformance to particular kinds of cases if your
18        functionality does not cover all the tests.
19       
20        Note that conformance to these tests does not equate to
21        conformance to UCUM itself - though one could reasonably
22        claim to be compliant with UCUM if one is conformant to these
23        tests.
24
25  This file is copyright © 2008 - 2009 Grahame Grieve and other
26  contributers:
27    * Gunther Schadow
28        * Lloyd Mackenzie
29 
30  This source is licensed for public use under the Eclipse Public License
31  (http://www.eclipse.org/legal/epl-v10.html).
32 
33-->
34  <history>
35     <entry date="18-June 2014" author="gdg">Fixees for various issues, including trac #159 </entry>
36     <entry date="31-May 2010" author="gdg">updated with fixes to a couple of original conversion tests (Thanks to Christof Gessner). Extended the conversion tests considerably - should be easier to track down conversion issues</entry>
37     <entry date="10-Feb 2009" author="gdg">First created. Ucum validation Tests, display name generation tests, conversion tests, and multiplication tests</entry>
38  </history>
39
40  <!-- Note: all tests use case sensitive codes -->
41  <validation>
42    <!--
43          These tests check that ucum validation code is working correctly.
44          Each case has a unit, and whether the specified unit is valid or not
45          No particular error is specified, but a hint is provided for why the
46          unit is not valid
47         -->
48    <case id="1-101" unit="m" valid="true"/>
49        <case id="1-102" unit="m/" valid="false" reason="/ is not followed by a term"/>
50        <case id="1-103" unit="" valid="true"/>
51        <case id="1-104" unit="/m" valid="true"/>
52        <case id="1-105" unit="10*3/ul" valid="true"/>
53        <case id="1-106" unit="10*-3/ul" valid="true"/>
54        <case id="1-107" unit="10*+3/ul" valid="true"/>
55        <case id="1-108" unit="10+3/ul" valid="false" reason="10 is not a valid unit"/>
56        <case id="1-109" unit="m" valid="true"/>
57        <case id="1-110" unit="m[H2O]" valid="true"/>
58        <case id="1-111" unit="10*23" valid="true"/>
59        <case id="1-112" unit="rad2" valid="true"/>
60        <case id="1-113" unit="m3.kg-1.s-2" valid="true"/>
61        <case id="1-114" unit="4.[pi].10*-7.N/A2" valid="true"/>
62        <!-- test that the parser supports both {} inserts, but not unicode characters too, while we're at it -->
63  <case id="1-115" unit="rad2{a}" valid="true"/>
64  <case id="1-115a" unit="rad2{錠}" valid="false"/>
65  <case id="1-116" unit="{a}.rad2{b}" valid="true"/>   
66  <case id="1-116a" unit="{a}rad2{b}" valid="false"/>   
67        <case id="1-117" unit="1{c}" valid="true"/>
68        <case id="1-118" unit="{|}1" valid="false"/>
69        <case id="1-119" unit="{e}" valid="true"/>
70        <case id="1-120" unit="%" valid="true"/>
71       
72        <!--
73          These codes are taken from the first draft of a proposed Canadian UCUM subset.
74          (the subset was subsequently corrected after being tested) -->
75         
76        <case id="1-121" unit="[cup_us]" valid="true"/>
77        <case id="1-122" unit="[foz_br]" valid="true"/>
78        <case id="1-123" unit="[ft_i]" valid="true"/>
79        <case id="1-124" unit="[in_i]" valid="true"/>
80        <case id="1-125" unit="[yd_i]" valid="true"/>
81        <case id="1-126" unit="[gal_br]" valid="true"/>
82        <case id="1-127" unit="[lb_av]" valid="true"/>
83        <case id="1-128" unit="[oz_av]" valid="true"/>
84        <case id="1-129" unit="[pt_br]" valid="true"/>
85        <case id="1-130" unit="[qt_br]" valid="true"/>
86        <case id="1-131" unit="[sft_i]" valid="true"/>
87        <case id="1-132" unit="[sin_i]" valid="true"/>
88        <case id="1-133" unit="[syd_i]" valid="true"/>
89        <case id="1-134" unit="[tbs_us]" valid="true"/>
90        <case id="1-135" unit="[tsp_us]" valid="true"/>
91        <case id="1-136" unit="1/d" valid="true"/>
92        <case id="1-137" unit="1/min" valid="true"/>
93        <case id="1-138" unit="a" valid="true"/>
94        <case id="1-139" unit="cm" valid="true"/>
95        <case id="1-140" unit="cm2" valid="true"/>
96        <case id="1-141" unit="cm3" valid="true"/>
97        <case id="1-142" unit="d" valid="true"/>
98        <case id="1-143" unit="dg" valid="true"/>
99        <case id="1-144" unit="dl" valid="true"/>
100        <case id="1-145" unit="g" valid="true"/>
101        <case id="1-146" unit="g/d" valid="true"/>
102        <case id="1-147" unit="g/l" valid="true"/>
103        <case id="1-148" unit="h" valid="true"/>
104        <case id="1-149" unit="iU" valid="false" reason="iU needs [] around it"/>
105        <case id="1-150" unit="kg" valid="true"/>
106        <case id="1-151" unit="l" valid="true"/>
107        <case id="1-152" unit="m" valid="true"/>
108        <case id="1-153" unit="mm" valid="true"/>
109        <case id="1-154" unit="m2" valid="true"/>
110        <case id="1-155" unit="meq" valid="true"/>
111        <case id="1-156" unit="mg" valid="true"/>
112        <case id="1-157" unit="mg" valid="true"/>
113        <case id="1-158" unit="mg/d" valid="true"/>
114        <case id="1-159" unit="min" valid="true"/>
115        <case id="1-160" unit="ml" valid="true"/>
116        <case id="1-161" unit="ml/s" valid="true"/>
117        <case id="1-162" unit="mm[Hg]" valid="true"/>
118        <case id="1-163" unit="mm2" valid="true"/>
119        <case id="1-164" unit="mm3" valid="true"/>
120        <case id="1-165" unit="mmol" valid="true"/>
121        <case id="1-166" unit="mmol/l" valid="true"/>
122        <case id="1-167" unit="mo" valid="true"/>
123        <case id="1-168" unit="mol" valid="true"/>
124        <case id="1-169" unit="ms" valid="true"/>
125        <case id="1-170" unit="mU" valid="true"/>
126        <case id="1-171" unit="ng" valid="true"/>
127        <case id="1-172" unit="ng" valid="true"/>
128        <case id="1-173" unit="nl" valid="true"/>
129        <case id="1-174" unit="nl" valid="true"/>
130        <case id="1-175" unit="pg/ml" valid="true"/>
131        <case id="1-176" unit="s" valid="true"/>
132        <case id="1-177" unit="U" valid="true"/>
133        <case id="1-178" unit="U/l" valid="true"/>
134        <case id="1-179" unit="ug" valid="true"/>
135        <case id="1-180" unit="ug/min" valid="true"/>
136        <case id="1-181" unit="ul" valid="true"/>
137        <case id="1-182" unit="umol" valid="true"/>
138        <case id="1-183" unit="umol/l" valid="true"/>
139        <case id="1-184" unit="wk" valid="true"/>
140        <case id="1-185" unit="%" valid="true"/>
141        <case id="1-186" unit="[cup_us]" valid="true"/>
142        <case id="1-187" unit="[foz_br]" valid="true"/>
143        <case id="1-188" unit="[gal_br]" valid="true"/>
144        <case id="1-189" unit="[sft_i]" valid="true"/>
145        <case id="1-190" unit="[sin_i]" valid="true"/>
146        <case id="1-191" unit="[lb_av]" valid="true"/>
147        <case id="1-192" unit="[oz_av]" valid="true"/>
148        <case id="1-193" unit="[pt_br]" valid="true"/>
149        <case id="1-194" unit="[qt_br]" valid="true"/>
150        <case id="1-195" unit="[tbs_us]" valid="true"/>
151        <case id="1-196" unit="[tsp_us]" valid="true"/>
152        <case id="1-197" unit="[syd_i]" valid="true"/>
153        <case id="1-198" unit="cm2" valid="true"/>
154        <case id="1-199" unit="cm3" valid="true"/>
155        <case id="1-200" unit="g" valid="true"/>
156        <case id="1-201" unit="kg" valid="true"/>
157        <case id="1-202" unit="l" valid="true"/>
158        <case id="1-203" unit="m2" valid="true"/>
159        <case id="1-204" unit="meq" valid="true"/>
160        <case id="1-205" unit="mg" valid="true"/>
161        <case id="1-206" unit="ml" valid="true"/>
162        <case id="1-207" unit="mm2" valid="true"/>
163        <case id="1-208" unit="mm3" valid="true"/>
164        <case id="1-209" unit="mmol" valid="true"/>
165        <case id="1-210" unit="molv" valid="false" reason="molv is not a valid unit"/>
166        <case id="1-211" unit="mU" valid="true"/>
167        <case id="1-212" unit="ng" valid="true"/>
168        <case id="1-213" unit="nl" valid="true"/>
169        <case id="1-214" unit="U" valid="true"/>
170        <case id="1-215" unit="ug" valid="true"/>
171        <case id="1-216" unit="ul" valid="true"/>
172        <case id="1-217" unit="umol" valid="true"/>
173        <case id="1-218" unit="a" valid="true"/>
174        <case id="1-219" unit="d" valid="true"/>
175        <case id="1-220" unit="h" valid="true"/>
176        <case id="1-221" unit="min" valid="true"/>
177        <case id="1-222" unit="mo" valid="true"/>
178        <case id="1-223" unit="s" valid="true"/>
179        <case id="1-224" unit="wk" valid="true"/>
180        <case id="1-225" unit="[ft_i]" valid="true"/>
181        <case id="1-226" unit="[in_i]" valid="true"/>
182        <case id="1-227" unit="[lb_av]" valid="true"/>
183        <case id="1-228" unit="[oz_av]" valid="true"/>
184        <case id="1-229" unit="[yd_i]" valid="true"/>
185        <case id="1-230" unit="cm" valid="true"/>
186        <case id="1-231" unit="g" valid="true"/>
187        <case id="1-232" unit="kg" valid="true"/>
188        <case id="1-233" unit="m" valid="true"/>
189        <case id="1-234" unit="mm" valid="true"/>
190        <case id="1-235" unit="[mi_us]" valid="true"/>
191        <case id="1-236" unit="[yd_i]" valid="true"/>
192        <case id="1-237" unit="deg" valid="true"/>
193        <case id="1-238" unit="km" valid="true"/>
194        <case id="1-239" unit="m" valid="true"/>
195        <case id="1-240" unit="%" valid="true"/>
196        <case id="1-241" unit="/[HPF]" valid="true"/>
197        <case id="1-242" unit="/[LPF]" valid="true"/>
198        <case id="1-243" unit="/L" valid="true"/>
199        <case id="1-244" unit="/mL" valid="true"/>
200        <case id="1-245" unit="/mmol" valid="true"/>
201        <case id="1-246" unit="[APL'U]" valid="true"/>
202        <case id="1-247" unit="[BETH'U]" valid="false" reason="not a valid unit"/>
203        <case id="1-248" unit="[GPL'U]" valid="true"/>
204        <case id="1-249" unit="[IU]" valid="true"/>
205        <case id="1-250" unit="[IU]/d" valid="true"/>
206        <case id="1-251" unit="[IU]/L" valid="true"/>
207        <case id="1-252" unit="[IU]/mL" valid="true"/>
208        <case id="1-249-a" unit="[iIU]" valid="false" reason="not a valid unit (iIU)"/>
209        <case id="1-250-a" unit="[iIU]/d" valid="false" reason="not a valid unit (iIU)"/>
210        <case id="1-251-a" unit="[iIU]/L" valid="false" reason="not a valid unit (iIU)"/>
211        <case id="1-252-a" unit="[iIU]/mL" valid="false" reason="not a valid unit (iIU)"/>
212        <case id="1-253" unit="[MPL'U]" valid="true"/>
213        <case id="1-254" unit="10*12/L" valid="true"/>
214        <case id="1-255" unit="10*6/L" valid="true"/>
215        <case id="1-256" unit="10*9/L" valid="true"/>
216        <case id="1-257" unit="Cel" valid="true"/>
217        <case id="1-258" unit="cm" valid="true"/>
218        <case id="1-259" unit="cm/s" valid="true"/>
219        <case id="1-260" unit="fL" valid="true"/>
220        <case id="1-261" unit="fmol/L" valid="true"/>
221        <case id="1-262" unit="g" valid="true"/>
222        <case id="1-263" unit="g/12h" valid="false" reason="not a valid unit (12h - should be 12.h)"/>
223        <case id="1-264" unit="g/48h" valid="false" reason="not a valid unit (48h)"/>
224        <case id="1-265" unit="g/4h" valid="false" reason="not a valid unit (4h)"/>
225        <case id="1-266" unit="g/6h" valid="false" reason="not a valid unit (6h)"/>
226        <case id="1-267" unit="g/72h" valid="false" reason="not a valid unit (72h)"/>
227        <case id="1-268" unit="g/d" valid="true"/>
228        <case id="1-269" unit="g/g" valid="true"/>
229        <case id="1-270" unit="g/L" valid="true"/>
230        <case id="1-271" unit="h" valid="true"/>
231        <case id="1-272" unit="km" valid="true"/>
232        <case id="1-273" unit="kU/L" valid="true"/>
233        <case id="1-274" unit="L/L" valid="true"/>
234        <case id="1-275" unit="m[IU]/L" valid="true"/>
235        <case id="1-275-a" unit="m[iIU]/L" valid="false" reason="not a valid unit (iIU)"/>
236        <case id="1-276" unit="mg" valid="true"/>
237        <case id="1-277" unit="mg/12h" valid="false" reason="not a valid unit (12h)"/>
238        <case id="1-278" unit="mg/d" valid="true"/>
239        <case id="1-279" unit="mg/g" valid="true"/>
240        <case id="1-280" unit="mg/L" valid="true"/>
241        <case id="1-281" unit="mg/mg" valid="true"/>
242        <case id="1-282" unit="mg/mL" valid="true"/>
243        <case id="1-283" unit="min" valid="true"/>
244        <case id="1-284" unit="mL" valid="true"/>
245        <case id="1-285" unit="mL/10h" valid="false" reason="not a valid unit (10h)"/>
246        <case id="1-286" unit="mL/12h" valid="false" reason="not a valid unit (12h)"/>
247        <case id="1-287" unit="mL/2h" valid="false" reason="not a valid unit (2h)"/>
248        <case id="1-288" unit="mL/4h" valid="false" reason="not a valid unit (4h)"/>
249        <case id="1-289" unit="mL/5h" valid="false" reason="not a valid unit (5h)"/>
250        <case id="1-290" unit="mL/6h" valid="false" reason="not a valid unit (6h)"/>
251        <case id="1-291" unit="mL/72h" valid="false" reason="not a valid unit (72h)"/>
252        <case id="1-292" unit="mL/8h" valid="false" reason="not a valid unit (8h)"/>
253        <case id="1-293" unit="mL/d" valid="true"/>
254        <case id="1-294" unit="mL/min" valid="true"/>
255        <case id="1-295" unit="mm" valid="true"/>
256        <case id="1-296" unit="mm/h" valid="true"/>
257        <case id="1-297" unit="mm[Hg]" valid="true"/>
258        <case id="1-298" unit="mmol" valid="true"/>
259        <case id="1-299" unit="mmol/12h" valid="false" reason="not a valid unit (12h)"/>
260        <case id="1-300" unit="mmol/5h" valid="false" reason="not a valid unit (5h)"/>
261        <case id="1-301" unit="mmol/6h" valid="false" reason="not a valid unit (6h)"/>
262        <case id="1-302" unit="mmol/d" valid="true"/>
263        <case id="1-303" unit="mmol/g" valid="true"/>
264        <case id="1-304" unit="mmol/kg" valid="true"/>
265        <case id="1-305" unit="mmol/kg[H20]" valid="false" reason="not a valid unit (kg[H20])"/>
266        <case id="1-306" unit="mmol/L" valid="true"/>
267        <case id="1-307" unit="mmol/mmol" valid="true"/>
268        <case id="1-308" unit="mU/L" valid="true"/>
269        <case id="1-309" unit="ng/d" valid="true"/>
270        <case id="1-310" unit="ng/g" valid="true"/>
271        <case id="1-311" unit="ng/L" valid="true"/>
272        <case id="1-312" unit="ng/mL" valid="true"/>
273        <case id="1-313" unit="nmol/d" valid="true"/>
274        <case id="1-314" unit="nmol/g" valid="true"/>
275        <case id="1-315" unit="nmol/h/mL" valid="true"/>
276        <case id="1-316" unit="nmol/L" valid="true"/>
277        <case id="1-317" unit="nmol/mmol" valid="true"/>
278        <case id="1-318" unit="nmol/nmol" valid="true"/>
279        <case id="1-319" unit="pg" valid="true"/>
280        <case id="1-320" unit="pg/mL" valid="true"/>
281        <case id="1-321" unit="pmol/d" valid="true"/>
282        <case id="1-322" unit="pmol/g" valid="true"/>
283        <case id="1-323" unit="pmol/h/mg" valid="true"/>
284        <case id="1-324" unit="pmol/h/mL" valid="true"/>
285        <case id="1-325" unit="pmol/L" valid="true"/>
286        <case id="1-326" unit="pmol/mmol" valid="true"/>
287        <case id="1-327" unit="s" valid="true"/>
288        <case id="1-328" unit="U" valid="true"/>
289        <case id="1-329" unit="U/12h" valid="false" reason="not a valid unit (12h)"/>
290        <case id="1-330" unit="U/1h" valid="false" reason="not a valid unit (1h)"/>
291        <case id="1-331" unit="U/2h" valid="false" reason="not a valid unit (2h)"/>
292        <case id="1-332" unit="U/d" valid="true"/>
293        <case id="1-333" unit="U/g" valid="true"/>
294        <case id="1-334" unit="U/kg" valid="true"/>
295        <case id="1-335" unit="U/L" valid="true"/>
296        <case id="1-336" unit="U/mL" valid="true"/>
297        <case id="1-337" unit="u[IU]/mL" valid="true"/>
298        <case id="1-337a" unit="u[iIU]/mL" valid="false" reason="not a valid unit (iIU)"/>
299        <case id="1-338" unit="ug" valid="true"/>
300        <case id="1-339" unit="ug/d" valid="true"/>
301        <case id="1-340" unit="ug/g" valid="true"/>
302        <case id="1-341" unit="ug/L" valid="true"/>
303        <case id="1-342" unit="ug/mL" valid="true"/>
304        <case id="1-343" unit="um/s" valid="true"/>
305        <case id="1-344" unit="umol" valid="true"/>
306        <case id="1-345" unit="umol/2.h" valid="true"/>
307        <case id="1-346" unit="umol/d" valid="true"/>
308        <case id="1-347" unit="umol/g" valid="true"/>
309        <case id="1-348" unit="umol/L" valid="true"/>
310        <case id="1-349" unit="umol/mmol" valid="true"/>
311        <case id="1-350" unit="umol/umol" valid="true"/>
312        <case id="1-351" unit="wk" valid="true"/>
313
314        <!--
315          These codes are taken from Keith's draft list of ICO/UCUM codes,
316      at http://motorcycleguy.blogspot.com/2009/11/iso-to-ucum-mapping-table.html
317          -->
318    <case id="k=1=001" unit="[arb'U]" valid="true"/>
319    <case id="k=1=002" unit="dyn.s/(cm5.m2)" valid="true"/>
320    <case id="k=1=003" unit="[iU]/mL" valid="true"/>
321    <case id="k=1=004" unit="mL/h" valid="true"/>
322    <case id="k=1=005" unit="[bdsk'U]" valid="true"/>
323    <case id="k=1=006" unit="dyn.s/cm5" valid="true"/>
324    <case id="k=1=007" unit="K/W" valid="true"/>
325    <case id="k=1=008" unit="mm[Hg]" valid="true"/>
326    <case id="k=1=009" unit="{bsa}" valid="true"/>
327    <case id="k=1=010" unit="cm[H2O]" valid="true"/>
328    <case id="k=1=010" unit="cm[H20]" valid="false"/>
329    <case id="k=1=011" unit="kg{body_wt}" valid="true"/>
330    <case id="k=1=012" unit="mm/h" valid="true"/>
331    <case id="k=1=013" unit="cal" valid="true"/>
332    <case id="k=1=014" unit="cm[H2O].s/L" valid="true"/>
333    <case id="k=1=015" unit="kg/m2" valid="true"/>
334    <case id="k=1=016" unit="mmol/(8.h.kg)" valid="true"/>
335    <case id="k=1=017" unit="{cfu}" valid="true"/>
336    <case id="k=1=018" unit="cm[H2O]/(s.m)" valid="true"/>
337    <case id="k=1=019" unit="kg/h" valid="true"/>
338    <case id="k=1=010" unit="mmol/(8.h)" valid="true"/>
339    <case id="k=1=021" unit="[drp]" valid="true"/>
340    <case id="k=1=022" unit="dB[SPL]" valid="true"/>
341    <case id="k=1=023" unit="L/(8.h)" valid="true"/>
342    <case id="k=1=024" unit="mmol/(kg.h)" valid="true"/>
343    <case id="k=1=025" unit="[ka'U]" valid="true"/>
344    <case id="k=1=026" unit="REM" valid="true"/>
345    <case id="k=1=027" unit="L/h" valid="true"/>
346    <case id="k=1=028" unit="mmol/h" valid="true"/>
347    <case id="k=1=029" unit="kcal" valid="true"/>
348    <case id="k=1=030" unit="g{creat}" valid="true"/>
349    <case id="k=1=031" unit="[lb_av]" valid="true"/>
350    <case id="k=1=032" unit="ng/(8.h)" valid="true"/>
351    <case id="k=1=033" unit="kcal/(8.h)" valid="true"/>
352    <case id="k=1=034" unit="g{hgb}" valid="true"/>
353    <case id="k=1=035" unit="ng/(8.h.kg)" valid="true"/>
354    <case id="k=1=036" unit="kcal/d" valid="true"/>
355    <case id="k=1=037" unit="g{tit_nit}" valid="true"/>
356    <case id="k=1=038" unit="ms/s" valid="true"/>
357    <case id="k=1=039" unit="ng/(kg.h)" valid="true"/>
358    <case id="k=1=040" unit="kcal/h" valid="true"/>
359    <case id="k=1=041" unit="g{tot_prot}" valid="true"/>
360    <case id="k=1=042" unit="Ms" valid="true"/>
361    <case id="k=1=043" unit="ng/h" valid="true"/>
362    <case id="k=1=044" unit="[knk'U]" valid="true"/>
363    <case id="k=1=045" unit="g{wet_tis}" valid="true"/>
364    <case id="k=1=046" unit="meq/(8.h)" valid="true"/>
365    <case id="k=1=047" unit="osm" valid="true"/>
366    <case id="k=1=048" unit="[mclg'U]" valid="true"/>
367    <case id="k=1=049" unit="g.m/{hb}m2" valid="true"/>
368    <case id="k=1=050" unit="meq/(8.h.kg)" valid="true"/>
369    <case id="k=1=051" unit="osm/kg" valid="true"/>
370    <case id="k=1=052" unit="{od}" valid="true"/>
371    <case id="k=1=053" unit="g.m/{hb}" valid="true"/>
372    <case id="k=1=054" unit="meq/(kg.h)" valid="true"/>
373    <case id="k=1=055" unit="osm/L" valid="true"/>
374    <case id="k=1=056" unit="pH" valid="true"/>
375    <case id="k=1=057" unit="g/(8.h)" valid="true"/>
376    <case id="k=1=058" unit="meq/h" valid="true"/>
377    <case id="k=1=059" unit="pA" valid="true"/>
378    <case id="k=1=060" unit="[ppb]" valid="true"/>
379    <case id="k=1=061" unit="g/(8.kg.h)" valid="true"/>
380    <case id="k=1=062" unit="mg/(8.h)" valid="true"/>
381    <case id="k=1=063" unit="Pa" valid="true"/>
382    <case id="k=1=064" unit="[ppm]" valid="true"/>
383    <case id="k=1=065" unit="g/(kg.h)" valid="true"/>
384    <case id="k=1=066" unit="mg/(8.h.kg)" valid="true"/>
385    <case id="k=1=067" unit="[pptr]" valid="true"/>
386    <case id="k=1=068" unit="g/h" valid="true"/>
387    <case id="k=1=069" unit="mg/(kg.h)" valid="true"/>
388    <case id="k=1=070" unit="S" valid="true"/>
389    <case id="k=1=071" unit="[ppth]" valid="true"/>
390    <case id="k=1=072" unit="[in_us]" valid="true"/>
391    <case id="k=1=073" unit="mg/h" valid="true"/>
392    <case id="k=1=074" unit="ug(8.h)" valid="false"/>
393    <case id="k=1=074" unit="ug(8hr)" valid="false"/>
394    <case id="k=1=075" unit="[todd'U]" valid="true"/>
395    <case id="k=1=076" unit="[in_i'Hg]" valid="true"/>
396    <case id="k=1=077" unit="m[iU]/mL" valid="true"/>
397    <case id="k=1=078" unit="ug/(8.h.kg)" valid="true"/>
398    <case id="k=1=079" unit="/[arb'U]" valid="true"/>
399    <case id="k=1=080" unit="[iU]" valid="true"/>
400    <case id="k=1=081" unit="mL/{hb}.m2" valid="true"/>
401    <case id="k=1=082" unit="ug/(kg.h)" valid="true"/>
402    <case id="k=1=083" unit="[HPF]" valid="true"/>
403    <case id="k=1=084" unit="[iU]/d" valid="true"/>
404    <case id="k=1=085" unit="mL/(8.h)" valid="true"/>
405    <case id="k=1=086" unit="ug/h" valid="true"/>
406    <case id="k=1=087" unit="/{tot}" valid="true"/>
407    <case id="k=1=088" unit="[iU]/h" valid="true"/>
408    <case id="k=1=089" unit="mL/(8.h.kg)" valid="true"/>
409
410    <case id="k=1=090" unit="u[iU]" valid="true"/>
411    <case id="k=1=091" unit="/[iU]" valid="true"/>
412    <case id="k=1=092" unit="[iU]/kg" valid="true"/>
413    <case id="k=1=093" unit="mL/{hb}" valid="true"/>
414    <case id="k=1=094" unit="10*3{rbc}" valid="true"/>
415    <case id="k=1=095" unit="[iU]/L" valid="true"/>
416    <case id="k=1=096" unit="mL/(kg.h)" valid="true"/>
417    <case id="k=1=097" unit="10.L/(min.m2)" valid="true"/>
418    <case id="k=1=098" unit="[iU]/min" valid="true"/>
419    <case id="k=1=099" unit="mL/cm[H2O]" valid="true"/>
420    <case id="k=1=100" unit="%" valid="true"/>
421    <case id="k=1=101" unit="bar" valid="true"/>
422    <case id="k=1=102" unit="g/L" valid="true"/>
423    <case id="k=1=103" unit="L.s" valid="true"/>
424    <case id="k=1=104" unit="mg" valid="true"/>
425    <case id="k=1=105" unit="mmol/(kg.d)" valid="true"/>
426    <case id="k=1=106" unit="ng/L" valid="true"/>
427    <case id="k=1=107" unit="ueq" valid="true"/>
428    <case id="k=1=108" unit="/kg" valid="true"/>
429    <case id="k=1=109" unit="Bq" valid="true"/>
430    <case id="k=1=110" unit="g/m2" valid="true"/>
431    <case id="k=1=111" unit="L/(min.m2)" valid="true"/>
432    <case id="k=1=112" unit="mg/(kg.d)" valid="true"/>
433    <case id="k=1=113" unit="mmol/(kg.min)" valid="true"/>
434    <case id="k=1=114" unit="ng/m2" valid="true"/>
435    <case id="k=1=115" unit="ug" valid="true"/>
436    <case id="k=1=116" unit="/L" valid="true"/>
437    <case id="k=1=117" unit="Cel" valid="true"/>
438    <case id="k=1=118" unit="g/min" valid="true"/>
439    <case id="k=1=119" unit="L/d" valid="true"/>
440    <case id="k=1=120" unit="mg/(kg.min)" valid="true"/>
441    <case id="k=1=121" unit="mmol/kg" valid="true"/>
442    <case id="k=1=122" unit="ng/min" valid="true"/>
443    <case id="k=1=123" unit="ug/(kg.d)" valid="true"/>
444    <case id="k=1=124" unit="/m3" valid="true"/>
445    <case id="k=1=125" unit="cm" valid="true"/>
446    <case id="k=1=126" unit="Gy" valid="true"/>
447    <case id="k=1=127" unit="L/kg" valid="true"/>
448    <case id="k=1=128" unit="mg/d" valid="true"/>
449    <case id="k=1=129" unit="mmol/L" valid="true"/>
450    <case id="k=1=130" unit="ng/mL" valid="true"/>
451    <case id="k=1=131" unit="ug/(kg.min)" valid="true"/>
452    <case id="k=1=132" unit="/min" valid="true"/>
453    <case id="k=1=133" unit="cm2/s" valid="true"/>
454    <case id="k=1=134" unit="h" valid="true"/>
455    <case id="k=1=135" unit="L/min" valid="true"/>
456    <case id="k=1=136" unit="mg/dL" valid="true"/>
457    <case id="k=1=137" unit="mmol/m2" valid="true"/>
458    <case id="k=1=138" unit="ng/s" valid="true"/>
459    <case id="k=1=139" unit="ug/d" valid="true"/>
460    <case id="k=1=140" unit="/m3" valid="true"/>
461    <case id="k=1=141" unit="d" valid="true"/>
462    <case id="k=1=142" unit="hL" valid="true"/>
463    <case id="k=1=143" unit="L/s" valid="true"/>
464    <case id="k=1=144" unit="mg/kg" valid="true"/>
465    <case id="k=1=145" unit="mmol/min" valid="true"/>
466    <case id="k=1=146" unit="nkat" valid="true"/>
467    <case id="k=1=147" unit="ug/dL" valid="true"/>
468    <case id="k=1=148" unit="/min" valid="true"/>
469    <case id="k=1=149" unit="dB" valid="true"/>
470    <case id="k=1=150" unit="J/L" valid="true"/>
471    <case id="k=1=151" unit="lm" valid="true"/>
472    <case id="k=1=152" unit="mg/L" valid="true"/>
473    <case id="k=1=153" unit="mol/(kg.s)" valid="true"/>
474    <case id="k=1=154" unit="nm" valid="true"/>
475    <case id="k=1=155" unit="ug/g" valid="true"/>
476    <case id="k=1=156" unit="/mL" valid="true"/>
477    <case id="k=1=157" unit="deg" valid="true"/>
478    <case id="k=1=158" unit="kat" valid="true"/>
479    <case id="k=1=159" unit="m" valid="true"/>
480    <case id="k=1=160" unit="mg/m2" valid="true"/>
481    <case id="k=1=161" unit="mol/kg" valid="true"/>
482    <case id="k=1=162" unit="nmol/s" valid="true"/>
483    <case id="k=1=163" unit="ug/kg" valid="true"/>
484    <case id="k=1=164" unit="1/mL" valid="true"/>
485    <case id="k=1=165" unit="eq" valid="true"/>
486    <case id="k=1=166" unit="kat/kg" valid="true"/>
487    <case id="k=1=167" unit="m/s2" valid="true"/>
488    <case id="k=1=168" unit="mg/m3" valid="true"/>
489    <case id="k=1=169" unit="mol/L" valid="true"/>
490    <case id="k=1=170" unit="ns" valid="true"/>
491    <case id="k=1=171" unit="ug/L" valid="true"/>
492    <case id="k=1=172" unit="10*12/L" valid="true"/>
493    <case id="k=1=173" unit="eV" valid="true"/>
494    <case id="k=1=174" unit="kat/L" valid="true"/>
495    <case id="k=1=175" unit="m2" valid="true"/>
496    <case id="k=1=176" unit="mg/min" valid="true"/>
497    <case id="k=1=177" unit="mol/m3" valid="true"/>
498    <case id="k=1=178" unit="Ohm" valid="true"/>
499    <case id="k=1=179" unit="ug/m2" valid="true"/>
500    <case id="k=1=180" unit="10*3/L" valid="true"/>
501    <case id="k=1=182" unit="kg" valid="true"/>
502    <case id="k=1=183" unit="m2/s" valid="true"/>
503    <case id="k=1=184" unit="mL" valid="true"/>
504    <case id="k=1=185" unit="mol/s" valid="true"/>
505    <case id="k=1=186" unit="Ohm.m" valid="true"/>
506    <case id="k=1=187" unit="ug/min" valid="true"/>
507    <case id="k=1=188" unit="10*3/mL" valid="true"/>
508    <case id="k=1=189" unit="fg" valid="true"/>
509    <case id="k=1=190" unit="kg.m/s" valid="true"/>
510    <case id="k=1=191" unit="m3/s" valid="true"/>
511    <case id="k=1=192" unit="mL/(kg.d)" valid="true"/>
512    <case id="k=1=193" unit="mosm/L" valid="true"/>
513    <case id="k=1=194" unit="pg" valid="true"/>
514    <case id="k=1=195" unit="ukat" valid="true"/>
515    <case id="k=1=196" unit="10*3/mm3" valid="true"/>
516    <case id="k=1=197" unit="fL" valid="true"/>
517    <case id="k=1=198" unit="kg/(s.m2)" valid="true"/>
518    <case id="k=1=199" unit="mbar" valid="true"/>
519    <case id="k=1=200" unit="mL/(kg.min)" valid="true"/>
520    <case id="k=1=201" unit="ms" valid="true"/>
521    <case id="k=1=202" unit="pg/L" valid="true"/>
522    <case id="k=1=203" unit="um" valid="true"/>
523    <case id="k=1=204" unit="10*6/L" valid="true"/>
524    <case id="k=1=205" unit="fmol" valid="true"/>
525    <case id="k=1=206" unit="kg/L" valid="true"/>
526    <case id="k=1=207" unit="mbar.s/L" valid="true"/>
527    <case id="k=1=208" unit="mL/(min.m2)" valid="true"/>
528    <case id="k=1=209" unit="mV" valid="true"/>
529    <case id="k=1=210" unit="pg/mL" valid="true"/>
530    <case id="k=1=211" unit="umol" valid="true"/>
531    <case id="k=1=212" unit="10*6/mL" valid="true"/>
532    <case id="k=1=213" unit="g" valid="true"/>
533    <case id="k=1=214" unit="kg/m3" valid="true"/>
534    <case id="k=1=215" unit="meq" valid="true"/>
535    <case id="k=1=216" unit="mL/d" valid="true"/>
536    <case id="k=1=218" unit="pkat" valid="true"/>
537    <case id="k=1=219" unit="umol/d" valid="true"/>
538    <case id="k=1=220" unit="10*6/mm3" valid="true"/>
539    <case id="k=1=221" unit="g.m" valid="true"/>
540    <case id="k=1=222" unit="kg/min" valid="true"/>
541    <case id="k=1=223" unit="meq/(kg.d)" valid="true"/>
542    <case id="k=1=224" unit="mL/kg" valid="true"/>
543    <case id="k=1=226" unit="pm" valid="true"/>
544    <case id="k=1=227" unit="umol/L" valid="true"/>
545    <case id="k=1=228" unit="10*9/L" valid="true"/>
546    <case id="k=1=229" unit="g/(kg.d)" valid="true"/>
547    <case id="k=1=230" unit="kg/mol" valid="true"/>
548    <case id="k=1=231" unit="meq/(kg.min)" valid="true"/>
549    <case id="k=1=232" unit="mL/m2" valid="true"/>
550    <case id="k=1=233" unit="ng" valid="true"/>
551    <case id="k=1=234" unit="pmol" valid="true"/>
552    <case id="k=1=235" unit="umol/min" valid="true"/>
553    <case id="k=1=236" unit="10*9/mL" valid="true"/>
554    <case id="k=1=237" unit="g/(kg.min)" valid="true"/>
555    <case id="k=1=238" unit="kg/s" valid="true"/>
556    <case id="k=1=239" unit="meq/d" valid="true"/>
557    <case id="k=1=240" unit="mL/mbar" valid="true"/>
558    <case id="k=1=241" unit="ng/(kg.d)" valid="true"/>
559    <case id="k=1=242" unit="ps" valid="true"/>
560    <case id="k=1=243" unit="us" valid="true"/>
561    <case id="k=1=244" unit="10*9/mm3" valid="true"/>
562    <case id="k=1=245" unit="g/d" valid="true"/>
563    <case id="k=1=246" unit="kPa" valid="true"/>
564    <case id="k=1=247" unit="meq/kg" valid="true"/>
565    <case id="k=1=248" unit="mL/min" valid="true"/>
566    <case id="k=1=249" unit="ng/(kg.min)" valid="true"/>
567    <case id="k=1=250" unit="pt" valid="true"/>
568    <case id="k=1=251" unit="uV" valid="true"/>
569    <case id="k=1=252" unit="10.L/min" valid="true"/>
570    <case id="k=1=253" unit="g/dL" valid="true"/>
571    <case id="k=1=254" unit="ks" valid="true"/>
572    <case id="k=1=255" unit="meq/L" valid="true"/>
573    <case id="k=1=256" unit="mL/s" valid="true"/>
574    <case id="k=1=257" unit="ng/d" valid="true"/>
575    <case id="k=1=258" unit="Sv" valid="true"/>
576    <case id="k=1=259" unit="V" valid="true"/>
577    <case id="k=1=260" unit="a/m" valid="true"/>
578    <case id="k=1=261" unit="g/kg" valid="true"/>
579    <case id="k=1=262" unit="L" valid="true"/>
580    <case id="k=1=263" unit="meq/min" valid="true"/>
581    <case id="k=1=264" unit="mm" valid="true"/>
582    <case id="k=1=265" unit="ng/kg" valid="true"/>
583    <case id="k=1=266" unit="t" valid="true"/>
584    <case id="k=1=267" unit="Wb" valid="true"/>
585  </validation>
586 
587  <displayNameGeneration>
588    <!--
589          This is a somewhat trivial concept, but here to encourage standard practice
590          where it matters - the ability to take a code and produce a (slightly) more
591          human readable long form (might correspond to the HL7 v3 / ISO data types
592          concept of display name)
593        -->
594    <case id="2-101" unit="" display="(unity)"/>
595        <case id="2-102" unit="m" display="(meter)"/>
596        <case id="2-103" unit="mm" display="(millimeter)"/>
597        <case id="2-104" unit="m[H2O]" display="(meter of water column)"/>
598        <case id="2-105" unit="10*23" display="(the number ten for arbitrary powers ^ 23)"/>
599        <case id="2-106" unit="rad2" display="(radian ^ 2)"/>
600        <case id="2-107" unit="m3.kg-1.s-2" display="(meter ^ 3) * (kilogram ^ -1) * (second ^ -2)"/>
601        <case id="2-108" unit="4.[pi].10*-7.N/A2" display="4 * (the number pi) * (the number ten for arbitrary powers ^ -7) * (Newton) / (Amp&#232;re ^ 2)"/>
602  </displayNameGeneration>             
603
604 
605  <conversion>
606    <!--
607          Conversion Tests
608          given value/srcUnit, what is the value in dstUnit?
609         
610          Note that we don't check directly what the canonical unit is. In fact,
611          no particular form is actually defined for UCUM - it's up the implementor
612          to define their own. However these tests check that the chosen canonical
613          form is working correctly as they work, since it's required to perform
614          these conversions
615         
616          note that the outcome is also not necessarily fixed to the given representation.
617          for instance, 0.001 or 1e-3 are both acceptable
618         
619          the precision for the [mu_0] related tests is that derived by long hand maintenance
620          of the precision for [pi] given in the ucum definitions. Implementations do not need
621          to maintain this precision
622        -->
623   
624        <case id="3-101"  value="6.3"      srcUnit="m"           dstUnit="m"             outcome="6.3"/>
625    <case id="3-102"  value="6.3"      srcUnit="mm"          dstUnit="m"             outcome="0.0063"/>
626    <case id="3-103"  value="6.3"      srcUnit="mm"          dstUnit="cm"            outcome="0.63"/>
627    <case id="3-104"  value="6.3"      srcUnit="s.m-1"       dstUnit="s/m"           outcome="6.3"/>
628    <case id="3-105" value="6.3"      srcUnit="s.mm-1"      dstUnit="s.m-1"         outcome="6300"/>
629    <case id="3-106" value="6.3"      srcUnit="s.mm-2"      dstUnit="s.m-2"         outcome="6300000"/>
630    <case id="3-107" value="6.3"      srcUnit="s.mm-2"      dstUnit="s.m-2"         outcome="6300000"/>
631    <case id="3-108" value="6.3"      srcUnit="s/m/g"       dstUnit="s.m-1.g-1"       outcome="6.3"/>
632    <case id="3-109" value="6.3"      srcUnit="ms/m/g"      dstUnit="s.m-1.g-1"       outcome="0.0063"/>
633    <case id="3-110" value="6.3"      srcUnit="s/mm/g"      dstUnit="s.m-1.g-1"       outcome="6300"/>
634    <case id="3-111" value="6.3"      srcUnit="s/m/mg"      dstUnit="s.m-1.g-1"       outcome="0.0063"/>
635    <case id="3-112" value="6.3"      srcUnit="ms/m"        dstUnit="s/m"           outcome="0.0063"/>
636    <case id="3-113" value="6.3"      srcUnit="4.s/m"       dstUnit="s/m"           outcome="25"/>
637    <case id="3-114" value="6.30"     srcUnit="4.s/m"       dstUnit="s/m"           outcome="25.2"/>
638    <case id="3-115" value="6.3"      srcUnit="s/4.m"       dstUnit="s/m"           outcome="1.6"/>
639    <case id="3-116"  value="6.3"      srcUnit="s/mm"        dstUnit="s/m"           outcome="6300"/>
640    <case id="3-117"  value="6.3"      srcUnit="ms/mm"       dstUnit="s/m"           outcome="6.3"/>
641        <case id="3-118"  value="6.30"     srcUnit="[in_i]"      dstUnit="m"             outcome="0.160"/>
642        <case id="3-119"  value="6.300"    srcUnit="[in_i]"      dstUnit="cm"            outcome="16.0"/>
643        <case id="3-120" value="6.3"      srcUnit="g.m.s-2.A-2" dstUnit="g.m.C-2"       outcome="6.3"/>
644        <case id="3-121" value="1"      srcUnit="10*-7.s"       dstUnit="s"       outcome="1e-7"/>
645        <case id="3-122" value="1"      srcUnit="4.[pi].10*-7.s"  dstUnit="s"       outcome="0.00000125663706143591729538505735331180115367886775975004232838997783692"/>
646        <case id="3-123" value="1"      srcUnit="4.[pi].10*-7.N"  dstUnit="N"       outcome="1.25663706143591729538505735331180115367886775975004232838997783692e-6"/>
647        <case id="3-124" value="1"      srcUnit="[mu_0]" dstUnit="g.m.C-2"       outcome="1.2566370614359172953850573533118011536788677597500423283899778369e-3"/>     
648        <case id="3-125"  value="1"      srcUnit="m[Hg]"  dstUnit="g.s-2.m-1"     outcome="133322000"/>
649        <case id="3-126"  value="1"      srcUnit="S"      dstUnit="g-1.m-2.C2.s"  outcome="0.001"/>
650        <!--
651     Seiverts Canonicalisation (conceptual example):
652      S  1
653      Ohm-1  1
654      (V/A)-1  1
655      A/V       1
656      A/(J/C)     1
657      A/((N.m)/C)   1
658      A/(((kg.m/s2).m)/C)  1
659      (C/s)/(((g.m/s2).m)/C)   0.001
660      (C.s-1)/(((g.m/s2).m)/C)  0.001
661      (C.s-1)/(((g.m.s-2).m)/C)  0.001
662      (C.s-1)/(((g.m.s-2).m).C-1)  0.001
663      (C.s-1)/(g.m.s-2.m.C-1)   0.001
664      (C.s-1).(g-1.m-1.s2.m-1.C)   0.001
665      C.s-1.g-1.m-1.s2.m-1.C    0.001
666      C2.m-2.s.g-1          0.001
667      C2.g-1.m-2.s      (alphabetical)    0.001
668        -->
669        <case id="3-127" value="1"   srcUnit="[ly]"     dstUnit="cm"            outcome="946073047258080000"/>
670        <case id="3-128" value="1"   srcUnit="1/[ly]"   dstUnit="cm-1"          outcome="1.0570008340246e-18"/>
671        <case id="3-129"  value="1.2" srcUnit="g.m"      dstUnit="m.g"           outcome="1.2"/>
672   <!-- <case id="3-130"  value="0.02502"      srcUnit="[oz_av]/[gal_us]"       dstUnit="g/L"           outcome="0.1877"/> -->
673  </conversion>
674
675  <multiplication>
676    <!--
677          Given v1/u1, and v2/u2, multiply them together - should get something that is canonically equal
678          to vRes/uRes. Note that it doesn't have to be the same as vRes/uRes: the units
679          reported may differ in order or some other form, and the value may consequently
680          be different, but the result must convert to the stated value
681        -->
682    <case id="4-101" v1="1.5" u1="g" v2="2" u2="m" vRes="3.0" uRes="g.m"/>
683    <case id="4-102" v2="1.5" u2="g" v1="2" u1="m" vRes="3.0" uRes="g.m"/>
684  </multiplication>
685 
686   
687</ucumTests>
688