def test_faster_Roc_computation_not_found_beat_single_prediction(self):
     roc = RoCCurve(10)
     tp, fp, tn, fn = roc.match_classification_annotations([162], ['N'], [176], 19)
     self.assertEqual(5, tp)
     self.assertEqual(14, fp)
     self.assertEqual(144, tn)
     self.assertEqual(14, fn)
 def test_faster_Roc_computation_tn(self):
     roc = RoCCurve(10)
     tp, fp, tn, fn = roc.match_classification_annotations([10], ['N'], [10], 1)
     self.assertEqual(1, tp)
     self.assertEqual(0, fp)
     self.assertEqual(10, tn)
     self.assertEqual(0, fn)
 def test_faster_Roc_computation_close_prediction(self):
     roc = RoCCurve(10)
     tp, fp, tn, fn = roc.match_classification_annotations([10], ['N'], [9], 5)
     self.assertEqual(5, tp)
     self.assertEqual(1, fp)
     self.assertEqual(4, tn)
     self.assertEqual(1, fn)
 def test_faster_Roc_computation_not_found_beat_no_prediction(self):
     roc = RoCCurve(10)
     tp, fp, tn, fn = roc.match_classification_annotations([10], ['N'], [0], 4)
     self.assertEqual(0, tp)
     self.assertEqual(1, fp)
     self.assertEqual(11, tn)
     self.assertEqual(5, fn)
 def test_faster_Roc_computation_perfect_prediction_next_not_perfect(self):
     roc = RoCCurve(10)
     tp, fp, tn, fn = roc.match_classification_annotations([10], ['N'], [10, 15], 10)
     self.assertEqual(11, tp)
     self.assertEqual(5, fp)
     self.assertEqual(0, tn)
     self.assertEqual(0, fn)
 def test_no_predictions(self):
     roc = RoCCurve(10)
     tp, fp, tn, fn = roc.match_classification_annotations([46], ['N'], [], 5)
     self.assertEqual(0, tp)
     self.assertEqual(0, fp)
     self.assertEqual(87, tn)
     self.assertEqual(6, fn)
 def test_large_threshold2(self):
     roc = RoCCurve(10)
     tp, fp, tn, fn = roc.match_classification_annotations([46], ['N'], [0], 50)
     self.assertEqual(1, tp)
     self.assertEqual(0, fp)
     self.assertEqual(18, tn)
     self.assertEqual(42, fn)
 def test_right_number_tp_if_overlapping_predictions_further_apart(self):
     roc = RoCCurve(10)
     tp, fp, tn, fn = roc.match_classification_annotations([10], ['N'], [9, 12], 3)
     self.assertEqual(4, tp)
     self.assertEqual(3, fp)
     self.assertEqual(6, tn)
     self.assertEqual(0, fn)
 def test_right_number_tp_if_two_window_size_apart(self):
     roc = RoCCurve(10)
     tp, fp, tn, fn = roc.match_classification_annotations([10], ['N'], [9, 13], 3)
     self.assertEqual(4, tp)
     self.assertEqual(4, fp)
     self.assertEqual(6, tn)
     self.assertEqual(0, fn)
示例#10
0
 def test_faster_Roc_computation_tn_with_window(self):
     roc = RoCCurve(10)
     tp, fp, tn, fn = roc.match_classification_annotations([10], ['N'], [10], 2)
     self.assertEqual(2, tp)
     self.assertEqual(0, fp)
     self.assertEqual(9, tn)
     self.assertEqual(0, fn)
示例#11
0
 def test_roc_curve_speed(self):
     roc = RoCCurve(10)
     true_samples = list(range(1, 600000, 300))
     true_symbols = ['N'] * len(true_samples)
     test_samples = list(range(1, 600000, 290))
     with ProcessPoolExecutor(max_workers=2) as pool:
         pool.map(roc.match_annotations,
                  list([true_samples] * 10),
                  list([true_symbols] * 10),
                  list([test_samples] * 10))