Skip to content

Commit 711be6f

Browse files
committed
OWMDS: Don't select the first string variable as default label
1 parent 8d59096 commit 711be6f

File tree

2 files changed

+6
-26
lines changed

2 files changed

+6
-26
lines changed

Orange/widgets/unsupervised/owmds.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -274,11 +274,6 @@ def init_attr_values(self):
274274
self.graph.attr_shape = None
275275
self.graph.attr_size = None
276276
self.graph.attr_label = None
277-
if domain is not None:
278-
for var in domain.metas:
279-
if var.is_string:
280-
self.graph.attr_label = var
281-
break
282277

283278
def prepare_data(self):
284279
pass

Orange/widgets/unsupervised/tests/test_owmds.py

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -196,26 +196,26 @@ def test_attr_label_from_dist_matrix_from_file(self):
196196

197197
# Distance matrix with labels
198198
self.send_signal(w.Inputs.distances, self.towns)
199-
self.assertIs(w.graph.attr_label, row_items.domain["label"])
199+
self.assertIn(row_items.domain["label"], w.label_model)
200200

201201
# Distances matrix without labels
202202
self.towns.row_items = None
203203
self.send_signal(w.Inputs.distances, self.towns)
204-
self.assertIsNone(w.graph.attr_label)
204+
self.assertEqual(list(w.label_model), [None])
205205

206206
# No data
207207
self.send_signal(w.Inputs.distances, None)
208-
self.assertIsNone(w.graph.attr_label)
208+
self.assertEqual(list(w.label_model), [None])
209209

210210
# Distances matrix with labels again
211211
self.towns.row_items = row_items
212212
self.send_signal(w.Inputs.distances, self.towns)
213-
self.assertIs(w.graph.attr_label, row_items.domain["label"])
213+
self.assertIn(row_items.domain["label"], w.label_model)
214214

215215
# Followed by no data
216216
self.towns.row_items = None
217217
self.send_signal(w.Inputs.distances, self.towns)
218-
self.assertIsNone(w.graph.attr_label)
218+
self.assertEqual(list(w.label_model), [None])
219219

220220
def test_attr_label_from_dist_matrix_from_data(self):
221221
w = self.widget
@@ -229,29 +229,18 @@ def test_attr_label_from_dist_matrix_from_data(self):
229229
self.send_signal(w.Inputs.data, data)
230230
self.assertTrue(set(chain(data.domain.variables, data.domain.metas))
231231
< set(w.label_model))
232-
self.assertIs(w.graph.attr_label, data.domain.metas[0])
233232

234233
def test_attr_label_from_data(self):
235234
w = self.widget
236235
# Don't run the MDS optimization to save time and to prevent the
237236
# widget be in a blocking state when trying to send the next signal
238237
w.start = Mock()
239238

240-
# Data with string attribute: all attributes present, string selected
241239
data = Table("zoo")
242240
dist = Euclidean(data)
243241
self.send_signal(w.Inputs.distances, dist)
244242
self.assertTrue(set(chain(data.domain.variables, data.domain.metas))
245243
< set(w.label_model))
246-
self.assertIs(w.graph.attr_label, data.domain.metas[0])
247-
248-
# Data without string attribute: all attributes present, none selected
249-
data = Table("iris")
250-
dist = Euclidean(data)
251-
self.send_signal(w.Inputs.distances, dist)
252-
self.assertTrue(set(chain(data.domain.variables, data.domain.metas))
253-
< set(w.label_model))
254-
self.assertIsNone(w.graph.attr_label)
255244

256245
def test_attr_label_matrix_and_data(self):
257246
w = self.widget
@@ -266,25 +255,21 @@ def test_attr_label_matrix_and_data(self):
266255
self.send_signal(w.Inputs.data, data)
267256
self.assertTrue(set(chain(data.domain.variables, data.domain.metas))
268257
< set(w.label_model))
269-
self.assertIs(w.graph.attr_label, data.domain.metas[0])
270258

271259
# Has data, but receives a signal without data: has to keep the label
272260
dist.row_items = None
273261
self.send_signal(w.Inputs.distances, dist)
274262
self.assertTrue(set(chain(data.domain.variables, data.domain.metas))
275263
< set(w.label_model))
276-
self.assertIs(w.graph.attr_label, data.domain.metas[0])
277264

278265
# Has matrix without data, and loses the data: remove the label
279266
self.send_signal(w.Inputs.data, None)
280-
self.assertEqual(len(w.label_model), 1) # just None
281-
self.assertIsNone(w.graph.attr_label)
267+
self.assertEqual(list(w.label_model), [None])
282268

283269
# Has matrix without data, receives data: add attrs to combo, select
284270
self.send_signal(w.Inputs.data, data)
285271
self.assertTrue(set(chain(data.domain.variables, data.domain.metas))
286272
< set(w.label_model))
287-
self.assertIs(w.graph.attr_label, data.domain.metas[0])
288273

289274

290275
if __name__ == "__main__":

0 commit comments

Comments
 (0)