Пример #1
0
 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)
Пример #2
0
 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)
Пример #3
0
 def test_calculate_precision(self):
     """PCR: precision calculations function as expected """
     # Max and min tests
     pcr = PerformanceCalculatorResult(50,0,0,None)
     self.assertAlmostEqual(pcr._calculate_precision(),1.000,3)
     pcr = PerformanceCalculatorResult(0,50,0,None)
     self.assertAlmostEqual(pcr._calculate_precision(),0.000,3)
     # Intermediate tests
     pcr = PerformanceCalculatorResult(42,1,0,None)
     self.assertAlmostEqual(pcr._calculate_precision(),0.9767,3)
     pcr = PerformanceCalculatorResult(1,42,0,None)
     self.assertAlmostEqual(pcr._calculate_precision(),0.0232,3)
     pcr = PerformanceCalculatorResult(42,42,0,None)
     self.assertAlmostEqual(pcr._calculate_precision(),0.500,3)
     pcr = PerformanceCalculatorResult(42,126,0,None)
     self.assertAlmostEqual(pcr._calculate_precision(),0.250,3)
     pcr = PerformanceCalculatorResult(126,42,0,None)
     self.assertAlmostEqual(pcr._calculate_precision(),0.750,3)
     # FN/TN has no effect
     pcr = PerformanceCalculatorResult(126,42,20,None)
     self.assertAlmostEqual(pcr._calculate_precision(),0.750,3)
     pcr = PerformanceCalculatorResult(126,42,20,50)
     self.assertAlmostEqual(pcr._calculate_precision(),0.750,3)
Пример #4
0
 def test_calculate_precision(self):
     """PCR: precision calculations function as expected """
     # Max and min tests
     pcr = PerformanceCalculatorResult(50, 0, 0, None)
     self.assertAlmostEqual(pcr._calculate_precision(), 1.000, 3)
     pcr = PerformanceCalculatorResult(0, 50, 0, None)
     self.assertAlmostEqual(pcr._calculate_precision(), 0.000, 3)
     # Intermediate tests
     pcr = PerformanceCalculatorResult(42, 1, 0, None)
     self.assertAlmostEqual(pcr._calculate_precision(), 0.9767, 3)
     pcr = PerformanceCalculatorResult(1, 42, 0, None)
     self.assertAlmostEqual(pcr._calculate_precision(), 0.0232, 3)
     pcr = PerformanceCalculatorResult(42, 42, 0, None)
     self.assertAlmostEqual(pcr._calculate_precision(), 0.500, 3)
     pcr = PerformanceCalculatorResult(42, 126, 0, None)
     self.assertAlmostEqual(pcr._calculate_precision(), 0.250, 3)
     pcr = PerformanceCalculatorResult(126, 42, 0, None)
     self.assertAlmostEqual(pcr._calculate_precision(), 0.750, 3)
     # FN/TN has no effect
     pcr = PerformanceCalculatorResult(126, 42, 20, None)
     self.assertAlmostEqual(pcr._calculate_precision(), 0.750, 3)
     pcr = PerformanceCalculatorResult(126, 42, 20, 50)
     self.assertAlmostEqual(pcr._calculate_precision(), 0.750, 3)