Skip to content

Commit 64461f9

Browse files
authored
Merge pull request #3615 from VesnaT/fix_lin_proj
[FIX] LinearProjection: Disable LDA for less than three classes
2 parents 24dee7b + a1a70ff commit 64461f9

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

Orange/widgets/visualize/owlinearprojection.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,7 @@ def _check_options(self):
383383

384384
if self.data is not None:
385385
has_discrete_class = self.data.domain.has_discrete_class
386-
if not has_discrete_class or len(np.unique(self.data.Y)) < 2:
386+
if not has_discrete_class or len(np.unique(self.data.Y)) < 3:
387387
buttons[self.Placement.LDA].setEnabled(False)
388388
if self.placement == self.Placement.LDA:
389389
self.placement = self.Placement.Circular

Orange/widgets/visualize/tests/test_owlinearprojection.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,11 @@ def test_invalidated_model_selected(self):
183183
self.send_signal(self.widget.Inputs.data, self.data)
184184
self.widget.setup_plot.assert_called_once()
185185

186+
def test_two_classes_dataset(self):
187+
self.widget.radio_placement.buttons[1].click()
188+
self.send_signal(self.widget.Inputs.data, Table("heart_disease"))
189+
self.assertFalse(self.widget.radio_placement.buttons[1].isEnabled())
190+
186191

187192
class LinProjVizRankTests(WidgetTest):
188193
"""

0 commit comments

Comments
 (0)