def test_confusion_matrix_updates_correctly(self):
     confusion_matrix = error_metrics.ConfusionMatrix()
     confusion_matrix.update(prediction=1,
                             truth=0)  # Add one false positive
     confusion_matrix.update(prediction=0, truth=0)  # Add one true negative
     self.assertEqual(confusion_matrix.fp, 1)
     self.assertEqual(confusion_matrix.tn, 1)
 def test_confusion_as_array_and_cost_as_array_line_up(self):
     cost_matrix = params.CostMatrix(tp=1, tn=2, fp=3, fn=4).as_array()
     confusion_matrix = error_metrics.ConfusionMatrix(tp=1,
                                                      tn=2,
                                                      fp=3,
                                                      fn=4).as_array()
     self.assertAlmostEqual(np.linalg.norm(cost_matrix - confusion_matrix),
                            0)
 def test_confusion_matrix_serializes(self):
   confusion_matrix = error_metrics.ConfusionMatrix()
   confusion_matrix.update(prediction=1, truth=0)  # Add one false positive
   confusion_matrix.update(prediction=0, truth=0)  # Add one true negative
   core.to_json(confusion_matrix)