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)
2323from Orange .widgets .data .owcolor import OWColor , ColorRole
2424from 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
5763class 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
170191class 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