def test_is_none(self): self.assertEqual(chi_square_p_value(((1, 1), (1, -1))), (None, None), "Negative numbers should not be allowed") self.assertEqual(chi_square_p_value(((0, 0), (0, 0))), (None, None), "Zero sample size should not be allowed") self.assertIsNone(chi_square_p_value(((1, ), (1, 2))), "Unequal matrices should not be allowed") self.assertIsNone(chi_square_p_value(((1, 2, 3), (1, 2, 3), (1, 2))), "Unequal matrices should not be allowed") self.assertIsNone( chi_square_p_value(((100, 10), (200, 20), (300, 30), (400, 40))), "Matrices have to be square")
def chi_squared_confidence(a_count, a_conversion, b_count, b_conversion): contingency_table = [[a_count - a_conversion, a_conversion], [b_count - b_conversion, b_conversion]] chi_square, p_value = chi_square_p_value(contingency_table) if p_value is not None: return (1 - p_value) * 100 else: return None
def test_stress(self): # Generate a large matrix matrix = [] for col in xrange(0, 100): matrix.append([]) for row in xrange(0, 100): matrix[col].append(random.randint(0, 10)) self.assertIsNotNone(chi_square_p_value(matrix))
def assertChiSquareCorrect(self, matrix, observed_test_statistic, p_value, accuracy=7): observed_test_statistic_result, p_value_result = chi_square_p_value( matrix) self.assertAlmostEqual(observed_test_statistic_result, observed_test_statistic, accuracy, 'Wrong observed result') self.assertAlmostEqual(p_value_result, p_value, accuracy, 'Wrong P Value')
def test_error(self): self.assertRaises(TypeError, chi_square_p_value((1, ))) self.assertRaises(TypeError, chi_square_p_value(((1, 2, 3))))
def assertChiSquareCorrect(self, matrix, observed_test_statistic, p_value, accuracy=7): observed_test_statistic_result, p_value_result = chi_square_p_value(matrix) self.assertAlmostEqual(observed_test_statistic_result, observed_test_statistic, accuracy, 'Wrong observed result') self.assertAlmostEqual(p_value_result, p_value, accuracy, 'Wrong P Value')
def test_is_none(self): self.assertEqual(chi_square_p_value(((1, 1), (1, -1))), (None, None), "Negative numbers should not be allowed") self.assertEqual(chi_square_p_value(((0, 0), (0, 0))), (None, None), "Zero sample size should not be allowed") self.assertIsNone(chi_square_p_value(((1,), (1, 2))), "Unequal matrices should not be allowed") self.assertIsNone(chi_square_p_value(((1, 2, 3), (1, 2, 3), (1, 2))), "Unequal matrices should not be allowed") self.assertIsNone(chi_square_p_value(((100, 10), (200, 20), (300, 30), (400, 40))), "Matrices have to be square")
def test_error(self): self.assertRaises(TypeError, chi_square_p_value((1,))) self.assertRaises(TypeError, chi_square_p_value(((1,2,3))))