def test_value_error_for_negative_counts(self): with pytest.raises(ValueError): risk_difference(-5, 1, 1, 1)
def test_match_sas_ci(self, counts_1): sas_ci = -0.195996398, 0.195996398 rd = risk_difference(counts_1[0], counts_1[1], counts_1[2], counts_1[3]) npt.assert_allclose(rd[1:3], sas_ci)
def test_risk_difference_equal_to_0(self, counts_1): rd = risk_difference(counts_1[0], counts_1[1], counts_1[2], counts_1[3]) assert rd.point_estimate == 0
def test_risk_difference_equal_to_half(self): rd = risk_difference(50, 50, 25, 75) npt.assert_allclose(rd.point_estimate, 0.25)
def test_match_rd_se(self): nnt = number_needed_to_treat(50, 50, 25, 75) rd = risk_difference(50, 50, 25, 75) npt.assert_allclose(nnt.standard_error, rd[3])
def test_match_rd_ci(self): nnt = number_needed_to_treat(50, 50, 25, 75) rd = risk_difference(50, 50, 25, 75) npt.assert_allclose(nnt[1:3], [1 / i for i in rd[1:3]])
def test_match_risk_difference(self): nnt = number_needed_to_treat(50, 50, 25, 75) rd = risk_difference(50, 50, 25, 75) npt.assert_allclose(nnt.point_estimate, 1 / rd[0])
def test_raises_warning_if_small_cells(self): with pytest.warns( UserWarning, match='confidence interval approximation is invalid'): rd = risk_difference(1, 10, 10, 10)
def test_match_sas_se(self, counts_1): sas_se = 0.1 rd = risk_difference(counts_1[0], counts_1[1], counts_1[2], counts_1[3]) npt.assert_allclose(rd.standard_error, sas_se)