diff --git a/tests/test_turnbull.py b/tests/test_turnbull.py new file mode 100644 index 0000000..f3884f0 --- /dev/null +++ b/tests/test_turnbull.py @@ -0,0 +1,52 @@ +# scipy-yli: Helpful SciPy utilities and recipes +# Copyright © 2022–2023 Lee Yingtong Li (RunasSudo) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from pytest import approx + +import pandas as pd + +import yli + +def test_turnbull_simple(): + """Compare yli.turnbull for simple example""" + + df = pd.DataFrame({ + 'Time_L': [0.5, 1, 3, 5], + 'Time_R': [2.5, 2, 4, 6] + }) + + xpoints, ypoints = yli.survival.calc_survfunc_turnbull(df['Time_L'], df['Time_R']) + + assert xpoints[0] == 0 + assert ypoints[0] == 1 + + assert xpoints[1] == approx(1.5) + assert ypoints[1] == 1 + + assert xpoints[2] == approx(1.5) + assert ypoints[2] == 0.5 + + assert xpoints[3] == approx(3.5) + assert ypoints[3] == 0.5 + + assert xpoints[4] == approx(3.5) + assert ypoints[4] == 0.25 + + assert xpoints[5] == approx(5.5) + assert ypoints[5] == 0.25 + + assert xpoints[6] == approx(5.5) + assert ypoints[6] == 0