Skip to content

Commit 50eb9a0

Browse files
committed
add multi_target_input tests
1 parent 63b7129 commit 50eb9a0

File tree

2 files changed

+57
-1
lines changed

2 files changed

+57
-1
lines changed

Orange/widgets/evaluate/tests/test_owpredictions.py

+21
Original file line numberDiff line numberDiff line change
@@ -877,6 +877,27 @@ def test_change_target(self):
877877
self.assertEqual(table.model.columnCount(), 4)
878878
self.assertEqual(float(table.model.data(table.model.index(0, 3))),
879879
idx)
880+
881+
def test_multi_target_input(self):
882+
widget = self.widget
883+
884+
domain = Domain([ContinuousVariable('var1')],
885+
class_vars=[
886+
ContinuousVariable('c1'),
887+
DiscreteVariable('c2', values=('no', 'yes'))
888+
])
889+
data = Table.from_list(domain, [[1, 5, 0], [2, 10, 1]])
890+
891+
mock_model = Mock(spec=Model, return_value=np.asarray([0.2, 0.1]))
892+
mock_model.name = 'Mockery'
893+
mock_model.domain = domain
894+
mock_learner = Mock(return_value=mock_model)
895+
model = mock_learner(data)
896+
897+
self.send_signal(widget.Inputs.data, data)
898+
self.send_signal(widget.Inputs.predictors, model, 1)
899+
pred = self.get_output(widget.Outputs.predictions)
900+
self.assertIsInstance(pred, Table)
880901

881902
def test_report(self):
882903
widget = self.widget

Orange/widgets/evaluate/tests/test_owtestandscore.py

+36-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from Orange.evaluation import Results, TestOnTestData, scoring
1717
from Orange.evaluation.scoring import ClassificationScore, RegressionScore, \
1818
Score
19-
from Orange.base import Learner
19+
from Orange.base import Learner, Model
2020
from Orange.modelling import ConstantLearner
2121
from Orange.regression import MeanLearner
2222
from Orange.widgets.evaluate.owtestandscore import (
@@ -720,6 +720,41 @@ def test_copy_to_clipboard(self):
720720
for i in (0, 3, 4, 5, 6, 7)]) + "\r\n"
721721
self.assertEqual(clipboard_text, view_text)
722722

723+
def test_multi_target_input(self):
724+
class NewScorer(Score):
725+
class_types = (
726+
ContinuousVariable,
727+
DiscreteVariable,
728+
)
729+
problem_type = 'new_problem_type'
730+
731+
def compute_score(self, results):
732+
return [0.75]
733+
734+
domain = Domain([ContinuousVariable('var1')],
735+
class_vars=[
736+
ContinuousVariable('c1'),
737+
DiscreteVariable('c2', values=('no', 'yes'))
738+
])
739+
data = Table.from_list(domain, [[1, 5, 0], [2, 10, 1], [2, 10, 1]])
740+
data.attributes = {'problem_type': 'new_problem_type'}
741+
742+
mock_model = Mock(spec=Model, return_value=np.asarray([[0.2, 0.1, 0.2]]))
743+
mock_model.name = 'Mockery'
744+
mock_model.domain = domain
745+
mock_learner = Mock(spec=Learner, return_value=mock_model)
746+
mock_learner.name = 'Mockery'
747+
748+
749+
self.widget.resampling = OWTestAndScore.TestOnTrain
750+
self.send_signal(self.widget.Inputs.train_data, data)
751+
self.send_signal(self.widget.Inputs.learner, MajorityLearner(), 0)
752+
self.send_signal(self.widget.Inputs.learner, mock_learner, 1)
753+
_ = self.get_output(self.widget.Outputs.evaluations_results, wait=5000)
754+
self.assertTrue(len(self.widget.scorers) == 1)
755+
self.assertTrue(NewScorer in self.widget.scorers)
756+
self.assertTrue(len(self.widget._successful_slots()) == 1)
757+
723758

724759
class TestHelpers(unittest.TestCase):
725760
def test_results_one_vs_rest(self):

0 commit comments

Comments
 (0)