FunctionalTests: UcumFunctionalTests.xml

File UcumFunctionalTests.xml, 35.3 KB (added by grahamegrieve, 5 years ago)

Ucum Functional Tests, as of 18-Aug 2014

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