def test_calculation_divide_by_zeros(self): """PCR: P/R/F calculations correctly handle divide-by-zero errors""" # Divide by zero handled correctly pcr = PerformanceCalculatorResult(0,0,0,None) self.assertEqual(pcr._calculate_precision(),None) self.assertEqual(pcr._calculate_recall(),None) self.assertEqual(pcr._calculate_f_measure(),None)
def test_calculation_divide_by_zeros(self): """PCR: P/R/F calculations correctly handle divide-by-zero errors""" # Divide by zero handled correctly pcr = PerformanceCalculatorResult(0, 0, 0, None) self.assertEqual(pcr._calculate_precision(), None) self.assertEqual(pcr._calculate_recall(), None) self.assertEqual(pcr._calculate_f_measure(), None)
def test_calculate_recall(self): """PCR: recall calculations function as expected """ # Max and min tests pcr = PerformanceCalculatorResult(50,0,0,None) self.assertAlmostEqual(pcr._calculate_recall(),1.000,3) pcr = PerformanceCalculatorResult(0,0,50,None) self.assertAlmostEqual(pcr._calculate_recall(),0.000,3) # Intermediate tests pcr = PerformanceCalculatorResult(42,0,1,None) self.assertAlmostEqual(pcr._calculate_recall(),0.9767,3) pcr = PerformanceCalculatorResult(1,0,42,None) self.assertAlmostEqual(pcr._calculate_recall(),0.0232,3) pcr = PerformanceCalculatorResult(42,0,42,None) self.assertAlmostEqual(pcr._calculate_recall(),0.500,3) pcr = PerformanceCalculatorResult(42,0,126,None) self.assertAlmostEqual(pcr._calculate_recall(),0.250,3) pcr = PerformanceCalculatorResult(126,0,42,None) self.assertAlmostEqual(pcr._calculate_recall(),0.750,3) # FP/TN have no effect pcr = PerformanceCalculatorResult(126,20,42,None) self.assertAlmostEqual(pcr._calculate_recall(),0.750,3) pcr = PerformanceCalculatorResult(126,20,42,50) self.assertAlmostEqual(pcr._calculate_recall(),0.750,3)
def test_calculate_recall(self): """PCR: recall calculations function as expected """ # Max and min tests pcr = PerformanceCalculatorResult(50, 0, 0, None) self.assertAlmostEqual(pcr._calculate_recall(), 1.000, 3) pcr = PerformanceCalculatorResult(0, 0, 50, None) self.assertAlmostEqual(pcr._calculate_recall(), 0.000, 3) # Intermediate tests pcr = PerformanceCalculatorResult(42, 0, 1, None) self.assertAlmostEqual(pcr._calculate_recall(), 0.9767, 3) pcr = PerformanceCalculatorResult(1, 0, 42, None) self.assertAlmostEqual(pcr._calculate_recall(), 0.0232, 3) pcr = PerformanceCalculatorResult(42, 0, 42, None) self.assertAlmostEqual(pcr._calculate_recall(), 0.500, 3) pcr = PerformanceCalculatorResult(42, 0, 126, None) self.assertAlmostEqual(pcr._calculate_recall(), 0.250, 3) pcr = PerformanceCalculatorResult(126, 0, 42, None) self.assertAlmostEqual(pcr._calculate_recall(), 0.750, 3) # FP/TN have no effect pcr = PerformanceCalculatorResult(126, 20, 42, None) self.assertAlmostEqual(pcr._calculate_recall(), 0.750, 3) pcr = PerformanceCalculatorResult(126, 20, 42, 50) self.assertAlmostEqual(pcr._calculate_recall(), 0.750, 3)