Coverage for plotting/tests/test_temperature.py: 100%
65 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.temperature` module."""
3from __future__ import annotations
5import pytest
6from matplotlib.axes import Axes
7from matplotlib.figure import Figure
9from colour.plotting import (
10 plot_planckian_locus_in_chromaticity_diagram_CIE1931,
11 plot_planckian_locus_in_chromaticity_diagram_CIE1960UCS,
12)
13from colour.plotting.temperature import (
14 lines_daylight_locus,
15 lines_planckian_locus,
16 plot_daylight_locus,
17 plot_planckian_locus,
18 plot_planckian_locus_in_chromaticity_diagram,
19)
21__author__ = "Colour Developers"
22__copyright__ = "Copyright 2013 Colour Developers"
23__license__ = "BSD-3-Clause - https://opensource.org/licenses/BSD-3-Clause"
24__maintainer__ = "Colour Developers"
25__email__ = "colour-developers@colour-science.org"
26__status__ = "Production"
28__all__ = [
29 "TestLinesPlanckianLocus",
30 "TestPlotDaylightLocus",
31 "TestLinesPlanckianLocus",
32 "TestPlotPlanckianLocus",
33 "TestPlotPlanckianLocusInChromaticityDiagram",
34 "TestPlotPlanckianLocusInChromaticityDiagramCIE1931",
35 "TestPlotPlanckianLocusInChromaticityDiagramCIE1960UCS",
36]
39class TestLinesDaylightLocus:
40 """
41 Define :func:`colour.plotting.diagrams.lines_daylight_locus` definition
42 unit tests methods.
43 """
45 def test_lines_daylight_locus(self) -> None:
46 """
47 Test :func:`colour.plotting.diagrams.lines_daylight_locus` definition.
48 """
50 assert len(lines_daylight_locus()) == 1
53class TestPlotDaylightLocus:
54 """
55 Define :func:`colour.plotting.temperature.plot_daylight_locus` definition
56 unit tests methods.
57 """
59 def test_plot_daylight_locus(self) -> None:
60 """
61 Test :func:`colour.plotting.temperature.plot_daylight_locus`
62 definition.
63 """
65 figure, axes = plot_daylight_locus()
67 assert isinstance(figure, Figure)
68 assert isinstance(axes, Axes)
70 pytest.raises(ValueError, lambda: plot_daylight_locus(method="Undefined"))
72 figure, axes = plot_daylight_locus(method="CIE 1976 UCS")
74 assert isinstance(figure, Figure)
75 assert isinstance(axes, Axes)
77 figure, axes = plot_daylight_locus(planckian_locus_colours="RGB")
79 assert isinstance(figure, Figure)
80 assert isinstance(axes, Axes)
83class TestLinesPlanckianLocus:
84 """
85 Define :func:`colour.plotting.diagrams.lines_planckian_locus` definition
86 unit tests methods.
87 """
89 def test_lines_planckian_locus(self) -> None:
90 """
91 Test :func:`colour.plotting.diagrams.lines_planckian_locus` definition.
92 """
94 assert len(lines_planckian_locus()) == 2
97class TestPlotPlanckianLocus:
98 """
99 Define :func:`colour.plotting.temperature.plot_planckian_locus` definition
100 unit tests methods.
101 """
103 def test_plot_planckian_locus(self) -> None:
104 """
105 Test :func:`colour.plotting.temperature.plot_planckian_locus`
106 definition.
107 """
109 figure, axes = plot_planckian_locus()
111 assert isinstance(figure, Figure)
112 assert isinstance(axes, Axes)
114 pytest.raises(ValueError, lambda: plot_planckian_locus(method="Undefined"))
116 figure, axes = plot_planckian_locus(method="CIE 1976 UCS")
118 assert isinstance(figure, Figure)
119 assert isinstance(axes, Axes)
121 figure, axes = plot_planckian_locus(planckian_locus_colours="RGB")
123 assert isinstance(figure, Figure)
124 assert isinstance(axes, Axes)
126 figure, axes = plot_planckian_locus(planckian_locus_labels=[5500, 6500])
128 assert isinstance(figure, Figure)
129 assert isinstance(axes, Axes)
132class TestPlotPlanckianLocusInChromaticityDiagram:
133 """
134 Define :func:`colour.plotting.temperature.\
135plot_planckian_locus_in_chromaticity_diagram` definition unit tests methods.
136 """
138 def test_plot_planckian_locus_in_chromaticity_diagram(self) -> None:
139 """
140 Test :func:`colour.plotting.temperature.\
141plot_planckian_locus_in_chromaticity_diagram` definition.
142 """
144 figure, axes = plot_planckian_locus_in_chromaticity_diagram(
145 ["A", "B", "C"],
146 annotate_kwargs={"arrowprops": {"width": 10}},
147 plot_kwargs={
148 "markersize": 15,
149 },
150 )
152 assert isinstance(figure, Figure)
153 assert isinstance(axes, Axes)
155 figure, axes = plot_planckian_locus_in_chromaticity_diagram(
156 ["A", "B", "C"],
157 annotate_kwargs=[{"arrowprops": {"width": 10}}] * 3,
158 plot_kwargs=[
159 {
160 "markersize": 15,
161 }
162 ]
163 * 3,
164 )
166 assert isinstance(figure, Figure)
167 assert isinstance(axes, Axes)
169 pytest.raises(
170 ValueError,
171 lambda: plot_planckian_locus_in_chromaticity_diagram(
172 ["A", "B", "C"],
173 chromaticity_diagram_callable=lambda **x: x,
174 planckian_locus_callable=lambda **x: x,
175 method="Undefined",
176 ),
177 )
180class TestPlotPlanckianLocusInChromaticityDiagramCIE1931:
181 """
182 Define :func:`colour.plotting.temperature.\
183plot_planckian_locus_in_chromaticity_diagram_CIE1931` definition unit tests
184 methods.
185 """
187 def test_plot_planckian_locus_in_chromaticity_diagram_CIE1931(self) -> None:
188 """
189 Test :func:`colour.plotting.temperature.\
190plot_planckian_locus_in_chromaticity_diagram_CIE1931` definition.
191 """
193 figure, axes = plot_planckian_locus_in_chromaticity_diagram_CIE1931(
194 ["A", "B", "C"]
195 )
197 assert isinstance(figure, Figure)
198 assert isinstance(axes, Axes)
201class TestPlotPlanckianLocusInChromaticityDiagramCIE1960UCS:
202 """
203 Define :func:`colour.plotting.temperature.\
204plot_planckian_locus_in_chromaticity_diagram_CIE1960UCS` definition unit tests
205 methods.
206 """
208 def test_plot_planckian_locus_in_chromaticity_diagram_CIE1960UCS(self) -> None:
209 """
210 Test :func:`colour.plotting.temperature.\
211plot_planckian_locus_in_chromaticity_diagram_CIE1960UCS` definition.
212 """
214 figure, axes = plot_planckian_locus_in_chromaticity_diagram_CIE1960UCS(
215 ["A", "B", "C"]
216 )
218 assert isinstance(figure, Figure)
219 assert isinstance(axes, Axes)