Skip to content

Commit 2bcef21

Browse files
authored
Merge pull request #4331 from aturanjanin/owdiscretize
[ENH] OWDiscretize: data info displayed in status bar
2 parents 5a7d3d3 + 52e9b39 commit 2bcef21

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

Orange/widgets/data/owdiscretize.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,9 @@ def _intbox(parent, attr, callback):
245245

246246
self._update_spin_positions()
247247

248+
self.info.set_input_summary(self.info.NoInput)
249+
self.info.set_output_summary(self.info.NoOutput)
250+
248251

249252
@Inputs.data
250253
def set_data(self, data):
@@ -257,7 +260,9 @@ def set_data(self, data):
257260
self._restore(self.saved_var_states)
258261
# Complete the induction of cut points
259262
self._update_points()
263+
self.info.set_input_summary(len(data))
260264
else:
265+
self.info.set_input_summary(self.info.NoInput)
261266
self._clear()
262267
self.unconditional_commit()
263268

@@ -478,6 +483,9 @@ def commit(self):
478483
if self.data is not None and len(self.data):
479484
domain = self.discretized_domain()
480485
output = self.data.transform(domain)
486+
self.info.set_output_summary(len(output))
487+
else:
488+
self.info.set_output_summary(self.info.NoOutput)
481489
self.Outputs.data.send(output)
482490

483491
def storeSpecificSettings(self):

Orange/widgets/data/tests/test_owdiscretize.py

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
# Test methods with long descriptive names can omit docstrings
2-
# pylint: disable=missing-docstring
2+
# pylint: disable=missing-docstring,unsubscriptable-object
3+
from unittest.mock import Mock
4+
35
from Orange.data import Table
46
from Orange.widgets.data.owdiscretize import OWDiscretize
57
from Orange.widgets.tests.base import WidgetTest
8+
from orangewidget.widget import StateInfo
69

710

811
class TestOWDiscretize(WidgetTest):
@@ -17,3 +20,22 @@ def test_empty_data(self):
1720
self.send_signal(self.widget.Inputs.data,
1821
Table.from_domain(data.domain))
1922
widget.unconditional_commit()
23+
24+
def test_summary(self):
25+
"""Check if status bar is updated when data is received"""
26+
input_sum = self.widget.info.set_input_summary = Mock()
27+
output_sum = self.widget.info.set_output_summary = Mock()
28+
29+
data = Table("iris")
30+
self.send_signal(self.widget.Inputs.data, data)
31+
input_sum.assert_called_with(int(StateInfo.format_number(len(data))))
32+
output = self.get_output(self.widget.Outputs.data)
33+
output_sum.assert_called_with(int(StateInfo.format_number(len(output))))
34+
35+
input_sum.reset_mock()
36+
output_sum.reset_mock()
37+
self.send_signal(self.widget.Inputs.data, None)
38+
input_sum.assert_called_once()
39+
self.assertEqual(input_sum.call_args[0][0].brief, "")
40+
output_sum.assert_called_once()
41+
self.assertEqual(output_sum.call_args[0][0].brief, "")

0 commit comments

Comments
 (0)