Skip to content

Commit 8fe4860

Browse files
authored
Merge pull request #4746 from aturanjanin/owconfusionmatrix
ConfusionMatrix: data info displayed in the status bar
2 parents e5d218e + 40fff78 commit 8fe4860

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

Orange/widgets/evaluate/owconfusionmatrix.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from Orange.widgets.utils.annotated_data import (create_annotated_table,
1919
ANNOTATED_DATA_SIGNAL_NAME)
2020
from Orange.widgets.utils.widgetpreview import WidgetPreview
21+
from Orange.widgets.utils.state_summary import format_summary_details
2122
from Orange.widgets.widget import Msg, Input, Output
2223

2324

@@ -143,6 +144,8 @@ def __init__(self):
143144

144145
gui.auto_apply(self.outputbox, self, "autocommit", box=False)
145146

147+
self.info.set_output_summary(self.info.NoOutput)
148+
146149
self.mainArea.layout().setContentsMargins(0, 0, 0, 0)
147150

148151
box = gui.vBox(self.mainArea, box=True)
@@ -412,6 +415,10 @@ def commit(self):
412415
data = None
413416
annotated_data = None
414417

418+
summary = len(data) if data else self.info.NoOutput
419+
details = format_summary_details(data) if data else ""
420+
self.info.set_output_summary(summary, details)
421+
415422
self.Outputs.selected_data.send(data)
416423
self.Outputs.annotated_data.send(annotated_data)
417424

Orange/widgets/evaluate/tests/test_owconfusionmatrix.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# pylint: disable=missing-docstring
1+
# pylint: disable=missing-docstring, protected-access
22
import numpy as np
33

44
from Orange.data import Table
@@ -8,6 +8,7 @@
88
ShuffleSplit, Results
99
from Orange.widgets.evaluate.owconfusionmatrix import OWConfusionMatrix
1010
from Orange.widgets.tests.base import WidgetTest, WidgetOutputsTestMixin
11+
from Orange.widgets.utils.state_summary import format_summary_details
1112

1213

1314
class TestOWConfusionMatrix(WidgetTest, WidgetOutputsTestMixin):
@@ -117,3 +118,20 @@ def test_not_append_extra_meta_columns(self):
117118
"""
118119
self.widget.append_predictions = False
119120
self.send_signal(self.widget.Inputs.evaluation_results, self.results_1_iris)
121+
122+
def test_summary(self):
123+
"""Check if the status bar updates"""
124+
info = self.widget.info
125+
no_output = "No data on output"
126+
127+
self.send_signal(self.widget.Inputs.evaluation_results, self.results_1_iris)
128+
self.assertEqual(info._StateInfo__output_summary.brief, "")
129+
self.assertEqual(info._StateInfo__output_summary.details, no_output)
130+
self._select_data()
131+
output = self.get_output(self.widget.Outputs.selected_data)
132+
summary, details = f"{len(output)}", format_summary_details(output)
133+
self.assertEqual(info._StateInfo__output_summary.brief, summary)
134+
self.assertEqual(info._StateInfo__output_summary.details, details)
135+
self.send_signal(self.widget.Inputs.evaluation_results, None)
136+
self.assertEqual(info._StateInfo__output_summary.brief, "")
137+
self.assertEqual(info._StateInfo__output_summary.details, no_output)

0 commit comments

Comments
 (0)