diff --git a/tests/test_anova.py b/tests/test_anova.py index d533e0b..441c59e 100644 --- a/tests/test_anova.py +++ b/tests/test_anova.py @@ -50,3 +50,6 @@ def test_regress_ftest_ol8_2(): assert result.dof1 == 2 assert result.dof2 == 21 assert result.pvalue < 0.001 + + expected_summary = 'F(2, 21) = 29.57; p < 0.001*' + assert result.summary() == expected_summary diff --git a/tests/test_chi2.py b/tests/test_chi2.py index c89081a..0685fc7 100644 --- a/tests/test_chi2.py +++ b/tests/test_chi2.py @@ -67,3 +67,14 @@ def test_chi2_ol10_18(): assert result.oddsratio.point == approx(1.333, abs=0.001) assert result.oddsratio.ci_lower == approx(1.113, abs=0.001) assert result.oddsratio.ci_upper == approx(1.596, abs=0.001) + + expected_summary = '''Stress False True +Response +False 250 400 +True 750 1600 + +χ²(1) = 9.82; p = 0.002* +OR (95% CI) = 1.33 (1.11–1.60) +RR (95% CI) = 1.11 (1.03–1.18)''' + + assert result.summary() == expected_summary diff --git a/tests/test_mannwhitney.py b/tests/test_mannwhitney.py index 4515367..31a75fd 100644 --- a/tests/test_mannwhitney.py +++ b/tests/test_mannwhitney.py @@ -32,3 +32,8 @@ def test_mannwhitney_ol6_6(): result = yli.mannwhitney(df, 'Oxygen', 'Sample', method='asymptotic', alternative='less') assert result.pvalue == approx(0.00007, abs=0.00001) + + expected_summary = '''U = 6.0; p < 0.001* +r = 0.92, Before > After''' + + assert result.summary() == expected_summary diff --git a/tests/test_regress.py b/tests/test_regress.py index 721861d..912b23f 100644 --- a/tests/test_regress.py +++ b/tests/test_regress.py @@ -113,15 +113,38 @@ def test_regress_logit_ol12_23(): assert lrtest_result.dof == 2 assert lrtest_result.pvalue == approx(0.0191, rel=0.02) + # Can't validate intercept as very negative + expbeta_fib = np.exp(result.terms['Fibrinogen'].beta) assert expbeta_fib.point == approx(6.756, rel=0.01) assert expbeta_fib.ci_lower == approx(1.007, rel=0.01) assert expbeta_fib.ci_upper == approx(45.308, rel=0.02) + assert result.terms['Fibrinogen'].pvalue == approx(0.0491, rel=0.01) expbeta_gam = np.exp(result.terms['GammaGlobulin'].beta) assert expbeta_gam.point == approx(1.169, abs=0.001) assert expbeta_gam.ci_lower == approx(0.924, abs=0.001) assert expbeta_gam.ci_upper == approx(1.477, abs=0.001) + assert result.terms['GammaGlobulin'].pvalue == approx(0.1925, rel=0.01) + + expected_summary = ''' Logistic Regression Results +====================================================== +Dep. Variable: Unhealthy | No. Observations: 32 + Model: Logit | Df. Model: 2 + Method: MLE | Df. Residuals: 29 + Date: {0:%Y-%m-%d} | Pseudo R²: 0.26 + Time: {0:%H:%M:%S} | LL-Model: -11.47 + Std. Errors: Non-Robust | LL-Null: -15.44 + | p (LR): 0.02* +====================================================== + exp(β) (95% CI) p +----------------------------------------------- + (Intercept) 0.00 (0.00 - 0.24) 0.03* + Fibrinogen 6.80 (1.01 - 45.79) 0.049* +GammaGlobulin 1.17 (0.92 - 1.48) 0.19 +-----------------------------------------------'''.format(result.fitted_dt) + + assert result.summary() == expected_summary def test_regress_logit_ol10_18(): """Compare odds ratios via yli.regress for Ott & Longnecker (2016) example 10.18""" @@ -172,3 +195,22 @@ def test_regress_penalisedlogit_kleinman(): assert lrtest_result.statistic == approx(78.95473) assert lrtest_result.dof == 1 assert lrtest_result.pvalue < 0.0001 + + expected_summary = ''' Penalised Logistic Regression Results +========================================================= +Dep. Variable: Outcome | No. Observations: 240 + Model: Logit | Df. Model: 1 + Method: Penalised ML | Pseudo R²: 0.37 + Date: {0:%Y-%m-%d} | LL-Model: -66.43 + Time: {0:%H:%M:%S} | LL-Null: -105.91 + Std. Errors: Non-Robust | p (LR): <0.001* +========================================================= + β (95% CI) p +--------------------------------------------- +(Intercept) -2.28 (-2.77 - -1.85) <0.001* + Pred 5.99 (3.95 - 10.85) <0.001* +---------------------------------------------'''.format(result.fitted_dt) + + assert result.summary() == expected_summary + +# TODO: Test for logit_then_regress diff --git a/tests/test_ttest.py b/tests/test_ttest.py index 0870bce..fd5e78d 100644 --- a/tests/test_ttest.py +++ b/tests/test_ttest.py @@ -38,3 +38,8 @@ def test_ttest_ind_ol6_1(): assert result.delta.point == approx(0.54, abs=0.01) assert result.delta.ci_lower == approx(0.272, abs=0.01) assert result.delta.ci_upper == approx(0.808, abs=0.01) + + expected_summary = '''t(18) = 4.24; p < 0.001* +Δμ (95% CI) = 0.54 (0.27–0.81), Fresh > Stored''' + + assert result.summary() == expected_summary