Coverage for plotting/tests/test_colorimetry.py: 100%
86 statements
« prev ^ index » next coverage.py v7.11.0, created at 2025-11-16 22:49 +1300
« prev ^ index » next coverage.py v7.11.0, created at 2025-11-16 22:49 +1300
1"""Define the unit tests for the :mod:`colour.plotting.colorimetry` module."""
3from __future__ import annotations
5from matplotlib.axes import Axes
6from matplotlib.figure import Figure
8from colour.colorimetry import SpectralDistribution
9from colour.plotting import (
10 plot_blackbody_colours,
11 plot_blackbody_spectral_radiance,
12 plot_multi_cmfs,
13 plot_multi_illuminant_sds,
14 plot_multi_lightness_functions,
15 plot_multi_luminance_functions,
16 plot_multi_sds,
17 plot_single_cmfs,
18 plot_single_illuminant_sd,
19 plot_single_lightness_function,
20 plot_single_luminance_function,
21 plot_single_sd,
22 plot_visible_spectrum,
23)
25__author__ = "Colour Developers"
26__copyright__ = "Copyright 2013 Colour Developers"
27__license__ = "BSD-3-Clause - https://opensource.org/licenses/BSD-3-Clause"
28__maintainer__ = "Colour Developers"
29__email__ = "colour-developers@colour-science.org"
30__status__ = "Production"
32__all__ = [
33 "TestPlotSingleSd",
34 "TestPlotMultiSds",
35 "TestPlotSingleCmfs",
36 "TestPlotMultiCmfs",
37 "TestPlotSingleIlluminantSd",
38 "TestPlotMultiIlluminantSds",
39 "TestPlotVisibleSpectrum",
40 "TestPlotSingleLightnessFunction",
41 "TestPlotMultiLightnessFunctions",
42 "TestPlotSingleLuminanceFunction",
43 "TestPlotMultiLuminanceFunctions",
44 "TestPlotBlackbodySpectralRadiance",
45 "TestPlotBlackbodyColours",
46]
49class TestPlotSingleSd:
50 """
51 Define :func:`colour.plotting.colorimetry.plot_single_sd` definition unit
52 tests methods.
53 """
55 def test_plot_single_sd(self) -> None:
56 """Test :func:`colour.plotting.colorimetry.plot_single_sd` definition."""
58 sd = SpectralDistribution(
59 {
60 500: 0.004900,
61 510: 0.009300,
62 520: 0.063270,
63 530: 0.165500,
64 540: 0.290400,
65 550: 0.433450,
66 560: 0.594500,
67 },
68 name="Custom 1",
69 )
71 figure, axes = plot_single_sd(
72 sd,
73 out_of_gamut_clipping=False,
74 modulate_colours_with_sd_amplitude=True,
75 equalize_sd_amplitude=True,
76 )
78 assert isinstance(figure, Figure)
79 assert isinstance(axes, Axes)
82class TestPlotMultiSds:
83 """
84 Define :func:`colour.plotting.colorimetry.plot_multi_sds` definition unit
85 tests methods.
86 """
88 def test_plot_multi_sds(self) -> None:
89 """Test :func:`colour.plotting.colorimetry.plot_multi_sds` definition."""
91 sd_1 = SpectralDistribution(
92 {
93 500: 0.004900,
94 510: 0.009300,
95 520: 0.063270,
96 530: 0.165500,
97 540: 0.290400,
98 550: 0.433450,
99 560: 0.594500,
100 },
101 name="Custom 1",
102 )
103 sd_2 = SpectralDistribution(
104 {
105 500: 0.323000,
106 510: 0.503000,
107 520: 0.710000,
108 530: 0.862000,
109 540: 0.954000,
110 550: 0.994950,
111 560: 0.995000,
112 },
113 name="Custom 2",
114 )
116 figure, axes = plot_multi_sds(
117 [sd_1, sd_2],
118 plot_kwargs={"use_sd_colours": True, "normalise_sd_colours": True},
119 )
121 assert isinstance(figure, Figure)
122 assert isinstance(axes, Axes)
124 figure, axes = plot_multi_sds(
125 [sd_1, sd_2],
126 plot_kwargs=[{"use_sd_colours": True, "normalise_sd_colours": True}] * 2,
127 )
129 assert isinstance(figure, Figure)
130 assert isinstance(axes, Axes)
133class TestPlotSingleCmfs:
134 """
135 Define :func:`colour.plotting.colorimetry.plot_single_cmfs` definition
136 unit tests methods.
137 """
139 def test_plot_single_cmfs(self) -> None:
140 """Test :func:`colour.plotting.colorimetry.plot_single_cmfs` definition."""
142 figure, axes = plot_single_cmfs()
144 assert isinstance(figure, Figure)
145 assert isinstance(axes, Axes)
148class TestPlotMultiCmfs:
149 """
150 Define :func:`colour.plotting.colorimetry.plot_multi_cmfs` definition unit
151 tests methods.
152 """
154 def test_plot_multi_cmfs(self) -> None:
155 """Test :func:`colour.plotting.colorimetry.plot_multi_cmfs` definition."""
157 figure, axes = plot_multi_cmfs(
158 [
159 "CIE 1931 2 Degree Standard Observer",
160 "CIE 1964 10 Degree Standard Observer",
161 ]
162 )
164 assert isinstance(figure, Figure)
165 assert isinstance(axes, Axes)
168class TestPlotSingleIlluminantSd:
169 """
170 Define :func:`colour.plotting.colorimetry.plot_single_illuminant_sd`
171 definition unit tests methods.
172 """
174 def test_plot_single_illuminant_sd(self) -> None:
175 """
176 Test :func:`colour.plotting.colorimetry.plot_single_illuminant_sd`
177 definition.
178 """
180 figure, axes = plot_single_illuminant_sd("A")
182 assert isinstance(figure, Figure)
183 assert isinstance(axes, Axes)
186class TestPlotMultiIlluminantSds:
187 """
188 Define :func:`colour.plotting.colorimetry.plot_multi_illuminant_sds`
189 definition unit tests methods.
190 """
192 def test_plot_multi_illuminant_sds(self) -> None:
193 """
194 Test :func:`colour.plotting.colorimetry.plot_multi_illuminant_sds`
195 definition.
196 """
198 figure, axes = plot_multi_illuminant_sds(["A", "B", "C"])
200 assert isinstance(figure, Figure)
201 assert isinstance(axes, Axes)
203 figure, axes = plot_multi_illuminant_sds(
204 ["A", "B", "C"],
205 plot_kwargs=[{"use_sd_colours": True, "normalise_sd_colours": True}] * 3,
206 )
208 assert isinstance(figure, Figure)
209 assert isinstance(axes, Axes)
212class TestPlotVisibleSpectrum:
213 """
214 Define :func:`colour.plotting.colorimetry.plot_visible_spectrum`
215 definition unit tests methods.
216 """
218 def test_plot_visible_spectrum(self) -> None:
219 """
220 Test :func:`colour.plotting.colorimetry.plot_visible_spectrum`
221 definition.
222 """
224 figure, axes = plot_visible_spectrum()
226 assert isinstance(figure, Figure)
227 assert isinstance(axes, Axes)
230class TestPlotSingleLightnessFunction:
231 """
232 Define :func:`colour.plotting.colorimetry.plot_single_lightness_function`
233 definition unit tests methods.
234 """
236 def test_plot_single_lightness_function(self) -> None:
237 """
238 Test :func:`colour.plotting.colorimetry.\
239plot_single_lightness_function` definition.
240 """
242 figure, axes = plot_single_lightness_function("CIE 1976")
244 assert isinstance(figure, Figure)
245 assert isinstance(axes, Axes)
248class TestPlotMultiLightnessFunctions:
249 """
250 Define :func:`colour.plotting.colorimetry.plot_multi_lightness_functions`
251 definition unit tests methods.
252 """
254 def test_plot_multi_lightness_functions(self) -> None:
255 """
256 Test :func:`colour.plotting.colorimetry.\
257plot_multi_lightness_functions` definition.
258 """
260 figure, axes = plot_multi_lightness_functions(["CIE 1976", "Wyszecki 1963"])
262 assert isinstance(figure, Figure)
263 assert isinstance(axes, Axes)
266class TestPlotSingleLuminanceFunction:
267 """
268 Define :func:`colour.plotting.colorimetry.plot_single_luminance_function`
269 definition unit tests methods.
270 """
272 def test_plot_single_luminance_function(self) -> None:
273 """
274 Test :func:`colour.plotting.colorimetry.\
275plot_single_luminance_function` definition.
276 """
278 figure, axes = plot_single_luminance_function("CIE 1976")
280 assert isinstance(figure, Figure)
281 assert isinstance(axes, Axes)
284class TestPlotMultiLuminanceFunctions:
285 """
286 Define :func:`colour.plotting.colorimetry.plot_multi_luminance_functions`
287 definition unit tests methods.
288 """
290 def test_plot_multi_luminance_functions(self) -> None:
291 """
292 Test :func:`colour.plotting.colorimetry.\
293plot_multi_luminance_functions` definition.
294 """
296 figure, axes = plot_multi_luminance_functions(["CIE 1976", "Newhall 1943"])
298 assert isinstance(figure, Figure)
299 assert isinstance(axes, Axes)
302class TestPlotBlackbodySpectralRadiance:
303 """
304 Define :func:`colour.plotting.colorimetry.\
305plot_blackbody_spectral_radiance` definition unit tests methods.
306 """
308 def test_plot_blackbody_spectral_radiance(self) -> None:
309 """
310 Test :func:`colour.plotting.colorimetry.\
311plot_blackbody_spectral_radiance` definition.
312 """
314 figure, axes = plot_blackbody_spectral_radiance()
316 assert isinstance(figure, Figure)
317 assert isinstance(axes, Axes)
320class TestPlotBlackbodyColours:
321 """
322 Define :func:`colour.plotting.colorimetry.plot_blackbody_colours`
323 definition unit tests methods.
324 """
326 def test_plot_blackbody_colours(self) -> None:
327 """
328 Test :func:`colour.plotting.colorimetry.plot_blackbody_colours`
329 definition.
330 """
332 figure, axes = plot_blackbody_colours()
334 assert isinstance(figure, Figure)
335 assert isinstance(axes, Axes)