Source code for sbmlsim.test.test_data

"""Testing DataSet and Data functionality."""
import pandas as pd

from sbmlsim.data import DataSet, load_pkdb_dataframe
from sbmlsim.test import DATA_DIR
from sbmlsim.units import UnitRegistry, UnitsInformation


[docs]def test_dataset(): df = pd.DataFrame({"col1": [1, 2, 3], "col2": [2, 3, 4], "col3": [4, 5, 6]}) dset = DataSet.from_df(df, udict={"col1": "mM"}, ureg=UnitRegistry()) assert "col1" in dset.uinfo assert dset.uinfo["col1"] == "mM"
[docs]def test_Faber1978_Fig1(): data_path = DATA_DIR / "datasets" df = load_pkdb_dataframe(sid="Faber1978_Fig1", data_path=data_path) dset = DataSet.from_df(df, udict={}, ureg=UnitRegistry()) assert "cpep" in dset.uinfo assert "time" in dset.uinfo assert dset.uinfo["time"] == "min" assert dset.uinfo["cpep"] == "pmol/ml" assert "time_unit" in dset.columns assert dset.time_unit.unique()[0] == "min" assert "cpep_unit" in dset.columns assert dset.cpep_unit.unique()[0] == "pmol/ml"
[docs]def test_Allonen1981_Fig3A(): data_path = DATA_DIR / "datasets" df = load_pkdb_dataframe(sid="Allonen1981_Fig3A", data_path=data_path) for substance in df.substance.unique(): dset = DataSet.from_df(df[df.substance == substance], ureg=UnitRegistry()) assert "mean" in dset.uinfo assert "time" in dset.uinfo assert dset.uinfo["time"] == "hr" assert dset.uinfo["mean"] == "ng/ml" assert "time_unit" in dset.columns assert dset.time_unit.unique()[0] == "hr" assert "mean_unit" in dset.columns assert dset.mean_unit.unique()[0] == "ng/ml" assert "unit" not in dset.columns
[docs]def test_unit_conversion1(): data_path = DATA_DIR / "datasets" df = load_pkdb_dataframe(sid="Allonen1981_Fig3A", data_path=data_path) ureg = UnitRegistry() Q_ = ureg.Quantity Mr = Q_(300, "g/mole") for substance in df.substance.unique(): d = DataSet.from_df(df[df.substance == substance], ureg=ureg) d.unit_conversion("mean", factor=1 / Mr) assert "mean" in d.uinfo assert "time" in d.uinfo assert d.uinfo["time"] == "hr" # check that units converted correctly mean_unit = ureg.Unit(d.uinfo["mean"]) assert mean_unit.dimensionality == ureg.Unit("mole/meter**3").dimensionality # check that factor applied correctly assert d["mean"].values[0] < 0.00004 assert d["mean"].values[0] > 0.00003