Skip to content

Commit 5a7d3d3

Browse files
authored
Merge pull request #4327 from aturanjanin/owcontinuize
[ENH] OWContinuize: data info displayed in status bar
2 parents 2cb861f + cf41738 commit 5a7d3d3

File tree

2 files changed

+30
-2
lines changed

2 files changed

+30
-2
lines changed

Orange/widgets/data/owcontinuize.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ def __init__(self):
9797
gui.auto_apply(self.buttonsArea, self, "autosend", box=False)
9898

9999
self.data = None
100+
self.info.set_input_summary(self.info.NoInput)
101+
self.info.set_output_summary(self.info.NoOutput)
100102

101103
def settings_changed(self):
102104
self.commit()
@@ -106,8 +108,11 @@ def settings_changed(self):
106108
def setData(self, data):
107109
self.data = data
108110
if data is None:
111+
self.info.set_input_summary(self.info.NoInput)
112+
self.info.set_output_summary(self.info.NoOutput)
109113
self.Outputs.data.send(None)
110114
else:
115+
self.info.set_input_summary(len(data))
111116
self.unconditional_commit()
112117

113118
def constructContinuizer(self):
@@ -133,9 +138,11 @@ def commit(self):
133138
domain = continuizer(self.data)
134139
data = self.data.transform(domain)
135140
self.Outputs.data.send(data)
141+
self.info.set_output_summary(len(data))
136142
else:
137143
self.Outputs.data.send(self.data) # None or empty data
138144

145+
139146
def send_report(self):
140147
self.report_items(
141148
"Settings",
@@ -391,4 +398,4 @@ def __call__(self, data):
391398

392399

393400
if __name__ == "__main__": # pragma: no cover
394-
WidgetPreview(OWContinuize).run(Table("lenses"))
401+
WidgetPreview(OWContinuize).run(Table("iris"))

Orange/widgets/data/tests/test_owcontinuize.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Test methods with long descriptive names can omit docstrings
2-
# pylint: disable=missing-docstring
2+
# pylint: disable=missing-docstring,unsubscriptable-object
33
import unittest
4+
from unittest.mock import Mock
45

56
import numpy as np
67

@@ -9,6 +10,7 @@
910
from Orange.widgets.data import owcontinuize
1011
from Orange.widgets.data.owcontinuize import OWContinuize
1112
from Orange.widgets.tests.base import WidgetTest
13+
from orangewidget.widget import StateInfo
1214

1315

1416
class TestOWContinuize(WidgetTest):
@@ -39,6 +41,25 @@ def test_empty_data(self):
3941
imp_data = self.get_output(self.widget.Outputs.data)
4042
self.assertIsNone(imp_data)
4143

44+
def test_summary(self):
45+
"""Check if status bar is updated when data is received"""
46+
data = Table("iris")
47+
input_sum = self.widget.info.set_input_summary = Mock()
48+
output_sum = self.widget.info.set_output_summary = Mock()
49+
50+
self.send_signal(self.widget.Inputs.data, data)
51+
input_sum.assert_called_with(int(StateInfo.format_number(len(data))))
52+
output = self.get_output(self.widget.Outputs.data)
53+
output_sum.assert_called_with(int(StateInfo.format_number(len(output))))
54+
55+
input_sum.reset_mock()
56+
output_sum.reset_mock()
57+
self.send_signal(self.widget.Inputs.data, None)
58+
input_sum.assert_called_once()
59+
self.assertEqual(input_sum.call_args[0][0].brief, "")
60+
output_sum.assert_called_once()
61+
self.assertEqual(output_sum.call_args[0][0].brief, "")
62+
4263
def test_one_column_equal_values(self):
4364
"""
4465
No crash on a column with equal values and with selected option

0 commit comments

Comments
 (0)