def test_single_value_numeric_no_pos_label(self): r0 = _get_labels_for_confusion_matrix([0], None) assert np.array_equal(r0, [0, 1]) r1 = _get_labels_for_confusion_matrix([-1], None) assert np.array_equal(r1, [-1, 1]) r2 = _get_labels_for_confusion_matrix([1], None) assert np.array_equal(r2, [None, 1])
def test_pos_label_not_in_data(self): expected_msg = "Must have pos_label in y values" with pytest.raises(ValueError) as e0: _get_labels_for_confusion_matrix([0, 1], -1) assert str(e0.value) == expected_msg with pytest.raises(ValueError) as e1: _get_labels_for_confusion_matrix([4, 2], 3) assert str(e1.value) == expected_msg
def test_need_pos_label(self): expected_msg = "If pos_label is not specified, values must be from {0, 1} or {-1, 1}" with pytest.raises(ValueError) as e0: _get_labels_for_confusion_matrix([0, 2], None) assert str(e0.value) == expected_msg with pytest.raises(ValueError) as e1: _get_labels_for_confusion_matrix([-1, 0], None) assert str(e1.value) == expected_msg
def test_too_many_values(self): expected_msg = "Must have no more than two unique y values" expected_msg_no_pos = \ "If pos_label is not specified, values must be from {0, 1} or {-1, 1}" with pytest.raises(ValueError) as e0: _get_labels_for_confusion_matrix([0, 1, 2], None) # Note that while the following error message should be deterministic # from a user PoV, either message is helpful assert str(e0.value) in {expected_msg, expected_msg_no_pos} # In the following, only one error is possible with pytest.raises(ValueError) as e1: _get_labels_for_confusion_matrix(['a', 'b', 'c'], 'a') assert str(e1.value) == expected_msg
def test_single_value_alpha_pos_label(self): r0 = _get_labels_for_confusion_matrix(['a'], 'a') assert np.array_equal(r0, [None, 'a']) r1 = _get_labels_for_confusion_matrix(['a'], 0) assert np.array_equal(r1, ['a', 0])
def test_single_value_numeric_pos_label(self): r0 = _get_labels_for_confusion_matrix([0], 3) assert np.array_equal(r0, [0, 3]) r1 = _get_labels_for_confusion_matrix([0], 0) assert np.array_equal(r1, [None, 0])
def test_smoke_alpha_pos_label(self): r0 = _get_labels_for_confusion_matrix(['a', 'b'], 'b') assert np.array_equal(r0, ['a', 'b']) r1 = _get_labels_for_confusion_matrix(['a', 'b'], 'a') assert np.array_equal(r1, ['b', 'a'])
def test_smoke_numeric_pos_label(self): r0 = _get_labels_for_confusion_matrix([0, 2], 2) assert np.array_equal(r0, [0, 2]) r1 = _get_labels_for_confusion_matrix([0, 2], 0) assert np.array_equal(r1, [2, 0])
def test_smoke(self): r0 = _get_labels_for_confusion_matrix([0, 1], None) assert np.array_equal(r0, [0, 1]) r1 = _get_labels_for_confusion_matrix([-1, 1], None) assert np.array_equal(r1, [-1, 1])
def test_single_value_alpha_pos_label(self): r0 = _get_labels_for_confusion_matrix(["a"], "a") assert np.array_equal(r0, [np.iinfo(np.int64).min, "a"]) r1 = _get_labels_for_confusion_matrix(["a"], 0) assert np.array_equal(r1, ["a", 0])
def test_smoke_alpha_pos_label(self): r0 = _get_labels_for_confusion_matrix(["a", "b"], "b") assert np.array_equal(r0, ["a", "b"]) r1 = _get_labels_for_confusion_matrix(["a", "b"], "a") assert np.array_equal(r1, ["b", "a"])