def test_oddsRatio_known(self): '''Test Odds ratio calculation with example given by Thornes and Stephenson''' ctab = verify.Contingency2x2([[29, 6], [4, 38]]) self.assertAlmostEqual(ctab.oddsRatio(), 45.9, places=1)
def test_direct_array_floats(self): '''check construction from direct provision of rates as array, force floating point''' ctab = verify.Contingency2x2(np.asarray(self.res), dtype=np.float) npt.assert_array_equal(np.asarray(self.res, dtype=np.float), ctab)
def test_MatthewsCC_known2(self): '''Matthews correlation coefficient known value test''' ctab = verify.Contingency2x2([[0, 24], [327, 0]]) self.assertEqual(ctab.MatthewsCC(), -1)
def test_direct_array(self): '''check construction from direct provision of rates as array''' ctab = verify.Contingency2x2(np.asarray(self.res)) npt.assert_array_equal(self.res, ctab)
def test_BootstrapCI_failsWithoutBooleanCreate(self): '''Test bootstrap CI calculation raises an error when called on a table without input booleans''' ctab = verify.Contingency2x2(self.Finley) self.assertRaises(AttributeError, ctab.POD, ci='bootstrap')
def test_Finley_const_no_PSS(self): ctab = verify.Contingency2x2(self.Finley_b) self.assertEqual(ctab.peirce(), 0)
def test_Finley_MC(self): '''Ensure that PC for the constant Finley forecast is the same as the MC for the standard Finley''' ctab = verify.Contingency2x2(self.Finley) ctab_const_no = verify.Contingency2x2(self.Finley_b) self.assertEqual(ctab_const_no.PC(), ctab.majorityClassFraction()) self.assertAlmostEqual(ctab.majorityClassFraction(), 0.982, places=3)
def test_Finley_PSS_CIAgresti_regress(self): ctab = verify.Contingency2x2(self.Finley) npt.assert_array_almost_equal( ctab.peirce(ci='AC'), [0.5228568171454651, 0.13187940039376933], decimal=5)
def test_Finley_GSS(self): ctab = verify.Contingency2x2(self.Finley) self.assertAlmostEqual(ctab.equitableThreat(), 0.216, places=3)
def test_Finley_PSS(self): ctab = verify.Contingency2x2(self.Finley) self.assertAlmostEqual(ctab.peirce(), 0.523, places=3)
def test_Finley_PSS_CIWald_regress(self): ctab = verify.Contingency2x2(self.Finley) npt.assert_array_almost_equal( ctab.peirce(ci='Wald'), [0.5228568171454651, 0.13669651496274715], decimal=5)
def test_Finley_HSS(self): ctab = verify.Contingency2x2(self.Finley) self.assertAlmostEqual(ctab.heidke(), 0.355, places=3)
def test_Finley_bias(self): ctab = verify.Contingency2x2(self.Finley) self.assertAlmostEqual(ctab.bias(), 1.96, places=2)
def test_Finley_threat(self): ctab = verify.Contingency2x2(self.Finley) self.assertAlmostEqual(ctab.threat(), 0.228, places=3)
def test_Finley_n(self): ctab = verify.Contingency2x2(self.Finley) self.assertEqual(ctab.sum(), 2803)
def test_YuleQ_known(self): '''Test Yule's Q (ORSS) calculation with example given by Thornes and Stephenson''' ctab = verify.Contingency2x2([[29, 6], [4, 38]]) self.assertAlmostEqual(ctab.yuleQ(), 0.96, places=2)