Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion Orange/widgets/data/owcontinuize.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@ def __init__(self):
gui.auto_apply(self.buttonsArea, self, "autosend", box=False)

self.data = None
self.info.set_input_summary(self.info.NoInput)
self.info.set_output_summary(self.info.NoOutput)

def settings_changed(self):
self.commit()
Expand All @@ -106,8 +108,11 @@ def settings_changed(self):
def setData(self, data):
self.data = data
if data is None:
self.info.set_input_summary(self.info.NoInput)
self.info.set_output_summary(self.info.NoOutput)
self.Outputs.data.send(None)
else:
self.info.set_input_summary(len(data))
self.unconditional_commit()

def constructContinuizer(self):
Expand All @@ -133,9 +138,11 @@ def commit(self):
domain = continuizer(self.data)
data = self.data.transform(domain)
self.Outputs.data.send(data)
self.info.set_output_summary(len(data))
else:
self.Outputs.data.send(self.data) # None or empty data


def send_report(self):
self.report_items(
"Settings",
Expand Down Expand Up @@ -391,4 +398,4 @@ def __call__(self, data):


if __name__ == "__main__": # pragma: no cover
WidgetPreview(OWContinuize).run(Table("lenses"))
WidgetPreview(OWContinuize).run(Table("iris"))
23 changes: 22 additions & 1 deletion Orange/widgets/data/tests/test_owcontinuize.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Test methods with long descriptive names can omit docstrings
# pylint: disable=missing-docstring
# pylint: disable=missing-docstring,unsubscriptable-object
import unittest
from unittest.mock import Mock

import numpy as np

Expand All @@ -9,6 +10,7 @@
from Orange.widgets.data import owcontinuize
from Orange.widgets.data.owcontinuize import OWContinuize
from Orange.widgets.tests.base import WidgetTest
from orangewidget.widget import StateInfo


class TestOWContinuize(WidgetTest):
Expand Down Expand Up @@ -39,6 +41,25 @@ def test_empty_data(self):
imp_data = self.get_output(self.widget.Outputs.data)
self.assertIsNone(imp_data)

def test_summary(self):
"""Check if status bar is updated when data is received"""
data = Table("iris")
input_sum = self.widget.info.set_input_summary = Mock()
output_sum = self.widget.info.set_output_summary = Mock()

self.send_signal(self.widget.Inputs.data, data)
input_sum.assert_called_with(int(StateInfo.format_number(len(data))))
output = self.get_output(self.widget.Outputs.data)
output_sum.assert_called_with(int(StateInfo.format_number(len(output))))

input_sum.reset_mock()
output_sum.reset_mock()
self.send_signal(self.widget.Inputs.data, None)
input_sum.assert_called_once()
self.assertEqual(input_sum.call_args[0][0].brief, "")
output_sum.assert_called_once()
self.assertEqual(output_sum.call_args[0][0].brief, "")

def test_one_column_equal_values(self):
"""
No crash on a column with equal values and with selected option
Expand Down