diff --git a/pk_optimizer/test_pk2Comp.py b/pk_optimizer/test_pk2Comp.py new file mode 100644 index 0000000000000000000000000000000000000000..ce7d56bbd05aed3ea8586ace41cd0f88e0e0e2c6 --- /dev/null +++ b/pk_optimizer/test_pk2Comp.py @@ -0,0 +1,86 @@ +# -*- coding: utf-8 -*- +""" +Created on Thu Feb 27 16:26:32 2020 + +@author: Ethan +""" + +from scipy.integrate import odeint +import pk2Comp +import pytest + +def test_pkOptimizer_init(): + + pk1 = pk2Comp.pk2Comp() + #Test directory is same as one given + assert pk1.numParam == 4 + assert pk1.flow == 1/60 + assert pk1.Vp == 0.05 + assert pk1.Visf == 0.15 + assert pk1.PS == 1/60 + assert pk1.Cp0 == 0 # Initial concentration of tracer in plasma + assert pk1.Cisf0 == 0 # Initial concentration of tracer in plasma + assert pk1.tmax == 10 #Time in seconds + assert pk1.dt == 1 #Time step + assert pk1.a == 2. # Alpha for gamma distribution + assert pk1.sol == [] + +def test_pkOptimizer_init_newVals(): + + pk2 = pk2Comp.pk2Comp(5, 1.15, 1/60, 2.3/60, 7) + #Test directory is same as one given + assert pk2.numParam == 5 + assert pk2.flow == 1.15 + assert pk2.Vp == 1/60 + assert pk2.Visf == 2.3/60 + assert pk2.PS == 7 # Initial concentration of tracer in plasma + +def test_pkOptimizer_init_badVals0(): + with pytest.raises(ValueError) as excinfo: + pk3 = pk2Comp.pk2Comp(-5, 1.15, 1/60, 2.3/60) + assert "Input values are incorrect." in str(excinfo.value) +def test_pkOptimizer_init_badVals1(): + with pytest.raises(ValueError) as excinfo: + pk3 = pk2Comp.pk2Comp(5, -1.15, 1/60, 2.3/60) + assert "Input values are incorrect." in str(excinfo.value) +def test_pkOptimizer_init_badVals2(): + with pytest.raises(ValueError) as excinfo: + pk3 = pk2Comp.pk2Comp(5, 1.15, -1/60, 2.3/60) + assert "Input values are incorrect." in str(excinfo.value) +def test_pkOptimizer_init_badVals3(): + with pytest.raises(ValueError) as excinfo: + pk3 = pk2Comp.pk2Comp(-5, 1.15, 1/60, -2.3/60) + assert "Input values are incorrect." in str(excinfo.value) +def test_pkOptimizer_init_badVals4(): + with pytest.raises(ValueError) as excinfo: + pk3 = pk2Comp.pk2Comp(5, 1.15, 1/60, 60) + assert "Input values are incorrect." in str(excinfo.value) +def test_pkOptimizer_init_badVals5(): + with pytest.raises(ValueError) as excinfo: + pk3 = pk2Comp.pk2Comp(5, 1.15, 60, 2.3/60) + assert "Input values are incorrect." in str(excinfo.value) + +def test_main(): + pk1 = pk2Comp.pk2Comp() + pk1.main() + pk2 = pk2Comp.pk2Comp(5, 1.15, 1/60, 2.3/60) + pk2.main() + assert 1 == 1 + +def test_derivs(): + pk1 = pk2Comp.pk2Comp() + ssol = odeint(pk1.derivs, [0,0], pk1.time) + assert ssol[:,0].max().round(3) == 0.151 + + ssol = odeint(pk1.derivs, [1,0], pk1.time) + assert ssol[:,0].max().round(3) == 1.0 + + ssol = odeint(pk1.derivs, [0,1], pk1.time) + assert ssol[:,0].max().round(3) == 0.526 + + ssol = odeint(pk1.derivs, [-2,0], pk1.time) + assert ssol[:,0].max().round(3) == -0.08 + + ssol = odeint(pk1.derivs, [0,-2], pk1.time) + assert ssol[:,0].max().round(3) == 0.0 + \ No newline at end of file