def testNoWinningLabels(self):
    """Inferring 0/4 classes should return 0 winning labels."""
    model = ClassificationModel()

    inferenceResult = numpy.array([0, 0, 0, 0])
    topLabels = model.getWinningLabels(inferenceResult)

    self.assertFalse(topLabels)
    def testNoWinningLabels(self):
        """Inferring 0/4 classes should return 0 winning labels."""
        model = ClassificationModel()

        inferenceResult = numpy.array([0, 0, 0, 0])
        topLabels = model.getWinningLabels(inferenceResult)

        self.assertFalse(topLabels)
  def testWinningLabels(self):
    """
    Tests whether classification base class returns multiple labels correctly.
    """
    model = ClassificationModel()
    inferenceResult = numpy.array([3, 1, 4, 0, 1, 0])

    topLabels = model.getWinningLabels(inferenceResult, numLabels=1)
    self.assertTrue(numpy.allclose(topLabels, numpy.array([2])),
                    "Output should be label 2.")

    topLabels = model.getWinningLabels(inferenceResult, numLabels=2)
    self.assertTrue(numpy.allclose(topLabels, numpy.array([2, 0])),
                    "Output should be labels 2 and 0.")

    # Test only nonzero labels are returned.
    inferenceResult = numpy.array([3, 0, 4, 0, 0, 0])
    topLabels = model.getWinningLabels(inferenceResult, numLabels=5)
    self.assertTrue(numpy.allclose(topLabels, numpy.array([2, 0])),
                    "Output should be labels 2 and 0.")
    def testWinningLabels(self):
        """
    Tests whether classification base class returns multiple labels correctly.
    """
        model = ClassificationModel()
        inferenceResult = numpy.array([3, 1, 4, 0, 1, 0])

        topLabels = model.getWinningLabels(inferenceResult, numLabels=1)
        self.assertTrue(numpy.allclose(topLabels, numpy.array([2])),
                        "Output should be label 2.")

        topLabels = model.getWinningLabels(inferenceResult, numLabels=2)
        self.assertTrue(numpy.allclose(topLabels, numpy.array([2, 0])),
                        "Output should be labels 2 and 0.")

        # Test only nonzero labels are returned.
        inferenceResult = numpy.array([3, 0, 4, 0, 0, 0])
        topLabels = model.getWinningLabels(inferenceResult, numLabels=5)
        self.assertTrue(numpy.allclose(topLabels, numpy.array([2, 0])),
                        "Output should be labels 2 and 0.")
    def testWinningLabels(self):
        """
    Tests whether classification base class returns multiple labels correctly.
    """
        model = ClassificationModel()
        inferenceResult = numpy.array([3, 1, 4, 0, 1, 0])

        topLabels = model.getWinningLabels(inferenceResult, numLabels=1)
        self.assertTrue(numpy.allclose(topLabels, numpy.array([2])), "Output should be label 2.")

        topLabels = model.getWinningLabels(inferenceResult, numLabels=2)
        self.assertTrue(numpy.allclose(topLabels, numpy.array([2, 0])), "Output should be labels 2 and 0.")

        # Test tie is broken by the later index; label 4 beats out label 1.
        topLabels = model.getWinningLabels(inferenceResult, numLabels=3)
        self.assertTrue(numpy.allclose(topLabels, numpy.array([2, 0, 4])), "Output should be labels 2, 0, and 1.")

        # Test only nonzero labels are returned.
        topLabels = model.getWinningLabels(inferenceResult, numLabels=5)
        self.assertTrue(numpy.allclose(topLabels, numpy.array([2, 0, 4, 1])), "Output should be labels 2, 0, 1, and 4.")