chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
import pytest
|
||||
from cleanlab.datalab.internal.data import Data
|
||||
from cleanlab.datalab.internal.data_issues import DataIssues, _ClassificationInfoStrategy
|
||||
from cleanlab.datalab.internal.task import Task
|
||||
|
||||
|
||||
class TestDataIssues:
|
||||
labels = ["B", "A", "B"]
|
||||
label_name = "labels"
|
||||
strategy = _ClassificationInfoStrategy
|
||||
|
||||
@pytest.fixture
|
||||
def data_issues(self):
|
||||
data = Data(
|
||||
data={self.label_name: self.labels},
|
||||
task=Task.CLASSIFICATION,
|
||||
label_name=self.label_name,
|
||||
)
|
||||
data_issues = DataIssues(data=data, strategy=self.strategy)
|
||||
yield data_issues
|
||||
|
||||
def test_data_issues_init(self, data_issues):
|
||||
assert hasattr(data_issues, "issues")
|
||||
assert hasattr(data_issues, "issue_summary")
|
||||
assert hasattr(data_issues, "info")
|
||||
|
||||
def test_statistics(self, data_issues):
|
||||
stats = data_issues.statistics
|
||||
|
||||
assert stats == data_issues.info["statistics"]
|
||||
assert stats["num_examples"] == 3, f"Incorrect number of examples: {stats['num_examples']}"
|
||||
assert stats["class_names"] == ["A", "B"], f"Incorrect class names: {stats['class_names']}"
|
||||
assert stats["num_classes"] == 2, f"Incorrect number of classes: {stats['num_classes']}"
|
||||
assert stats["multi_label"] is False
|
||||
assert (
|
||||
stats["health_score"] is None
|
||||
), f"Health score should initially be None, but is {stats['health_score']}"
|
||||
|
||||
def test_get_info(self, data_issues):
|
||||
with pytest.raises(ValueError):
|
||||
data_issues.get_info("nonexistent_issue")
|
||||
assert data_issues.get_info("statistics") == data_issues.info["statistics"]
|
||||
|
||||
def test_get_info_label(self, data_issues):
|
||||
data_issues.info["label"] = {"given_label": [0, 1, 1], "predicted_label": [1, 0, 1]}
|
||||
info = data_issues.get_info("label")
|
||||
|
||||
label_format_error_message = (
|
||||
"get_info('label') should return the given label formatted with the class names"
|
||||
)
|
||||
assert info.get("given_label").tolist() == ["A", "B", "B"], label_format_error_message
|
||||
assert info.get("predicted_label").tolist() == self.labels, label_format_error_message
|
||||
Reference in New Issue
Block a user