package org.openehr.rm.support.measurement;
import junit.framework.TestCase;
public class SimpleMeasurementServiceTest extends TestCase {
@Override
public void setUp() {
service = SimpleMeasurementService.getInstance();
}
public void testunitsEquivalent() throws Exception {
//assertTrue(service.unitsEquivalent("mg", "MG"));
assertFalse(service.unitsEquivalent("mg", "MG"));
assertFalse(service.unitsEquivalent("mg", "mG"));
assertTrue(service.unitsEquivalent("A", "C/s"));
assertFalse(service.unitsEquivalent("mg", "kg"));
}
public void testunitsComparable() throws Exception {
assertTrue(service.unitsComparable("mg", "kg"));
assertFalse(service.unitsComparable("mg", "ml"));
assertTrue(service.unitsComparable("cm", "[in_i]"));
}
public void testunitsComparison() throws Exception {
assertTrue(service.compare("kg", 1.0, "g", 1000.0)==0);
assertTrue(service.compare("l", 1.0, "ml", 100.0)>0);
assertTrue(service.compare("[in_i]", 2.0, "cm", 5.0)>0);
assertFalse(service.compare("[in_i]", 1000.0, "m", 26.0)>0);
}
public void testunitsValid() throws Exception {
assertTrue(service.isValidUnitsString("mg"));
assertTrue(service.isValidUnitsString("osm"));
assertTrue(service.isValidUnitsString("mm[Hg]"));
assertTrue(service.isValidUnitsString("ug"));
assertTrue(service.isValidUnitsString("ug/L"));
assertTrue(service.isValidUnitsString("ug/l"));
assertTrue(service.isValidUnitsString("km/h"));
assertTrue(service.isValidUnitsString("[iU]"));
assertTrue(service.isValidUnitsString("[IU]"));
assertTrue(service.isValidUnitsString("a")); // year
assertTrue(service.isValidUnitsString("wk"));
assertTrue(service.isValidUnitsString("1/wk"));
assertTrue(service.isValidUnitsString("/wk"));
assertTrue(service.isValidUnitsString("[oz_av]/wk"));
assertTrue(service.isValidUnitsString("eq"));
assertFalse(service.isValidUnitsString("Eq"));
assertFalse(service.isValidUnitsString("osmole"));
assertFalse(service.isValidUnitsString("iU"));
assertFalse(service.isValidUnitsString("yr")); // year is "a"
assertFalse(service.isValidUnitsString("milligm"));
assertFalse(service.isValidUnitsString("mgm"));
// White space is not recognized in a a unit term and should generally not occur.
// UCUM implementations may flag whitespace as an error rather than ignore it.
// Whitespace is not used as a separator of otherwise ambiguous parts of a unit term.
//assertFalse(service.isValidUnitsString(" ")); exactly one space is tolerated at the moment, because the openEHR specs prohibit it to be completely empty.
assertFalse(service.isValidUnitsString(" m"));
assertFalse(service.isValidUnitsString("m "));
assertFalse(service.isValidUnitsString("10*3/ ul"));
assertFalse(service.isValidUnitsString("10* 3/ul"));
assertFalse(service.isValidUnitsString("10 *3/ul"));
assertFalse(service.isValidUnitsString("rad2 {a}"));
assertFalse(service.isValidUnitsString("rad 2{a}"));
// Official UCUM tests:
assertTrue(service.isValidUnitsString("m"));
assertFalse(service.isValidUnitsString("m/")); // / is not followed by a term
//assertFalse(service.isValidUnitsString("")); strictly, "" is not a valid unit expression. But e.g. v3 data types say it is the default to use if not units are provided.
assertTrue(service.isValidUnitsString("/m"));
assertTrue(service.isValidUnitsString("10*3/ul"));
assertTrue(service.isValidUnitsString("10*-3/ul"));
assertTrue(service.isValidUnitsString("10*+3/ul"));
assertFalse(service.isValidUnitsString("10+3/ul")); // 10 is not a valid unit
assertTrue(service.isValidUnitsString("m"));
assertTrue(service.isValidUnitsString("m[H2O]"));
assertTrue(service.isValidUnitsString("10*23"));
assertTrue(service.isValidUnitsString("rad2"));
assertTrue(service.isValidUnitsString("m3.kg-1.s-2"));
assertTrue(service.isValidUnitsString("4.[pi].10*-7.N/A2"));
/** test that the parser supports both {} inserts, but not unicode characters too, while we're at it */
assertTrue(service.isValidUnitsString("rad2{a}"));
assertFalse(service.isValidUnitsString("rad2{錠}")); // no unicode chars allowed.
assertTrue(service.isValidUnitsString("{a}.rad2{b}"));
assertFalse(service.isValidUnitsString("{a}rad2{b}")); //Cannot start a symbol with an annodation
assertTrue(service.isValidUnitsString("1{c}"));
assertFalse(service.isValidUnitsString("{|}1")); // Cannot start a symbol with an annotation
assertTrue(service.isValidUnitsString("{e}"));
assertTrue(service.isValidUnitsString("%"));
/**
These codes are taken from the first draft of a proposed Canadian UCUM subset.
(the subset was subsequently corrected after being tested) */
assertTrue(service.isValidUnitsString("[cup_us]"));
assertTrue(service.isValidUnitsString("[foz_br]"));
assertTrue(service.isValidUnitsString("[ft_i]"));
assertTrue(service.isValidUnitsString("[in_i]"));
assertTrue(service.isValidUnitsString("[yd_i]"));
assertTrue(service.isValidUnitsString("[gal_br]"));
assertTrue(service.isValidUnitsString("[lb_av]"));
assertTrue(service.isValidUnitsString("[oz_av]"));
assertTrue(service.isValidUnitsString("[pt_br]"));
assertTrue(service.isValidUnitsString("[qt_br]"));
assertTrue(service.isValidUnitsString("[sft_i]"));
assertTrue(service.isValidUnitsString("[sin_i]"));
assertTrue(service.isValidUnitsString("[syd_i]"));
assertTrue(service.isValidUnitsString("[tbs_us]"));
assertTrue(service.isValidUnitsString("[tsp_us]"));
assertTrue(service.isValidUnitsString("1/d"));
assertTrue(service.isValidUnitsString("1/min"));
assertTrue(service.isValidUnitsString("a"));
assertTrue(service.isValidUnitsString("cm"));
assertTrue(service.isValidUnitsString("cm2"));
assertTrue(service.isValidUnitsString("cm3"));
assertTrue(service.isValidUnitsString("d"));
assertTrue(service.isValidUnitsString("dg"));
assertTrue(service.isValidUnitsString("dl"));
assertTrue(service.isValidUnitsString("g"));
assertTrue(service.isValidUnitsString("g/d"));
assertTrue(service.isValidUnitsString("g/l"));
assertTrue(service.isValidUnitsString("h"));
assertFalse(service.isValidUnitsString("iU")); // iU needs [] around it
assertTrue(service.isValidUnitsString("kg"));
assertTrue(service.isValidUnitsString("l"));
assertTrue(service.isValidUnitsString("m"));
assertTrue(service.isValidUnitsString("mm"));
assertTrue(service.isValidUnitsString("m2"));
assertTrue(service.isValidUnitsString("meq"));
assertTrue(service.isValidUnitsString("mg"));
assertTrue(service.isValidUnitsString("mg"));
assertTrue(service.isValidUnitsString("mg/d"));
assertTrue(service.isValidUnitsString("min"));
assertTrue(service.isValidUnitsString("ml"));
assertTrue(service.isValidUnitsString("ml/s"));
assertTrue(service.isValidUnitsString("mm[Hg]"));
assertTrue(service.isValidUnitsString("mm2"));
assertTrue(service.isValidUnitsString("mm3"));
assertTrue(service.isValidUnitsString("mmol"));
assertTrue(service.isValidUnitsString("mmol/l"));
assertTrue(service.isValidUnitsString("mo"));
assertTrue(service.isValidUnitsString("mol"));
assertTrue(service.isValidUnitsString("ms"));
assertTrue(service.isValidUnitsString("mU"));
assertTrue(service.isValidUnitsString("ng"));
assertTrue(service.isValidUnitsString("ng"));
assertTrue(service.isValidUnitsString("nl"));
assertTrue(service.isValidUnitsString("nl"));
assertTrue(service.isValidUnitsString("pg/ml"));
assertTrue(service.isValidUnitsString("s"));
assertTrue(service.isValidUnitsString("U"));
assertTrue(service.isValidUnitsString("U/l"));
assertTrue(service.isValidUnitsString("ug"));
assertTrue(service.isValidUnitsString("ug/min"));
assertTrue(service.isValidUnitsString("ul"));
assertTrue(service.isValidUnitsString("umol"));
assertTrue(service.isValidUnitsString("umol/l"));
assertTrue(service.isValidUnitsString("wk"));
assertTrue(service.isValidUnitsString("%"));
assertTrue(service.isValidUnitsString("[cup_us]"));
assertTrue(service.isValidUnitsString("[foz_br]"));
assertTrue(service.isValidUnitsString("[gal_br]"));
assertTrue(service.isValidUnitsString("[sft_i]"));
assertTrue(service.isValidUnitsString("[sin_i]"));
assertTrue(service.isValidUnitsString("[lb_av]"));
assertTrue(service.isValidUnitsString("[oz_av]"));
assertTrue(service.isValidUnitsString("[pt_br]"));
assertTrue(service.isValidUnitsString("[qt_br]"));
assertTrue(service.isValidUnitsString("[tbs_us]"));
assertTrue(service.isValidUnitsString("[tsp_us]"));
assertTrue(service.isValidUnitsString("[syd_i]"));
assertTrue(service.isValidUnitsString("cm2"));
assertTrue(service.isValidUnitsString("cm3"));
assertTrue(service.isValidUnitsString("g"));
assertTrue(service.isValidUnitsString("kg"));
assertTrue(service.isValidUnitsString("l"));
assertTrue(service.isValidUnitsString("m2"));
assertTrue(service.isValidUnitsString("meq"));
assertTrue(service.isValidUnitsString("mg"));
assertTrue(service.isValidUnitsString("ml"));
assertTrue(service.isValidUnitsString("mm2"));
assertTrue(service.isValidUnitsString("mm3"));
assertTrue(service.isValidUnitsString("mmol"));
assertFalse(service.isValidUnitsString("molv")); // molv is not a valid unit
assertTrue(service.isValidUnitsString("mU"));
assertTrue(service.isValidUnitsString("ng"));
assertTrue(service.isValidUnitsString("nl"));
assertTrue(service.isValidUnitsString("U"));
assertTrue(service.isValidUnitsString("ug"));
assertTrue(service.isValidUnitsString("ul"));
assertTrue(service.isValidUnitsString("umol"));
assertTrue(service.isValidUnitsString("a"));
assertTrue(service.isValidUnitsString("d"));
assertTrue(service.isValidUnitsString("h"));
assertTrue(service.isValidUnitsString("min"));
assertTrue(service.isValidUnitsString("mo"));
assertTrue(service.isValidUnitsString("s"));
assertTrue(service.isValidUnitsString("wk"));
assertTrue(service.isValidUnitsString("[ft_i]"));
assertTrue(service.isValidUnitsString("[in_i]"));
assertTrue(service.isValidUnitsString("[lb_av]"));
assertTrue(service.isValidUnitsString("[oz_av]"));
assertTrue(service.isValidUnitsString("[yd_i]"));
assertTrue(service.isValidUnitsString("cm"));
assertTrue(service.isValidUnitsString("g"));
assertTrue(service.isValidUnitsString("kg"));
assertTrue(service.isValidUnitsString("m"));
assertTrue(service.isValidUnitsString("mm"));
assertTrue(service.isValidUnitsString("[mi_us]"));
assertTrue(service.isValidUnitsString("[yd_i]"));
assertTrue(service.isValidUnitsString("deg"));
assertTrue(service.isValidUnitsString("km"));
assertTrue(service.isValidUnitsString("m"));
assertTrue(service.isValidUnitsString("%"));
assertTrue(service.isValidUnitsString("/[HPF]"));
assertTrue(service.isValidUnitsString("/[LPF]"));
assertTrue(service.isValidUnitsString("/L"));
assertTrue(service.isValidUnitsString("/mL"));
assertTrue(service.isValidUnitsString("/mmol"));
assertTrue(service.isValidUnitsString("[APL'U]"));
assertFalse(service.isValidUnitsString("[BETH'U]")); // not a valid unit
assertTrue(service.isValidUnitsString("[GPL'U]"));
assertTrue(service.isValidUnitsString("[IU]"));
assertTrue(service.isValidUnitsString("[IU]/d"));
assertTrue(service.isValidUnitsString("[IU]/L"));
assertTrue(service.isValidUnitsString("[IU]/mL"));
assertFalse(service.isValidUnitsString("[iIU]")); // not a valid unit (iIU)
assertFalse(service.isValidUnitsString("[iIU]/d")); // not a valid unit (iIU)
assertFalse(service.isValidUnitsString("[iIU]/L")); // not a valid unit (iIU)
assertFalse(service.isValidUnitsString("[iIU]/mL")); // not a valid unit (iIU)
assertTrue(service.isValidUnitsString("[MPL'U]"));
assertTrue(service.isValidUnitsString("10*12/L"));
assertTrue(service.isValidUnitsString("10*6/L"));
assertTrue(service.isValidUnitsString("10*9/L"));
assertTrue(service.isValidUnitsString("Cel"));
assertTrue(service.isValidUnitsString("cm"));
assertTrue(service.isValidUnitsString("cm/s"));
assertTrue(service.isValidUnitsString("fL"));
assertTrue(service.isValidUnitsString("fmol/L"));
assertTrue(service.isValidUnitsString("g"));
assertFalse(service.isValidUnitsString("g/12h")); // not a valid unit (12h - should be 12.h)
assertFalse(service.isValidUnitsString("g/48h")); // not a valid unit (48h)
assertFalse(service.isValidUnitsString("g/4h")); // not a valid unit (4h)
assertFalse(service.isValidUnitsString("g/6h")); // not a valid unit (6h)
assertFalse(service.isValidUnitsString("g/72h")); // not a valid unit (72h)
assertTrue(service.isValidUnitsString("g/d"));
assertTrue(service.isValidUnitsString("g/g"));
assertTrue(service.isValidUnitsString("g/L"));
assertTrue(service.isValidUnitsString("h"));
assertTrue(service.isValidUnitsString("km"));
assertTrue(service.isValidUnitsString("kU/L"));
assertTrue(service.isValidUnitsString("L/L"));
assertTrue(service.isValidUnitsString("m[IU]/L"));
assertFalse(service.isValidUnitsString("m[iIU]/L")); // not a valid unit (iIU)
assertTrue(service.isValidUnitsString("mg"));
assertFalse(service.isValidUnitsString("mg/12h")); // not a valid unit (12h)
assertTrue(service.isValidUnitsString("mg/d"));
assertTrue(service.isValidUnitsString("mg/g"));
assertTrue(service.isValidUnitsString("mg/L"));
assertTrue(service.isValidUnitsString("mg/mg"));
assertTrue(service.isValidUnitsString("mg/mL"));
assertTrue(service.isValidUnitsString("min"));
assertTrue(service.isValidUnitsString("mL"));
assertFalse(service.isValidUnitsString("mL/10h")); // not a valid unit (10h)
assertFalse(service.isValidUnitsString("mL/12h")); // not a valid unit (12h)
assertFalse(service.isValidUnitsString("mL/2h")); // not a valid unit (2h)
assertFalse(service.isValidUnitsString("mL/4h")); // not a valid unit (4h)
assertFalse(service.isValidUnitsString("mL/5h")); // not a valid unit (5h)
assertFalse(service.isValidUnitsString("mL/6h")); // not a valid unit (6h)
assertFalse(service.isValidUnitsString("mL/72h")); // not a valid unit (72h)
assertFalse(service.isValidUnitsString("mL/8h")); // not a valid unit (8h)
assertTrue(service.isValidUnitsString("mL/d"));
assertTrue(service.isValidUnitsString("mL/min"));
assertTrue(service.isValidUnitsString("mm"));
assertTrue(service.isValidUnitsString("mm/h"));
assertTrue(service.isValidUnitsString("mm[Hg]"));
assertTrue(service.isValidUnitsString("mmol"));
assertFalse(service.isValidUnitsString("mmol/12h")); // not a valid unit (12h)
assertFalse(service.isValidUnitsString("mmol/5h")); // not a valid unit (5h)
assertFalse(service.isValidUnitsString("mmol/6h")); // not a valid unit (6h)
assertTrue(service.isValidUnitsString("mmol/d"));
assertTrue(service.isValidUnitsString("mmol/g"));
assertTrue(service.isValidUnitsString("mmol/kg"));
assertFalse(service.isValidUnitsString("mmol/kg[H20]")); // not a valid unit (kg[H20])
assertTrue(service.isValidUnitsString("mmol/L"));
assertTrue(service.isValidUnitsString("mmol/mmol"));
assertTrue(service.isValidUnitsString("mU/L"));
assertTrue(service.isValidUnitsString("ng/d"));
assertTrue(service.isValidUnitsString("ng/g"));
assertTrue(service.isValidUnitsString("ng/L"));
assertTrue(service.isValidUnitsString("ng/mL"));
assertTrue(service.isValidUnitsString("nmol/d"));
assertTrue(service.isValidUnitsString("nmol/g"));
assertTrue(service.isValidUnitsString("nmol/h/mL"));
assertTrue(service.isValidUnitsString("nmol/L"));
assertTrue(service.isValidUnitsString("nmol/mmol"));
assertTrue(service.isValidUnitsString("nmol/nmol"));
assertTrue(service.isValidUnitsString("pg"));
assertTrue(service.isValidUnitsString("pg/mL"));
assertTrue(service.isValidUnitsString("pmol/d"));
assertTrue(service.isValidUnitsString("pmol/g"));
assertTrue(service.isValidUnitsString("pmol/h/mg"));
assertTrue(service.isValidUnitsString("pmol/h/mL"));
assertTrue(service.isValidUnitsString("pmol/L"));
assertTrue(service.isValidUnitsString("pmol/mmol"));
assertTrue(service.isValidUnitsString("s"));
assertTrue(service.isValidUnitsString("U"));
assertFalse(service.isValidUnitsString("U/12h")); // not a valid unit (12h)
assertFalse(service.isValidUnitsString("U/1h")); // not a valid unit (1h)
assertFalse(service.isValidUnitsString("U/2h")); // not a valid unit (2h)
assertTrue(service.isValidUnitsString("U/d"));
assertTrue(service.isValidUnitsString("U/g"));
assertTrue(service.isValidUnitsString("U/kg"));
assertTrue(service.isValidUnitsString("U/L"));
assertTrue(service.isValidUnitsString("U/mL"));
assertTrue(service.isValidUnitsString("u[IU]/mL"));
assertFalse(service.isValidUnitsString("u[iIU]/mL")); // not a valid unit (iIU)
assertTrue(service.isValidUnitsString("ug"));
assertTrue(service.isValidUnitsString("ug/d"));
assertTrue(service.isValidUnitsString("ug/g"));
assertTrue(service.isValidUnitsString("ug/L"));
assertTrue(service.isValidUnitsString("ug/mL"));
assertTrue(service.isValidUnitsString("um/s"));
assertTrue(service.isValidUnitsString("umol"));
assertTrue(service.isValidUnitsString("umol/2.h"));
assertTrue(service.isValidUnitsString("umol/d"));
assertTrue(service.isValidUnitsString("umol/g"));
assertTrue(service.isValidUnitsString("umol/L"));
assertTrue(service.isValidUnitsString("umol/mmol"));
assertTrue(service.isValidUnitsString("umol/umol"));
assertTrue(service.isValidUnitsString("wk"));
/**
These codes are taken from Keith's draft list of ICO/UCUM codes,
at http://motorcycleguy.blogspot.com/2009/11/iso-to-ucum-mapping-table.html
*/
assertTrue(service.isValidUnitsString("[arb'U]"));
assertTrue(service.isValidUnitsString("dyn.s/(cm5.m2)"));
assertTrue(service.isValidUnitsString("[iU]/mL"));
assertTrue(service.isValidUnitsString("mL/h"));
assertTrue(service.isValidUnitsString("[bdsk'U]"));
assertTrue(service.isValidUnitsString("dyn.s/cm5"));
assertTrue(service.isValidUnitsString("K/W"));
assertTrue(service.isValidUnitsString("mm[Hg]"));
assertTrue(service.isValidUnitsString("{bsa}"));
assertTrue(service.isValidUnitsString("cm[H2O]"));
assertFalse(service.isValidUnitsString("cm[H20]"));
assertTrue(service.isValidUnitsString("kg{body_wt}"));
assertTrue(service.isValidUnitsString("mm/h"));
assertTrue(service.isValidUnitsString("cal"));
assertTrue(service.isValidUnitsString("cm[H2O].s/L"));
assertTrue(service.isValidUnitsString("kg/m2"));
assertTrue(service.isValidUnitsString("mmol/(8.h.kg)"));
assertTrue(service.isValidUnitsString("{cfu}"));
assertTrue(service.isValidUnitsString("cm[H2O]/(s.m)"));
assertTrue(service.isValidUnitsString("kg/h"));
assertTrue(service.isValidUnitsString("mmol/(8.h)"));
assertTrue(service.isValidUnitsString("[drp]"));
assertTrue(service.isValidUnitsString("dB[SPL]"));
assertTrue(service.isValidUnitsString("L/(8.h)"));
assertTrue(service.isValidUnitsString("mmol/(kg.h)"));
assertTrue(service.isValidUnitsString("[ka'U]"));
assertTrue(service.isValidUnitsString("REM"));
assertTrue(service.isValidUnitsString("L/h"));
assertTrue(service.isValidUnitsString("mmol/h"));
assertTrue(service.isValidUnitsString("kcal"));
assertTrue(service.isValidUnitsString("g{creat}"));
assertTrue(service.isValidUnitsString("[lb_av]"));
assertTrue(service.isValidUnitsString("ng/(8.h)"));
assertTrue(service.isValidUnitsString("kcal/(8.h)"));
assertTrue(service.isValidUnitsString("g{hgb}"));
assertTrue(service.isValidUnitsString("ng/(8.h.kg)"));
assertTrue(service.isValidUnitsString("kcal/d"));
assertTrue(service.isValidUnitsString("g{tit_nit}"));
assertTrue(service.isValidUnitsString("ms/s"));
assertTrue(service.isValidUnitsString("ng/(kg.h)"));
assertTrue(service.isValidUnitsString("kcal/h"));
assertTrue(service.isValidUnitsString("g{tot_prot}"));
assertTrue(service.isValidUnitsString("Ms"));
assertTrue(service.isValidUnitsString("ng/h"));
assertTrue(service.isValidUnitsString("[knk'U]"));
assertTrue(service.isValidUnitsString("g{wet_tis}"));
assertTrue(service.isValidUnitsString("meq/(8.h)"));
assertTrue(service.isValidUnitsString("osm"));
assertTrue(service.isValidUnitsString("[mclg'U]"));
assertFalse(service.isValidUnitsString("g.m/{hb}m2")); // This test is set to true in UcumFunctionalTests2.xml, but is later (in UcumFunctionalTests.xml!) corrected to the one below, which is correct.
assertTrue(service.isValidUnitsString("g.m/m2{hb}"));
assertTrue(service.isValidUnitsString("meq/(8.h.kg)"));
assertTrue(service.isValidUnitsString("osm/kg"));
assertTrue(service.isValidUnitsString("{od}"));
assertTrue(service.isValidUnitsString("g.m/{hb}"));
assertTrue(service.isValidUnitsString("meq/(kg.h)"));
assertTrue(service.isValidUnitsString("osm/L"));
assertTrue(service.isValidUnitsString("pH"));
assertTrue(service.isValidUnitsString("g/(8.h)"));
assertTrue(service.isValidUnitsString("meq/h"));
assertTrue(service.isValidUnitsString("pA"));
assertTrue(service.isValidUnitsString("[ppb]"));
assertTrue(service.isValidUnitsString("g/(8.kg.h)"));
assertTrue(service.isValidUnitsString("mg/(8.h)"));
assertTrue(service.isValidUnitsString("Pa"));
assertTrue(service.isValidUnitsString("[ppm]"));
assertTrue(service.isValidUnitsString("g/(kg.h)"));
assertTrue(service.isValidUnitsString("mg/(8.h.kg)"));
assertTrue(service.isValidUnitsString("[pptr]"));
assertTrue(service.isValidUnitsString("g/h"));
assertTrue(service.isValidUnitsString("mg/(kg.h)"));
assertTrue(service.isValidUnitsString("S"));
assertTrue(service.isValidUnitsString("[ppth]"));
assertTrue(service.isValidUnitsString("[in_us]"));
assertTrue(service.isValidUnitsString("mg/h"));
assertFalse(service.isValidUnitsString("ug(8.h)"));
assertFalse(service.isValidUnitsString("ug(8hr)"));
assertTrue(service.isValidUnitsString("[todd'U]"));
assertTrue(service.isValidUnitsString("[in_i'Hg]"));
assertTrue(service.isValidUnitsString("m[iU]/mL"));
assertTrue(service.isValidUnitsString("ug/(8.h.kg)"));
assertTrue(service.isValidUnitsString("/[arb'U]"));
assertTrue(service.isValidUnitsString("[iU]"));
assertTrue(service.isValidUnitsString("mL/{hb}.m2"));
assertTrue(service.isValidUnitsString("ug/(kg.h)"));
assertTrue(service.isValidUnitsString("[HPF]"));
assertTrue(service.isValidUnitsString("[iU]/d"));
assertTrue(service.isValidUnitsString("mL/(8.h)"));
assertTrue(service.isValidUnitsString("ug/h"));
assertTrue(service.isValidUnitsString("/{tot}"));
assertTrue(service.isValidUnitsString("[iU]/h"));
assertTrue(service.isValidUnitsString("mL/(8.h.kg)"));
assertTrue(service.isValidUnitsString("u[iU]"));
assertTrue(service.isValidUnitsString("/[iU]"));
assertTrue(service.isValidUnitsString("[iU]/kg"));
assertTrue(service.isValidUnitsString("mL/{hb}"));
assertTrue(service.isValidUnitsString("10*3{rbc}"));
assertTrue(service.isValidUnitsString("[iU]/L"));
assertTrue(service.isValidUnitsString("mL/(kg.h)"));
assertTrue(service.isValidUnitsString("10.L/(min.m2)"));
assertTrue(service.isValidUnitsString("[iU]/min"));
assertTrue(service.isValidUnitsString("mL/cm[H2O]"));
assertTrue(service.isValidUnitsString("%"));
assertTrue(service.isValidUnitsString("bar"));
assertTrue(service.isValidUnitsString("g/L"));
assertTrue(service.isValidUnitsString("L.s"));
assertTrue(service.isValidUnitsString("mg"));
assertTrue(service.isValidUnitsString("mmol/(kg.d)"));
assertTrue(service.isValidUnitsString("ng/L"));
assertTrue(service.isValidUnitsString("ueq"));
assertTrue(service.isValidUnitsString("/kg"));
assertTrue(service.isValidUnitsString("Bq"));
assertTrue(service.isValidUnitsString("g/m2"));
assertTrue(service.isValidUnitsString("L/(min.m2)"));
assertTrue(service.isValidUnitsString("mg/(kg.d)"));
assertTrue(service.isValidUnitsString("mmol/(kg.min)"));
assertTrue(service.isValidUnitsString("ng/m2"));
assertTrue(service.isValidUnitsString("ug"));
assertTrue(service.isValidUnitsString("/L"));
assertTrue(service.isValidUnitsString("Cel"));
assertTrue(service.isValidUnitsString("g/min"));
assertTrue(service.isValidUnitsString("L/d"));
assertTrue(service.isValidUnitsString("mg/(kg.min)"));
assertTrue(service.isValidUnitsString("mmol/kg"));
assertTrue(service.isValidUnitsString("ng/min"));
assertTrue(service.isValidUnitsString("ug/(kg.d)"));
assertTrue(service.isValidUnitsString("/m3"));
assertTrue(service.isValidUnitsString("cm"));
assertTrue(service.isValidUnitsString("Gy"));
assertTrue(service.isValidUnitsString("L/kg"));
assertTrue(service.isValidUnitsString("mg/d"));
assertTrue(service.isValidUnitsString("mmol/L"));
assertTrue(service.isValidUnitsString("ng/mL"));
assertTrue(service.isValidUnitsString("ug/(kg.min)"));
assertTrue(service.isValidUnitsString("/min"));
assertTrue(service.isValidUnitsString("cm2/s"));
assertTrue(service.isValidUnitsString("h"));
assertTrue(service.isValidUnitsString("L/min"));
assertTrue(service.isValidUnitsString("mg/dL"));
assertTrue(service.isValidUnitsString("mmol/m2"));
assertTrue(service.isValidUnitsString("ng/s"));
assertTrue(service.isValidUnitsString("ug/d"));
assertTrue(service.isValidUnitsString("/m3"));
assertTrue(service.isValidUnitsString("d"));
assertTrue(service.isValidUnitsString("hL"));
assertTrue(service.isValidUnitsString("L/s"));
assertTrue(service.isValidUnitsString("mg/kg"));
assertTrue(service.isValidUnitsString("mmol/min"));
assertTrue(service.isValidUnitsString("nkat"));
assertTrue(service.isValidUnitsString("ug/dL"));
assertTrue(service.isValidUnitsString("/min"));
assertTrue(service.isValidUnitsString("dB"));
assertTrue(service.isValidUnitsString("J/L"));
assertTrue(service.isValidUnitsString("lm"));
assertTrue(service.isValidUnitsString("mg/L"));
assertTrue(service.isValidUnitsString("mol/(kg.s)"));
assertTrue(service.isValidUnitsString("nm"));
assertTrue(service.isValidUnitsString("ug/g"));
assertTrue(service.isValidUnitsString("/mL"));
assertTrue(service.isValidUnitsString("deg"));
assertTrue(service.isValidUnitsString("kat"));
assertTrue(service.isValidUnitsString("m"));
assertTrue(service.isValidUnitsString("mg/m2"));
assertTrue(service.isValidUnitsString("mol/kg"));
assertTrue(service.isValidUnitsString("nmol/s"));
assertTrue(service.isValidUnitsString("ug/kg"));
assertTrue(service.isValidUnitsString("1/mL"));
assertTrue(service.isValidUnitsString("eq"));
assertTrue(service.isValidUnitsString("kat/kg"));
assertTrue(service.isValidUnitsString("m/s2"));
assertTrue(service.isValidUnitsString("mg/m3"));
assertTrue(service.isValidUnitsString("mol/L"));
assertTrue(service.isValidUnitsString("ns"));
assertTrue(service.isValidUnitsString("ug/L"));
assertTrue(service.isValidUnitsString("10*12/L"));
assertTrue(service.isValidUnitsString("eV"));
assertTrue(service.isValidUnitsString("kat/L"));
assertTrue(service.isValidUnitsString("m2"));
assertTrue(service.isValidUnitsString("mg/min"));
assertTrue(service.isValidUnitsString("mol/m3"));
assertTrue(service.isValidUnitsString("Ohm"));
assertTrue(service.isValidUnitsString("ug/m2"));
assertTrue(service.isValidUnitsString("10*3/L"));
assertTrue(service.isValidUnitsString("kg"));
assertTrue(service.isValidUnitsString("m2/s"));
assertTrue(service.isValidUnitsString("mL"));
assertTrue(service.isValidUnitsString("mol/s"));
assertTrue(service.isValidUnitsString("Ohm.m"));
assertTrue(service.isValidUnitsString("ug/min"));
assertTrue(service.isValidUnitsString("10*3/mL"));
assertTrue(service.isValidUnitsString("fg"));
assertTrue(service.isValidUnitsString("kg.m/s"));
assertTrue(service.isValidUnitsString("m3/s"));
assertTrue(service.isValidUnitsString("mL/(kg.d)"));
assertTrue(service.isValidUnitsString("mosm/L"));
assertTrue(service.isValidUnitsString("pg"));
assertTrue(service.isValidUnitsString("ukat"));
assertTrue(service.isValidUnitsString("10*3/mm3"));
assertTrue(service.isValidUnitsString("fL"));
assertTrue(service.isValidUnitsString("kg/(s.m2)"));
assertTrue(service.isValidUnitsString("mbar"));
assertTrue(service.isValidUnitsString("mL/(kg.min)"));
assertTrue(service.isValidUnitsString("ms"));
assertTrue(service.isValidUnitsString("pg/L"));
assertTrue(service.isValidUnitsString("um"));
assertTrue(service.isValidUnitsString("10*6/L"));
assertTrue(service.isValidUnitsString("fmol"));
assertTrue(service.isValidUnitsString("kg/L"));
assertTrue(service.isValidUnitsString("mbar.s/L"));
assertTrue(service.isValidUnitsString("mL/(min.m2)"));
assertTrue(service.isValidUnitsString("mV"));
assertTrue(service.isValidUnitsString("pg/mL"));
assertTrue(service.isValidUnitsString("umol"));
assertTrue(service.isValidUnitsString("10*6/mL"));
assertTrue(service.isValidUnitsString("g"));
assertTrue(service.isValidUnitsString("kg/m3"));
assertTrue(service.isValidUnitsString("meq"));
assertTrue(service.isValidUnitsString("mL/d"));
assertTrue(service.isValidUnitsString("pkat"));
assertTrue(service.isValidUnitsString("umol/d"));
assertTrue(service.isValidUnitsString("10*6/mm3"));
assertTrue(service.isValidUnitsString("g.m"));
assertTrue(service.isValidUnitsString("kg/min"));
assertTrue(service.isValidUnitsString("meq/(kg.d)"));
assertTrue(service.isValidUnitsString("mL/kg"));
assertTrue(service.isValidUnitsString("pm"));
assertTrue(service.isValidUnitsString("umol/L"));
assertTrue(service.isValidUnitsString("10*9/L"));
assertTrue(service.isValidUnitsString("g/(kg.d)"));
assertTrue(service.isValidUnitsString("kg/mol"));
assertTrue(service.isValidUnitsString("meq/(kg.min)"));
assertTrue(service.isValidUnitsString("mL/m2"));
assertTrue(service.isValidUnitsString("ng"));
assertTrue(service.isValidUnitsString("pmol"));
assertTrue(service.isValidUnitsString("umol/min"));
assertTrue(service.isValidUnitsString("10*9/mL"));
assertTrue(service.isValidUnitsString("g/(kg.min)"));
assertTrue(service.isValidUnitsString("kg/s"));
assertTrue(service.isValidUnitsString("meq/d"));
assertTrue(service.isValidUnitsString("mL/mbar"));
assertTrue(service.isValidUnitsString("ng/(kg.d)"));
assertTrue(service.isValidUnitsString("ps"));
assertTrue(service.isValidUnitsString("us"));
assertTrue(service.isValidUnitsString("10*9/mm3"));
assertTrue(service.isValidUnitsString("g/d"));
assertTrue(service.isValidUnitsString("kPa"));
assertTrue(service.isValidUnitsString("meq/kg"));
assertTrue(service.isValidUnitsString("mL/min"));
assertTrue(service.isValidUnitsString("ng/(kg.min)"));
assertTrue(service.isValidUnitsString("pt"));
assertTrue(service.isValidUnitsString("uV"));
assertTrue(service.isValidUnitsString("10.L/min"));
assertTrue(service.isValidUnitsString("g/dL"));
assertTrue(service.isValidUnitsString("ks"));
assertTrue(service.isValidUnitsString("meq/L"));
assertTrue(service.isValidUnitsString("mL/s"));
assertTrue(service.isValidUnitsString("ng/d"));
assertTrue(service.isValidUnitsString("Sv"));
assertTrue(service.isValidUnitsString("V"));
assertTrue(service.isValidUnitsString("a/m"));
assertTrue(service.isValidUnitsString("g/kg"));
assertTrue(service.isValidUnitsString("L"));
assertTrue(service.isValidUnitsString("meq/min"));
assertTrue(service.isValidUnitsString("mm"));
assertTrue(service.isValidUnitsString("ng/kg"));
assertTrue(service.isValidUnitsString("t"));
assertTrue(service.isValidUnitsString("Wb"));
}
private MeasurementService service;
}