@@ -192,33 +192,44 @@ def test_orthogonal_orderings():
192
192
symbol_sequence = ["circle" , "diamond" , "square" , "cross" ]
193
193
color_sequence = ["red" , "blue" ]
194
194
195
+ def assert_orderings (days_order , days_check , times_order , times_check ):
196
+ fig = px .scatter (
197
+ df ,
198
+ x = "total_bill" ,
199
+ y = "tip" ,
200
+ facet_row = "time" ,
201
+ facet_col = "day" ,
202
+ color = "time" ,
203
+ symbol = "day" ,
204
+ symbol_sequence = symbol_sequence ,
205
+ color_discrete_sequence = color_sequence ,
206
+ category_orders = dict (day = days_order , time = times_order ),
207
+ )
208
+
209
+ for col in range (len (days_check )):
210
+ for trace in fig .select_traces (col = col + 1 ):
211
+ assert days_check [col ] in trace .hovertemplate
212
+
213
+ for row in range (len (times_check )):
214
+ for trace in fig .select_traces (row = 2 - row ):
215
+ assert times_check [row ] in trace .hovertemplate
216
+
217
+ for trace in fig .data :
218
+ for i , day in enumerate (days_check ):
219
+ if day in trace .name :
220
+ assert trace .marker .symbol == symbol_sequence [i ]
221
+ for i , time in enumerate (times_check ):
222
+ if time in trace .name :
223
+ assert trace .marker .color == color_sequence [i ]
224
+
225
+ assert_orderings (
226
+ ["x" , "Sun" , "Sat" , "y" , "Fri" , "z" ], # add extra noise, missing Thur
227
+ ["Sun" , "Sat" , "Fri" , "Thur" ], # Thur is at the back
228
+ ["a" , "Lunch" , "b" ], # add extra noise, missing Dinner
229
+ ["Lunch" , "Dinner" ], # Dinner is at the back
230
+ )
231
+
195
232
for days in permutations (df ["day" ].unique ()):
196
233
for times in permutations (df ["time" ].unique ()):
197
- fig = px .scatter (
198
- df ,
199
- x = "total_bill" ,
200
- y = "tip" ,
201
- facet_row = "time" ,
202
- facet_col = "day" ,
203
- color = "time" ,
204
- symbol = "day" ,
205
- symbol_sequence = symbol_sequence ,
206
- color_discrete_sequence = color_sequence ,
207
- category_orders = dict (day = days , time = times ),
208
- )
209
-
210
- for col in range (len (days )):
211
- for trace in fig .select_traces (col = col + 1 ):
212
- assert days [col ] in trace .hovertemplate
213
-
214
- for row in range (len (times )):
215
- for trace in fig .select_traces (row = 2 - row ):
216
- assert times [row ] in trace .hovertemplate
217
-
218
- for trace in fig .data :
219
- for i , day in enumerate (days ):
220
- if day in trace .name :
221
- assert trace .marker .symbol == symbol_sequence [i ]
222
- for i , time in enumerate (times ):
223
- if time in trace .name :
224
- assert trace .marker .color == color_sequence [i ]
234
+ assert_orderings (days , days , times , times )
235
+
0 commit comments