@@ -159,6 +159,27 @@ def test_small_palettes():
159159 palette = LimitedDiscretePalette (100 )
160160 np .testing .assert_equal (palette .palette , Glasbey .palette [:100 ])
161161
162+ def test_large_palettes (self ):
163+ palette = LimitedDiscretePalette (257 )
164+ qcolors = palette .qcolors
165+ qcolors_w_nan = palette .qcolors_w_nan
166+ c256 = qcolors [256 ].getRgb ()
167+
168+ self .assertEqual (len (palette ), 257 )
169+ self .assertEqual (len (palette .palette ), 257 )
170+ self .assertEqual (len (qcolors ), 257 )
171+ self .assertEqual (len (qcolors_w_nan ), 258 )
172+ self .assertEqual ([c .getRgb () for c in qcolors ],
173+ [c .getRgb () for c in qcolors_w_nan [:- 1 ]])
174+ self .assertEqual (palette [256 ].getRgb (), c256 )
175+ np .testing .assert_equal (palette .value_to_color (256 ), c256 [:3 ])
176+ self .assertEqual (palette .value_to_qcolor (256 ).getRgb (), c256 )
177+ np .testing .assert_equal (palette .values_to_colors ([256 ])[0 ], c256 [:3 ])
178+ self .assertEqual (palette .values_to_qcolors ([256 ])[0 ].getRgb (), c256 )
179+
180+ for size in range (1020 , 1030 ):
181+ self .assertEqual (len (LimitedDiscretePalette (size )), size )
182+
162183 @staticmethod
163184 def test_forced_glasbey_palettes ():
164185 palette = LimitedDiscretePalette (5 , force_glasbey = True )
@@ -598,6 +619,10 @@ def test_colors(self):
598619 np .testing .assert_almost_equal (var .colors ,
599620 [palette [1 ], [13 , 14 , 15 ], palette [0 ]])
600621
622+ # Variable with many values
623+ var = DiscreteVariable ("x" , values = tuple (f"v{ i } " for i in range (1020 )))
624+ self .assertEqual (len (var .colors ), 1020 )
625+
601626 def test_colors_fallback_to_palette (self ):
602627 var = DiscreteVariable .make ("a" , values = ("F" , "M" ))
603628 var .palette = Dark2Colors
0 commit comments