Skip to content

Commit b65c214

Browse files
committed
oweditdomain: Add tests for ordered categorical change
1 parent 0f3d59d commit b65c214

File tree

1 file changed

+34
-2
lines changed

1 file changed

+34
-2
lines changed

Orange/widgets/data/tests/test_oweditdomain.py

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
OWEditDomain,
1818
ContinuousVariableEditor, DiscreteVariableEditor, VariableEditor,
1919
TimeVariableEditor, Categorical, Real, Time, String,
20-
Rename, Annotate, CategoriesMapping, report_transform,
21-
apply_transform
20+
Rename, Annotate, CategoriesMapping, ChangeOrdered, report_transform,
21+
apply_transform,
2222
)
2323
from Orange.widgets.data.owcolor import OWColor, ColorRole
2424
from Orange.widgets.tests.base import WidgetTest, GuiTest
@@ -53,6 +53,12 @@ def test_categories_mapping(self):
5353
self.assertIn("b", r)
5454
self.assertIn("<s>", r)
5555

56+
def test_change_ordered(self):
57+
var = Categorical("C", ("a", "b"), None, ())
58+
tr = ChangeOrdered(True)
59+
r = report_transform(var, [tr])
60+
self.assertIn("ordered", r)
61+
5662

5763
class TestOWEditDomain(WidgetTest):
5864
def setUp(self):
@@ -166,6 +172,21 @@ def test_time_variable_preservation(self):
166172
output = self.get_output(self.widget.Outputs.data)
167173
self.assertEqual(str(table[0, 4]), str(output[0, 4]))
168174

175+
def test_change_ordered(self):
176+
"""Test categorical ordered flag change"""
177+
table = Table(Domain(
178+
[DiscreteVariable("A", values=["a", "b"], ordered=True)]))
179+
self.send_signal(self.widget.Inputs.data, table)
180+
output = self.get_output(self.widget.Outputs.data)
181+
self.assertTrue(output.domain[0].ordered)
182+
183+
editor = self.widget.findChild(DiscreteVariableEditor)
184+
assert isinstance(editor, DiscreteVariableEditor)
185+
editor.ordered_cb.setChecked(False)
186+
self.widget.commit()
187+
output = self.get_output(self.widget.Outputs.data)
188+
self.assertFalse(output.domain[0].ordered)
189+
169190

170191
class TestEditors(GuiTest):
171192
def test_variable_editor(self):
@@ -217,6 +238,7 @@ def test_discrete_editor(self):
217238
w.set_data(v)
218239

219240
self.assertEqual(w.name_edit.text(), v.name)
241+
self.assertFalse(w.ordered_cb.isChecked())
220242
self.assertEqual(w.labels_model.get_dict(), dict(v.annotations))
221243
self.assertEqual(w.get_data(), (v, []))
222244
w.set_data(None)
@@ -233,6 +255,11 @@ def test_discrete_editor(self):
233255
w.grab() # run delegate paint method
234256
self.assertEqual(w.get_data(), (v, [CategoriesMapping(mapping)]))
235257

258+
w.set_data(v, [CategoriesMapping(mapping), ChangeOrdered(True)])
259+
self.assertTrue(w.ordered_cb.isChecked())
260+
self.assertEqual(
261+
w.get_data()[1], [CategoriesMapping(mapping), ChangeOrdered(True)]
262+
)
236263
# test selection/deselection in the view
237264
w.set_data(v)
238265
view = w.values_edit
@@ -299,6 +326,11 @@ def test_discrete_reorder(self):
299326
DD.compute_value, Lookup(D, np.array([2, 3, 1, 0]))
300327
)
301328

329+
def test_ordered_change(self):
330+
D = DiscreteVariable("D", values=("a", "b"), ordered=True)
331+
Do = apply_transform(D, [ChangeOrdered(False)])
332+
self.assertFalse(Do.ordered)
333+
302334
def test_discrete_add_drop(self):
303335
D = DiscreteVariable("D", values=("2", "3", "1", "0"), base_value=1)
304336
mapping = (

0 commit comments

Comments
 (0)