Пример #1
0
 def test_f_measure(self):
     """PCR: f-measure calculations function as expected """
     # Max and min tests
     pcr = PerformanceCalculatorResult(50,0,0,None)
     self.assertAlmostEqual(pcr._calculate_f_measure(),1.000,3)
     pcr = PerformanceCalculatorResult(0,50,0,None)
     self.assertEqual(pcr._calculate_f_measure(),None)
     pcr = PerformanceCalculatorResult(0,0,50,None)
     self.assertEqual(pcr._calculate_f_measure(),None)
Пример #2
0
    def test_init_missing_TN(self):
        """PCR: init functions with missing or non-int TrueNeagtive """
        # TN = n/a 
        pcr = PerformanceCalculatorResult(42,1,0,'n/a')
        self.assertEqual(pcr.TruePositive,42)
        self.assertEqual(pcr.FalsePositive,1)
        self.assertEqual(pcr.FalseNegative,0)
        self.assertEqual(pcr.TrueNegative,None)

        self.assertAlmostEqual(pcr.Precision, 0.9767,3)
        self.assertAlmostEqual(pcr.Recall,1.0,3)
        self.assertAlmostEqual(pcr.FMeasure,0.9882,3)
        # TN = None
        pcr = PerformanceCalculatorResult(42,1,0,None)
        pcr = PerformanceCalculatorResult(42,1,0)
Пример #3
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)
Пример #4
0
    def test_init_all_ints(self):
        """PCR: init functions as expected with valid & complete input """
        pcr = PerformanceCalculatorResult(42,1,0,5)
        self.assertEqual(pcr.TruePositive,42)
        self.assertEqual(pcr.FalsePositive,1)
        self.assertEqual(pcr.FalseNegative,0)
        self.assertEqual(pcr.TrueNegative,5)

        self.assertAlmostEqual(pcr.Precision, 0.9767,3)
        self.assertAlmostEqual(pcr.Recall,1.0,3)
        self.assertAlmostEqual(pcr.FMeasure,0.9882,3)
Пример #5
0
 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)
Пример #6
0
 def setUp(self):
     """ Initialize data for tests """
     self._pcr = PerformanceCalculatorResult(42,1,0,5)