# rm(list=ls()) # library(testthat) # test_file("tests/testthat/test-utils.R") if (!identical(Sys.getenv("NOT_CRAN"), "true")) return() skip_on_cran() # units.val ------------------------------------------------------------ test_that("units.val - works", { expect_is(units.val("mg/l", "o2"), "character") expect_is(units.val("ml", "vol"), "character") expect_is(units.val("mg", "mass"), "character") expect_is(units.val("mg", "o1"), "character") expect_equal(units.val("mg/l", "o2"), "mg/L.o2") expect_equal(units.val("ml", "vol"), "mL.vol") expect_equal(units.val("mg", "mass"), "mg.mass") expect_equal(units.val("mg", "o1"), "mg.o2") }) # time test_that("units.val - time inputs are parsed correctly", { # variations # we want all these to be recognised sec.vars = c('seconds', 'second', 'sec', 'secs', 's', 'Seconds', 'Second', 'Sec', 'Secs', 'S') min.vars = c('minutes', 'minute', 'min', 'mins', 'm', 'Minutes', 'Minute', 'Min', 'Mins', 'M') hour.vars = c('hours', 'hour', 'hr', 'hrs', 'h', 'Hours', 'Hour', 'Hr', 'Hrs', 'H') day.vars = c('days', 'day', 'dy', 'dys', 'd', 'Days', 'Day', 'Dy', 'Dys', 'D') sapply(sec.vars, function(z) expect_equal(units.val(z, "time"), "sec.time")) sapply(min.vars, function(z) expect_equal(units.val(z, "time"), "min.time")) sapply(hour.vars, function(z) expect_equal(units.val(z, "time"), "hr.time")) sapply(day.vars, function(z) expect_equal(units.val(z, "time"), "day.time")) # partial matching should not work expect_error(units.val("secon", "time"), "units.val: unit 'secon' not recognised. Check it is valid for the input or output type.") expect_error(units.val("mi", "time"), "units.val: unit 'mi' not recognised. Check it is valid for the input or output type.") expect_error(units.val("ours", "time"), "units.val: unit 'ours' not recognised. Check it is valid for the input or output type.") expect_error(units.val("Da", "time"), "units.val: unit 'Da' not recognised. Check it is valid for the input or output type.") }) test_that("units.val - volume inputs are parsed correctly", { # variations uL.vars = c("uL.vol","ul","uL","microlitre","microliter", "micro litre","micro liter") mL.vars = c("mL.vol","ml","mL","millilitre","milli litre","milliliter", "milli liter") L.vars = c("L.vol","l","L","liter","litre","Litre","Liter") sapply(uL.vars, function(z) expect_equal(units.val(z, "vol"), "uL.vol") ) sapply(mL.vars, function(z) expect_equal(units.val(z, "vol"), "mL.vol")) sapply(L.vars, function(z) expect_equal(units.val(z, "vol"), "L.vol")) # partial matching should not work expect_error(units.val("micro", "vol"), "units.val: unit 'micro' not recognised. Check it is valid for the input or output type.") expect_error(units.val("mil", "vol"), "units.val: unit 'mil' not recognised. Check it is valid for the input or output type.") expect_error(units.val("lit", "vol"), "units.val: unit 'lit' not recognised. Check it is valid for the input or output type.") }) test_that("units.val - mass inputs are parsed correctly", { # variations ug.vars <- c('ug.mass','ug','UG','ugram','microgram','microgramme','micro gram','micro gramme') mg.vars <- c('mg.mass','mg','MG','mgram','milligram','milligramme','milli gram','milli gramme') g.vars <- c('g.mass','g','G','gram','gramme') kg.vars <- c('kg.mass','kg','KG','kilogram','kilogramme','kilo gram','kilo gramme','kgram') sapply(ug.vars, function(z) expect_equal(units.val(z, "mass"), "ug.mass")) sapply(mg.vars, function(z) expect_equal(units.val(z, "mass"), "mg.mass")) sapply(g.vars, function(z) expect_equal(units.val(z, "mass"), "g.mass")) sapply(kg.vars, function(z) expect_equal(units.val(z, "mass"), "kg.mass")) # partial matching should not work expect_error(units.val("microg", "time"), "units.val: unit 'microg' not recognised. Check it is valid for the input or output type.") expect_error(units.val("mi", "time"), "units.val: unit 'mi' not recognised. Check it is valid for the input or output type.") expect_error(units.val("amme", "time"), "units.val: unit 'amme' not recognised. Check it is valid for the input or output type.") expect_error(units.val("kilo", "time"), "units.val: unit 'kilo' not recognised. Check it is valid for the input or output type.") }) test_that("units.val - o2 inputs are parsed correctly", { # error with old % input perc.vars <- c("%", "perc", "percent","percentage") sapply(perc.vars, function(z) expect_error(units.val(z, "o2"), "units.val: unit \"%\" has been deprecated. Please use \"%Air\" or \"%Oxy\" instead. See unit_args().")) # variations percair.vars <- c("%Air.o2", "%air","%Air","% air","%.air", "%_air", "%A","%a","percair","percentair", "percentageair", "percent air","percentage air") percoxy.vars <- c("%Oxy.o2", "%oxy","%Oxy","%OX","%OXY","%o2","%Oxy","%o","%O", "percoxygen","percentoxygen","percentageoxygen", "perc oxygen","percent.oxygen","percentage_oxygen", "percoxy","percentoxy","percentageoxy", "perc.o2","percent o2","percentage_o2", "percO2","percentO2","percentageO2") ugperloxy.vars <- c("ug/L.o2", "ug/L","ug/l","ug / L","ug / l","ugL-1", "ugl-1","ug L-1","ug l -1","ug per liter","ug per litre", "ugO2.L","ugO2_l", "ugO2/L","ugO2/l","ugO2 / L","ugO2 / l","ugO2L-1", "ugO2l-1","ugO2 L-1","ugO2 l -1","ugO2 per liter","ugO2 per litre", "ugO2 per l") mgperloxy.vars <- c("mg/L.o2", "mg/L","mg/l","mg / L","mg / l","mgL-1", "mgl-1","mg L-1","mg l -1","mg per liter","mg per litre", "mgO2.L","mgO2_l", "mgO2/L","mgO2/l","mgO2 / L","mgO2 / l","mgO2L-1", "mgO2l-1","mgO2 L-1","mgO2 l -1","mgO2 per liter","mgO2 per litre", "mgO2 per l") molperloxy.vars <- c("mol/L.o2", "mol/L","mol/l","mol / L","mol / l","molL-1", "moll-1","mol L-1","mol l -1","mol per liter","mol per litre", "molO2.L","molO2_l", "molel-1","mole L-1","mole l -1","mole per liter","mole per litre", "moleO2.L","moleO2_l", "molO2/L","molO2/l","molO2 / L","molO2 / l","molO2L-1", "molO2l-1","molO2 L-1","molO2 l -1","molO2 per liter","molO2 per litre", "molO2 per l") mmolperloxy.vars <- c("mmol/L.o2", "mmol/L","mmol/l","mmol / L","mmol / l","mmolL-1", "mmoll-1","mmol L-1","mmol l -1","mmol per liter","mmol per litre", "mmolO2.L","mmolO2_l", "mmolel-1","mmole L-1","mmole l -1","mmole per liter","mmole per litre", "mmoleO2.L","mmoleO2_l", "mmolO2/L","mmolO2/l","mmolO2 / L","mmolO2 / l","mmolO2L-1", "mmolO2l-1","mmolO2 L-1","mmolO2 l -1","mmolO2 per liter","mmolO2 per litre", "mmolO2 per l") umolperloxy.vars <- c("umol/L.o2", "umol/L","umol/l","umol / L","umol / l","umolL-1", "umoll-1","umol L-1","umol l -1","umol per liter","umol per litre", "umolO2.L","umolO2_l", "umolel-1","umole L-1","umole l -1","umole per liter","umole per litre", "umoleO2.L","umoleO2_l", "umolO2/L","umolO2/l","umolO2 / L","umolO2 / l","umolO2L-1", "umolO2l-1","umolO2 L-1","umolO2 l -1","umolO2 per liter","umolO2 per litre", "umolO2 per l") nmolperloxy.vars <- c("nmol/L.o2", "nmol/L","nmol/l","nmol / L","nmol / l","nmolL-1", "nmoll-1","nmol L-1","nmol l -1","nmol per liter","nmol per litre", "nmolO2.L","nmolO2_l", "nmolel-1","nmole L-1","nmole l -1","nmole per liter","nmole per litre", "nmoleO2.L","nmoleO2_l", "nmolO2/L","nmolO2/l","nmolO2 / L","nmolO2 / l","nmolO2L-1", "nmolO2l-1","nmolO2 L-1","nmolO2 l -1","nmolO2 per liter","nmolO2 per litre", "nmolO2 per l") pmolperloxy.vars <- c("pmol/L.o2", "pmol/L","pmol/l","pmol / L","pmol / l","pmolL-1", "pmoll-1","pmol L-1","pmol l -1","pmol per liter","pmol per litre", "pmolO2.L","pmolO2_l", "pmolel-1","pmole L-1","pmole l -1","pmole per liter","pmole per litre", "pmoleO2.L","pmoleO2_l", "pmolO2/L","pmolO2/l","pmolO2 / L","pmolO2 / l","pmolO2L-1", "pmolO2l-1","pmolO2 L-1","pmolO2 l -1","pmolO2 per liter","pmolO2 per litre", "pmolO2 per l") mlperloxy.vars <- c("mL/L.o2", "ml/L","mL/L","mL/l","ml/l","mll-1","mLl-1", "mLL-1","mlL-1","ml / L","mL / L","mL / l","ml / l", "ml l-1","mL l-1","mL L-1","ml L-1","ml per l","mL per L", "ml per L", "mlO2/L","mLO2/L","mLO2/l","mlO2/l","mlO2l-1","mLO2l-1", "mLO2L-1","mlO2L-1","mlO2 / L","mLO2 / L","mLO2 / l","mlO2 / l", "mlO2 l-1","mLO2 l-1","mLO2 L-1","mlO2 L-1","mlO2 per l","mLO2 per L", "mlO2 per L") cm3perloxy.vars <- c("cm3/L.o2", "cm3/L","cm3/L","cm3/l","cm3/l","cm3l-1","cm3l-1", "cm3L-1","cm3L-1","cm3 / L","cm3 / L","cm3 / l","cm3 / l", "cm3 l-1","cm3 l-1","cm3 L-1","cm3 L-1","cm3 per l","cm3 per L", "cm3 per L", "cm3O2/L","cm3O2/L","cm3O2/l","cm3O2/l","cm3O2l-1","cm3O2l-1", "cm3O2L-1","cm3O2L-1","cm3O2 / L","cm3O2 / L","cm3O2 / l","cm3O2 / l", "cm3O2 l-1","cm3O2 l-1","cm3O2 L-1","cm3O2 L-1","cm3O2 per l","cm3O2 per L", "cm3O2 per L", "cm^3/L","cm^3O2 per L", "cc/L","cc/L","cc/l","cc/l","ccl-1","ccl-1", "ccL-1","ccL-1","cc / L","cc / L","cc / l","cc / l", "cc l-1","cc l-1","cc L-1","cc L-1","cc per l","cc per L", "cc per L", "cubiccm/L","cubic cmO2/L","cubic cmO2/l","cubic cmO2/l","cubic cmO2l-1","cubic cmO2l-1", "cubic cmO2L-1","cubic cmO2L-1","cubic cmO2 / L","cubic cmO2 / L","cubic cmO2 / l","cubic cmO2 / l", "cubic cmO2 l-1","cubic cmO2 l-1","cubic cmO2 L-1","cubic cmO2 L-1","cubic cmO2 per l","cubic cmO2 per L", "cubic cmO2 per L") mgperkgoxy.vars <- c("mg/kg.o2", "mg/KG","Mg/KG","Mg/kg","mg/kg","mgKg-1","MgKg-1", "Mgkg-1","mgkg-1","mg / kg","Mg / kg","Mg / kg","mg / kg", "mg Kg-1","Mg Kg-1","Mg kg-1","mg kg-1","mg per kg","Mg per kg", "mg per kg", "mgO2/KG","MgO2/KG","MgO2/kg","mgO2/kg","mgO2Kg-1","MgO2Kg-1", "MgO2kg-1","mgO2kg-1","mgO2 / kg","MgO2 / kg","MgO2 / kg","mgO2 / kg", "mgO2 Kg-1","MgO2 Kg-1","MgO2 kg-1","mgO2 kg-1","mgO2 per kg","MgO2 per kg", "mgO2 per kg") ugperkgoxy.vars <- c("ug/kg.o2", "ug/KG","Ug/KG","Ug/kg","ug/kg","ugKg-1","UgKg-1", "Ugkg-1","ugkg-1","ug / kg","Ug / kg","Ug / kg","ug / kg", "ug Kg-1","Ug Kg-1","Ug kg-1","ug kg-1","ug per kg","Ug per kg", "ug per kg", "ugO2/KG","UgO2/KG","UgO2/kg","ugO2/kg","ugO2Kg-1","UgO2Kg-1", "UgO2kg-1","ugO2kg-1","ugO2 / kg","UgO2 / kg","UgO2 / kg","ugO2 / kg", "ugO2 Kg-1","UgO2 Kg-1","UgO2 kg-1","ugO2 kg-1","ugO2 per kg","UgO2 per kg", "ugO2 per kg") mlperkgoxy.vars <- c("mL/kg.o2", "ml/Kg","mL/Kg","mL/kg","ml/kg","mlkg-1","mLkg-1", "mLKG-1","mlKG-1","ml / KG","mL / KG","mL / kg","ml / kg", "ml kg-1","mL kg-1","mL KG-1","ml KG-1","ml per kg","mL per KG", "ml per KG", "mlO2/Kg","mLO2/Kg","mLO2/kg","mlO2/kg","mlO2kg-1","mLO2kg-1", "mLO2KG-1","mlO2KG-1","mlO2 / KG","mLO2 / KG","mLO2 / kg","mlO2 / kg", "mlO2 kg-1","mLO2 kg-1","mLO2 KG-1","mlO2 KG-1","mlO2 per kg","mLO2 per KG", "mlO2 per KG") molperkgoxy.vars <- c("mol/kg.o2", "mol/Kg","mole/Kg","mole/kg","mol/kg","molkg-1","molekg-1", "moleKG-1","molKG-1","mol / KG","mole / KG","mole / kg","mol / kg", "mol kg-1","mole kg-1","mole KG-1","mol KG-1","mol per kg","mole per KG", "mol per KG", "molO2/Kg","moleO2/Kg","moleO2/kg","molO2/kg","molO2kg-1","moleO2kg-1", "moleO2KG-1","molO2KG-1","molO2 / KG","moleO2 / KG","moleO2 / kg","molO2 / kg", "molO2 kg-1","moleO2 kg-1","moleO2 KG-1","molO2 KG-1","molO2 per kg","moleO2 per KG", "molO2 per KG") mmolperkgoxy.vars <- c("mmol/kg.o2", "mmol/Kg","mmole/Kg","mmole/kg","mmol/kg","mmolkg-1","mmolekg-1", "mmoleKG-1","mmolKG-1","mmol / KG","mmole / KG","mmole / kg","mmol / kg", "mmol kg-1","mmole kg-1","mmole KG-1","mmol KG-1","mmol per kg","mmole per KG", "mmol per KG", "mmolO2/Kg","mmoleO2/Kg","mmoleO2/kg","mmolO2/kg","mmolO2kg-1","mmoleO2kg-1", "mmoleO2KG-1","mmolO2KG-1","mmolO2 / KG","mmoleO2 / KG","mmoleO2 / kg","mmolO2 / kg", "mmolO2 kg-1","mmoleO2 kg-1","mmoleO2 KG-1","mmolO2 KG-1","mmolO2 per kg","mmoleO2 per KG", "mmolO2 per KG") umolperkgoxy.vars <- c("umol/kg.o2", "umol/Kg","umole/Kg","umole/kg","umol/kg","umolkg-1","umolekg-1", "umoleKG-1","umolKG-1","umol / KG","umole / KG","umole / kg","umol / kg", "umol kg-1","umole kg-1","umole KG-1","umol KG-1","umol per kg","umole per KG", "umol per KG", "umolO2/Kg","umoleO2/Kg","umoleO2/kg","umolO2/kg","umolO2kg-1","umoleO2kg-1", "umoleO2KG-1","umolO2KG-1","umolO2 / KG","umoleO2 / KG","umoleO2 / kg","umolO2 / kg", "umolO2 kg-1","umoleO2 kg-1","umoleO2 KG-1","umolO2 KG-1","umolO2 per kg","umoleO2 per KG", "umolO2 per KG") nmolperkgoxy.vars <- c("nmol/kg.o2", "nmol/Kg","nmole/Kg","nmole/kg","nmol/kg","nmolkg-1","nmolekg-1", "nmoleKG-1","nmolKG-1","nmol / KG","nmole / KG","nmole / kg","nmol / kg", "nmol kg-1","nmole kg-1","nmole KG-1","nmol KG-1","nmol per kg","nmole per KG", "nmol per KG", "nmolO2/Kg","nmoleO2/Kg","nmoleO2/kg","nmolO2/kg","nmolO2kg-1","nmoleO2kg-1", "nmoleO2KG-1","nmolO2KG-1","nmolO2 / KG","nmoleO2 / KG","nmoleO2 / kg","nmolO2 / kg", "nmolO2 kg-1","nmoleO2 kg-1","nmoleO2 KG-1","nmolO2 KG-1","nmolO2 per kg","nmoleO2 per KG", "nmolO2 per KG") pmolperkgoxy.vars <- c("pmol/kg.o2", "pmol/Kg","pmole/Kg","pmole/kg","pmol/kg","pmolkg-1","pmolekg-1", "pmoleKG-1","pmolKG-1","pmol / KG","pmole / KG","pmole / kg","pmol / kg", "pmol kg-1","pmole kg-1","pmole KG-1","pmol KG-1","pmol per kg","pmole per KG", "pmol per KG", "pmolO2/Kg","pmoleO2/Kg","pmoleO2/kg","pmolO2/kg","pmolO2kg-1","pmoleO2kg-1", "pmoleO2KG-1","pmolO2KG-1","pmolO2 / KG","pmoleO2 / KG","pmoleO2 / kg","pmolO2 / kg", "pmolO2 kg-1","pmoleO2 kg-1","pmoleO2 KG-1","pmolO2 KG-1","pmolO2 per kg","pmoleO2 per KG", "pmolO2 per KG") torroxy.vars <- c("Torr.o2p", "torr","TORR","Torr","Tor","tor","torrO2","TORRO2","TorrO2","TorO2","torO2") hpaoxy.vars <- c("hPa.o2p", "hPa","hpa","Hpa","HPA","HPa","hectopascal", "hpascal", "hPaO2","hpaO2","HpaO2","HPAO2","HPaO2","hectopascalO2", "hpascalO2") kpaoxy.vars <- c("kPa.o2p", "kPa","kpa","Kpa","KPA","KPa","kilopascal", "kpascal", "kPaO2","kpaO2","KpaO2","KPAO2","KPaO2","kilopascalO2", "kpascalO2") mmHgoxy.vars <- c("mmHg.o2p", "mmHg","mm Hg","mmhg","mm hg","MMHG","MM HG", "millimeter of mercury","mm mercury", "mmHgO2","mm HgO2","mmhgO2","mm hgO2","MMHGO2","MM HGO2", "millimeter of mercuryO2","mm mercuryO2") inHgoxy.vars <- c("inHg.o2p", "inHg","in Hg","inhg","in hg","inchHG","inches HG", "inches of mercury","in mercury", "inHgO2","in HgO2","inhgO2","in hgO2","INHGO2","IN HGO2", "inches of mercuryO2","in mercuryO2") sapply(percair.vars, function(z) expect_equal(units.val(z, "o2"), "%Air.o2")) sapply(percoxy.vars, function(z) expect_equal(units.val(z, "o2"), "%Oxy.o2")) sapply(ugperloxy.vars, function(z) expect_equal(units.val(z, "o2"), "ug/L.o2")) sapply(mgperloxy.vars, function(z) expect_equal(units.val(z, "o2"), "mg/L.o2")) sapply(molperloxy.vars, function(z) expect_equal(units.val(z, "o2"), "mol/L.o2")) sapply(mmolperloxy.vars, function(z) expect_equal(units.val(z, "o2"), "mmol/L.o2")) sapply(umolperloxy.vars, function(z) expect_equal(units.val(z, "o2"), "umol/L.o2")) sapply(nmolperloxy.vars, function(z) expect_equal(units.val(z, "o2"), "nmol/L.o2")) sapply(pmolperloxy.vars, function(z) expect_equal(units.val(z, "o2"), "pmol/L.o2")) sapply(mlperloxy.vars, function(z) expect_equal(units.val(z, "o2"), "mL/L.o2")) sapply(cm3perloxy.vars, function(z) expect_equal(units.val(z, "o2"), "cm3/L.o2")) sapply(mgperkgoxy.vars, function(z) expect_equal(units.val(z, "o2"), "mg/kg.o2")) sapply(ugperkgoxy.vars, function(z) expect_equal(units.val(z, "o2"), "ug/kg.o2")) sapply(mlperkgoxy.vars, function(z) expect_equal(units.val(z, "o2"), "mL/kg.o2")) sapply(molperkgoxy.vars, function(z) expect_equal(units.val(z, "o2"), "mol/kg.o2")) sapply(mmolperkgoxy.vars, function(z) expect_equal(units.val(z, "o2"), "mmol/kg.o2")) sapply(umolperkgoxy.vars, function(z) expect_equal(units.val(z, "o2"), "umol/kg.o2")) sapply(nmolperkgoxy.vars, function(z) expect_equal(units.val(z, "o2"), "nmol/kg.o2")) sapply(pmolperkgoxy.vars, function(z) expect_equal(units.val(z, "o2"), "pmol/kg.o2")) sapply(torroxy.vars, function(z) expect_equal(units.val(z, "o2"), "Torr.o2p")) sapply(hpaoxy.vars, function(z) expect_equal(units.val(z, "o2"), "hPa.o2p")) sapply(kpaoxy.vars, function(z) expect_equal(units.val(z, "o2"), "kPa.o2p")) sapply(mmHgoxy.vars, function(z) expect_equal(units.val(z, "o2"), "mmHg.o2p")) sapply(inHgoxy.vars, function(z) expect_equal(units.val(z, "o2"), "inHg.o2p")) # partial matching should not work expect_error(units.val("%ai", "o2"), "units.val: unit '%ai' not recognised. Check it is valid for the input or output type.") expect_error(units.val("_%air", "o2"), "units.val: unit '_%air' not recognised. Check it is valid for the input or output type.") expect_error(units.val("%oxyg", "o2"), "units.val: unit '%oxyg' not recognised. Check it is valid for the input or output type.") expect_error(units.val("ugO2 per lit", "o2"), "units.val: unit 'ugO2 per lit' not recognised. Check it is valid for the input or output type.") expect_error(units.val("mgO2 per lit", "o2"), "units.val: unit 'mgO2 per lit' not recognised. Check it is valid for the input or output type.") expect_error(units.val("molO2 per lit", "o2"), "units.val: unit 'molO2 per lit' not recognised. Check it is valid for the input or output type.") expect_error(units.val("mmolO2 per lit", "o2"), "units.val: unit 'mmolO2 per lit' not recognised. Check it is valid for the input or output type.") }) test_that("units.val - area inputs are parsed correctly", { # variations mm.vars <- c('mm2.area','mmsq','mm2','MM2','millimetre2') cm.vars <- c('cm2.area','cmsq','cm2','CM2','centimetre2') m.vars <- c('m2.area','msq','m2','M2','metre2') km.vars <- c('km2.area','kmsq','km2','KM2','kilometre2') sapply(mm.vars, function(z) expect_equal(units.val(z, "area"), "mm2.area")) sapply(cm.vars, function(z) expect_equal(units.val(z, "area"), "cm2.area")) sapply(m.vars, function(z) expect_equal(units.val(z, "area"), "m2.area")) sapply(km.vars, function(z) expect_equal(units.val(z, "area"), "km2.area")) # partial matching should not work expect_error(units.val("millim", "area"), "units.val: unit 'millim' not recognised. Check it is valid for the input or output type.") }) test_that("units.val - o1 inputs are parsed correctly", { # variations mg.vars <- c('mg.o2','mgo2','mgO2','mg','Milligram','milligramme','milligrams','milligrammes') ug.vars <- c('ug.o2','ugo2','ugO2','ug','microgram','microgramme','micrograms','microgrammes') mol.vars <- c('mol.o2','molo2','molO2','mol','mole') mmol.vars <- c('mmol.o2','mmolo2','mmolO2','mmol','millimol','millimole') umol.vars <- c('umol.o2','umolo2','umolO2','umol','micromol','micromole') nmol.vars <- c('nmol.o2','nmolo2','nmolO2','nmol','nanomol','nanomole') pmol.vars <- c('pmol.o2','pmolo2','pmolO2','pmol','picomol','picomole') ml.vars <- c('mL.o2','mlo2','mlO2','ml','mLo2','mLO2','mL', 'millilitre','milliliter','millilitres','milliliters') cm3.vars <- c('cm3.o2','cm3o2','cm3.O2','cm3O2','cm3', 'CM3.o2','CM3o2','CM3.O2','CM3O2','CM3', 'cm^3') sapply(mg.vars, function(z) expect_equal(units.val(z, "o1"), "mg.o2")) sapply(ug.vars, function(z) expect_equal(units.val(z, "o1"), "ug.o2")) sapply(mol.vars, function(z) expect_equal(units.val(z, "o1"), "mol.o2")) sapply(mmol.vars, function(z) expect_equal(units.val(z, "o1"), "mmol.o2")) sapply(umol.vars, function(z) expect_equal(units.val(z, "o1"), "umol.o2")) sapply(nmol.vars, function(z) expect_equal(units.val(z, "o1"), "nmol.o2")) sapply(pmol.vars, function(z) expect_equal(units.val(z, "o1"), "pmol.o2")) sapply(ml.vars, function(z) expect_equal(units.val(z, "o1"), "mL.o2")) sapply(cm3.vars, function(z) expect_equal(units.val(z, "o1"), "cm3.o2")) # partial matching should not work expect_error(units.val("micro", "o1"), "units.val: unit 'micro' not recognised. Check it is valid for the input or output type.") }) test_that("units.val - flow inputs are parsed correctly", { # variations ulpersec.vars <- c("ul/S.flow", "ul/Sec","ul/secs","ul / second","ul / s","ulS-1", "uls-1","ul sec-1","ul secs -1","ul per second","ul per Seconds", "ul.S","ul_s", "UL.S","UL/s","UL / S","UL / s","ULS-1", "microlitre s-1","Microlitre SEC-1","microliters_secs -1","Microliter per second","UL per seconds", "Ul per s") mlpersec.vars <- c("ml/S.flow", "ml/Sec","ml/secs","ml / second","ml / s","mlS-1", "mls-1","ml sec-1","ml secs -1","ml per second","ml per Seconds", "ml.S","ml_s", "ML.S","ML/s","ML / S","ML / s","MLS-1", "millilitre s-1","Millilitre SEC-1","milliliters_secs -1","Milliliter per second","ML per seconds", "Ml per s") lpersec.vars <- c("l/S.flow", "L/Sec","l/secs","l / second","L / s","lS-1", "ls-1","l sec-1","l secs -1","l per second","l per Seconds", "l.S","l_s", "L.S","L/s","L / S","L / s","LS-1", "litre s-1","Litre SEC-1","liters_secs -1","Liter per second","L per seconds", "l per s") ulpermin.vars <- c("ul/M.flow", "ul/Min","ul/mins","ul / minute","ul / m","ulM-1", "ulm-1","ul min-1","ul mins -1","ul per minute","ul per Minutes", "ul.M","ul_m", "UL.M","UL/m","UL / M","UL / m","ULM-1", "microlitre m-1","Microlitre MIN-1","microliters_mins -1","Microliter per minute","UL per minutes", "Ul per m") mlpermin.vars <- c("ml/M.flow", "ml/Min","ml/mins","ml / minute","ml / m","mlM-1", "mlm-1","ml min-1","ml mins -1","ml per minute","ml per Minutes", "ml.M","ml_m", "ML.M","ML/m","ML / M","ML / m","MLM-1", "millilitre m-1","Millilitre MIN-1","milliliters_mins -1","Milliliter per minute","ML per minutes", "Ml per m") lpermin.vars <- c("l/M.flow", "L/Min","l/mins","l / minute","L / m","lM-1", "lm-1","l min-1","l mins -1","l per minute","l per Minutes", "l.M","l_m", "L.M","L/m","L / M","L / m","LM-1", "litre m-1","Litre MIN-1","liters_mins -1","Liter per minute","L per minutes", "l per m") ulperhr.vars <- c("ul/H.flow", "ul/Hr","ul/hour","ul / hour","ul / h","ulH-1", "ulh-1","ul hr-1","ul hrs -1","ul per hour","ul per Hours", "ul.H","ul_h", "UL.H","UL/h","UL / H","UL / h","ULH-1", "microlitre h-1","Microlitre HR-1","microliters_hrs -1","Microliter per hour","UL per hours", "Ul per h") mlperhr.vars <- c("ml/H.flow", "ml/Hr","ml/hour","ml / hour","ml / h","mlH-1", "mlh-1","ml hr-1","ml hrs -1","ml per hour","ml per Hours", "ml.H","ml_h", "ML.H","ML/h","ML / H","ML / h","MLH-1", "millilitre h-1","Millilitre HR-1","milliliters_hrs -1","Milliliter per hour","ML per hours", "Ml per h") lperhr.vars <- c("l/H.flow", "L/Hr","l/hour","l / hour","L / h","lH-1", "lh-1","l hr-1","l hrs -1","l per hour","l per Hours", "l.H","l_h", "L.H","L/h","L / H","L / h","LH-1", "litre h-1","Litre HR-1","liters_hrs -1","Liter per hour","L per hours", "l per h") ulperday.vars <- c("ul/D.flow", "ul/D","ul/day","ul / day","ul / d","ulD-1", "uld-1","ul day-1","ul days -1","ul per day","ul per Days", "ul.D","ul_d", "UL.D","UL/d","UL / D","UL / d","ULD-1", "microlitre d-1","Microlitre D-1","microliters_days -1","Microliter per day","UL per days", "Ul per d") mlperday.vars <- c("ml/D.flow", "ml/D","ml/day","ml / day","ml / d","mlD-1", "mld-1","ml day-1","ml days -1","ml per day","ml per Days", "ml.D","ml_d", "ML.D","ML/d","ML / D","ML / d","MLD-1", "millilitre d-1","Millilitre D-1","milliliters_days -1","Milliliter per day","ML per days", "Ml per d") lperday.vars <- c("l/D.flow", "L/D","l/day","l / day","L / d","lD-1", "ld-1","l day-1","l days -1","l per day","l per Days", "l.D","l_d", "L.D","L/d","L / D","L / d","LD-1", "litre d-1","Litre D-1","liters_days -1","Liter per day","L per days", "l per d") sapply(ulpersec.vars, function(z) expect_equal(units.val(z, "flow"), "uL/sec.flow")) sapply(mlpersec.vars, function(z) expect_equal(units.val(z, "flow"), "mL/sec.flow")) sapply(lpersec.vars, function(z) expect_equal(units.val(z, "flow"), "L/sec.flow")) sapply(ulpermin.vars, function(z) expect_equal(units.val(z, "flow"), "uL/min.flow")) sapply(mlpermin.vars, function(z) expect_equal(units.val(z, "flow"), "mL/min.flow")) sapply(lpermin.vars, function(z) expect_equal(units.val(z, "flow"), "L/min.flow")) sapply(ulperhr.vars, function(z) expect_equal(units.val(z, "flow"), "uL/hr.flow")) sapply(mlperhr.vars, function(z) expect_equal(units.val(z, "flow"), "mL/hr.flow")) sapply(lperhr.vars, function(z) expect_equal(units.val(z, "flow"), "L/hr.flow")) sapply(ulperday.vars, function(z) expect_equal(units.val(z, "flow"), "uL/day.flow")) sapply(mlperday.vars, function(z) expect_equal(units.val(z, "flow"), "mL/day.flow")) sapply(lperday.vars, function(z) expect_equal(units.val(z, "flow"), "L/day.flow")) # partial matching should not work expect_error(units.val("micro", "flow"), "units.val: unit 'micro' not recognised. Check it is valid for the input or output type.") }) test_that("units.val - pressure inputs are parsed correctly", { # variations kpa.vars <- c('kPa.p', 'kPa','kpa', 'KPA') hpa.vars <- c('hPa.p', 'hPa','hpa', 'HPA') pa.vars <- c('Pa.p', 'Pa','pa', 'PA') ubar.vars <- c('uBar.p', 'ub', 'ubar', 'Ubar', 'UBAR', 'uBar', 'ubr', 'UBR') mbar.vars <- c('mBar.p', 'mb', 'mbar', 'Mbar', 'MBAR', 'mBar', 'mbr', 'MBR') bar.vars <- c('Bar.p', 'bar', 'bar', 'BAR', 'Bar', 'br', 'BR') atm.vars <- c('atm.p', 'atm', 'Atm', 'ATM', 'Atmos', 'ATMOS') torr.vars <- c('Torr.p', 'torr','TORR','Torr','Tor','tor') mmhg.vars <- c('mmHg.p', 'mmHg','mm Hg','mmhg','mm hg','MMHG','MM HG') inhg.vars <- c('inHg.p', 'inHg','in Hg','inhg','in hg','INHG','IN HG') sapply(kpa.vars, function(z) expect_equal(units.val(z, "pressure"), "kPa.p")) sapply(hpa.vars, function(z) expect_equal(units.val(z, "pressure"), "hPa.p")) sapply(pa.vars, function(z) expect_equal(units.val(z, "pressure"), "Pa.p")) sapply(ubar.vars, function(z) expect_equal(units.val(z, "pressure"), "uBar.p")) sapply(mbar.vars, function(z) expect_equal(units.val(z, "pressure"), "mBar.p")) sapply(bar.vars, function(z) expect_equal(units.val(z, "pressure"), "Bar.p")) sapply(atm.vars, function(z) expect_equal(units.val(z, "pressure"), "atm.p")) sapply(torr.vars, function(z) expect_equal(units.val(z, "pressure"), "Torr.p")) sapply(mmhg.vars, function(z) expect_equal(units.val(z, "pressure"), "mmHg.p")) sapply(inhg.vars, function(z) expect_equal(units.val(z, "pressure"), "inHg.p")) # partial matching should not work expect_error(units.val("micro", "flow"), "units.val: unit 'micro' not recognised. Check it is valid for the input or output type.") }) test_that("units.val - temperature inputs are parsed correctly", { # variations c.vars <- c('C','c', 'dgrc', 'DGRC', 'dgr c', 'DGR C', 'degrees c', 'DEGREES C', 'celsius', 'Celsius', 'CELSIUS', 'centigrade', 'Centigrade') k.vars <- c('K','k', 'dgrk', 'DGRK', 'dgr k', 'DGR K', 'degrees k', 'DEGREES K', 'kelvin', 'Kelvin', 'KELVIN') f.vars <- c('F','f', 'dgrf', 'DGRF', 'dgr f', 'DGR F', 'degrees f', 'DEGREES F', 'fahrenheit', 'Fahrenheit', 'FAHRENHEIT') sapply(c.vars, function(z) expect_equal(units.val(z, "temperature"), "C.temp")) sapply(k.vars, function(z) expect_equal(units.val(z, "temperature"), "K.temp")) sapply(f.vars, function(z) expect_equal(units.val(z, "temperature"), "F.temp")) # partial matching should not work expect_error(units.val("celc", "temperature"), "units.val: unit 'celc' not recognised. Check it is valid for the input or output type.") }) # StP units tests - o2 and mr