1#-----------------------------------------------------------------------------
2# Copyright (c) 2012 - 2021, Anaconda, Inc., and Bokeh Contributors.
3# All rights reserved.
4#
5# The full license is in the file LICENSE.txt, distributed with this software.
6#-----------------------------------------------------------------------------
7
8#-----------------------------------------------------------------------------
9# Boilerplate
10#-----------------------------------------------------------------------------
11import pytest ; pytest
12
13#-----------------------------------------------------------------------------
14# Imports
15#-----------------------------------------------------------------------------
16
17# Module under test
18import bokeh.colors.groups as bcg # isort:skip
19
20#-----------------------------------------------------------------------------
21# Setup
22#-----------------------------------------------------------------------------
23
24_pink = (
25    'Pink',
26    'LightPink',
27    'HotPink',
28    'DeepPink',
29    'PaleVioletRed',
30    'MediumVioletRed',
31)
32
33_red = (
34    'LightSalmon',
35    'Salmon',
36    'DarkSalmon',
37    'LightCoral',
38    'IndianRed',
39    'Crimson',
40    'FireBrick',
41    'DarkRed',
42    'Red',
43)
44
45_orange = (
46    'OrangeRed',
47    'Tomato',
48    'Coral',
49    'DarkOrange',
50    'Orange',
51)
52
53_yellow = (
54    'Yellow',
55    'LightYellow',
56    'LemonChiffon',
57    'LightGoldenrodYellow',
58    'PapayaWhip',
59    'Moccasin',
60    'PeachPuff',
61    'PaleGoldenrod',
62    'Khaki',
63    'DarkKhaki',
64    'Gold',
65)
66
67_brown = (
68    'Cornsilk',
69    'BlanchedAlmond',
70    'Bisque',
71    'NavajoWhite',
72    'Wheat',
73    'BurlyWood',
74    'Tan',
75    'RosyBrown',
76    'SandyBrown',
77    'Goldenrod',
78    'DarkGoldenrod',
79    'Peru',
80    'Chocolate',
81    'SaddleBrown',
82    'Sienna',
83    'Brown',
84    'Maroon',
85)
86
87_green = (
88    'DarkOliveGreen',
89    'Olive',
90    'OliveDrab',
91    'YellowGreen',
92    'LimeGreen',
93    'Lime',
94    'LawnGreen',
95    'Chartreuse',
96    'GreenYellow',
97    'SpringGreen',
98    'MediumSpringGreen',
99    'LightGreen',
100    'PaleGreen',
101    'DarkSeaGreen',
102    'MediumSeaGreen',
103    'SeaGreen',
104    'ForestGreen',
105    'Green',
106    'DarkGreen',
107)
108
109_cyan  = (
110    'MediumAquamarine',
111    'Aqua',
112    'Cyan',
113    'LightCyan',
114    'PaleTurquoise',
115    'Aquamarine',
116    'Turquoise',
117    'MediumTurquoise',
118    'DarkTurquoise',
119    'LightSeaGreen',
120    'CadetBlue',
121    'DarkCyan',
122    'Teal',
123)
124
125_blue  = (
126    'LightSteelBlue',
127    'PowderBlue',
128    'LightBlue',
129    'SkyBlue',
130    'LightSkyBlue',
131    'DeepSkyBlue',
132    'DodgerBlue',
133    'CornflowerBlue',
134    'SteelBlue',
135    'RoyalBlue',
136    'Blue',
137    'MediumBlue',
138    'DarkBlue',
139    'Navy',
140    'MidnightBlue',
141)
142
143_purple = (
144    'Lavender',
145    'Thistle',
146    'Plum',
147    'Violet',
148    'Orchid',
149    'Fuchsia',
150    'Magenta',
151    'MediumOrchid',
152    'MediumPurple',
153    'BlueViolet',
154    'DarkViolet',
155    'DarkOrchid',
156    'DarkMagenta',
157    'Purple',
158    'Indigo',
159    'DarkSlateBlue',
160    'SlateBlue',
161    'MediumSlateBlue',
162)
163
164_white = (
165    'White',
166    'Snow',
167    'Honeydew',
168    'MintCream',
169    'Azure',
170    'AliceBlue',
171    'GhostWhite',
172    'WhiteSmoke',
173    'Seashell',
174    'Beige',
175    'OldLace',
176    'FloralWhite',
177    'Ivory',
178    'AntiqueWhite',
179    'Linen',
180    'LavenderBlush',
181    'MistyRose',
182)
183
184_black = (
185    'Gainsboro',
186    'LightGray',
187    'Silver',
188    'DarkGray',
189    'Gray',
190    'DimGray',
191    'LightSlateGray',
192    'SlateGray',
193    'DarkSlateGray',
194    'Black',
195)
196
197#-----------------------------------------------------------------------------
198# General API
199#-----------------------------------------------------------------------------
200
201def test__all__() -> None:
202    assert bcg.__all__ == ('black', 'blue', 'brown', 'cyan', 'green', 'orange', 'pink', 'purple', 'red', 'white', 'yellow')
203
204@pytest.mark.parametrize('group', bcg.__all__)
205def test_color(group) -> None:
206    assert group in bcg.__all__
207    g = getattr(bcg, group)
208    ref = globals().get("_"+group)
209    assert len(g) == len(ref)
210    for x in ref:
211        assert getattr(g, x, None) is not None
212
213#-----------------------------------------------------------------------------
214# Dev API
215#-----------------------------------------------------------------------------
216
217#-----------------------------------------------------------------------------
218# Private API
219#-----------------------------------------------------------------------------
220
221#-----------------------------------------------------------------------------
222# Code
223#-----------------------------------------------------------------------------
224