Skip to content

Commit b187ee4

Browse files
committed
play with listed thresh
1 parent 9c7027d commit b187ee4

File tree

1 file changed

+25
-18
lines changed

1 file changed

+25
-18
lines changed

ultraplot/tests/test_colors.py

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import pytest
33
import numpy as np
44
import matplotlib.colors as mcolors
5-
5+
import ultraplot as uplt
66
from ultraplot import colors as pcolors
77
from ultraplot import config
88

@@ -22,24 +22,31 @@ def setup_teardown():
2222

2323
def 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

4552
def test_case_insensitivity():

0 commit comments

Comments
 (0)