22import pytest
33import numpy as np
44import matplotlib .colors as mcolors
5-
5+ import ultraplot as uplt
66from ultraplot import colors as pcolors
77from ultraplot import config
88
@@ -22,24 +22,31 @@ def setup_teardown():
2222
2323def test_lazy_loading_builtin ():
2424 """
25- Test that built-in colormaps are lazy-loaded.
25+ Test that built-in colormaps are lazy-loaded and translated correctly .
2626 """
27- pcolors ._cmap_database = pcolors ._init_cmap_database () # ensure pristine state
28- # Before access, it should be a matplotlib colormap
29- cmap_raw = pcolors ._cmap_database ._cmaps ["viridis" ]
30- assert not isinstance (
31- cmap_raw , (pcolors .ContinuousColormap , pcolors .DiscreteColormap )
32- )
33-
34- # After access, it should be an ultraplot colormap
35- cmap_get = pcolors ._cmap_database .get_cmap ("viridis" )
36- print (type (cmap_get )) # is continuous
37- assert isinstance (cmap_get , pcolors .ContinuousColormap )
38-
39- # The internal representation should also be updated
40- cmap_raw_after = pcolors ._cmap_database ._cmaps ["viridis" ]
41- print (type (cmap_raw_after )) # is continuous
42- assert isinstance (cmap_raw_after , pcolors .DiscreteColormap )
27+ # Test that ListedColormap with many colors becomes ContinuousColormap
28+ original_thresh = config .rc ["cmap.listedthresh" ]
29+ try :
30+ config .rc ["cmap.listedthresh" ] = 128
31+ pcolors ._cmap_database = pcolors ._init_cmap_database () # ensure pristine state
32+ cmap_raw = pcolors ._cmap_database ._cmaps ["viridis" ]
33+ assert not isinstance (
34+ cmap_raw , (pcolors .ContinuousColormap , pcolors .DiscreteColormap )
35+ )
36+
37+ cmap_get = pcolors ._cmap_database .get_cmap ("viridis" )
38+ assert isinstance (cmap_get , pcolors .ContinuousColormap )
39+
40+ cmap_raw_after = pcolors ._cmap_database ._cmaps ["viridis" ]
41+ assert isinstance (cmap_raw_after , pcolors .ContinuousColormap )
42+
43+ # Test that ListedColormap with few colors becomes DiscreteColormap
44+ config .rc ["cmap.listedthresh" ] = 512
45+ pcolors ._cmap_database = pcolors ._init_cmap_database ()
46+ cmap_get = pcolors ._cmap_database .get_cmap ("viridis" )
47+ assert isinstance (cmap_get , pcolors .DiscreteColormap )
48+ finally :
49+ config .rc ["cmap.listedthresh" ] = original_thresh
4350
4451
4552def test_case_insensitivity ():
0 commit comments