31
31
*/
32
32
var assert = require ( 'assert' ) ;
33
33
var color_palette = require ( '../lib/palette' ) ;
34
+ var color_convert = require ( '../lib/convert' ) ;
34
35
35
36
/**
36
37
* CONSTANTS
@@ -42,9 +43,20 @@ var navy = {'R':0 , 'G':0 ,'B':128};
42
43
var blue = { 'R' :0 , 'G' :0 , 'B' :255 } ;
43
44
var yellow = { 'R' :255 , 'G' :255 , 'B' :0 } ;
44
45
var gold = { 'R' :255 , 'G' :215 , 'B' :0 } ;
46
+
47
+ var white_lab = color_convert . rgb_to_lab ( white ) ;
48
+ var black_lab = color_convert . rgb_to_lab ( black ) ;
49
+ var navy_lab = color_convert . rgb_to_lab ( navy ) ;
50
+ var blue_lab = color_convert . rgb_to_lab ( blue ) ;
51
+ var yellow_lab = color_convert . rgb_to_lab ( yellow ) ;
52
+ var gold_lab = color_convert . rgb_to_lab ( gold ) ;
53
+
45
54
var colors1 = [ white , black , navy , blue , yellow , gold ]
55
+ var colors1_lab = [ white_lab , black_lab , navy_lab , blue_lab , yellow_lab , gold_lab ]
46
56
var colors2 = [ white , black , blue , gold ]
57
+ var colors2_lab = [ white_lab , black_lab , blue_lab , gold_lab ]
47
58
var colors3 = [ white , black , yellow , blue ]
59
+ var colors3_lab = [ white_lab , black_lab , yellow_lab , blue_lab ]
48
60
49
61
var white_a = { 'R' :255 , 'G' :255 , 'B' :255 , 'A' : 1.0 } ;
50
62
var black_a = { 'R' :0 , 'G' :0 , 'B' :0 , 'A' : 1.0 } ;
@@ -54,6 +66,14 @@ var yellow_a = {'R':255 , 'G':255 ,'B':0, 'A': 1.0};
54
66
var gold_a = { 'R' :255 , 'G' :215 , 'B' :0 , 'A' : 1.0 } ;
55
67
var colors1_a = [ white_a , black_a , navy_a , blue_a , yellow_a , gold_a ]
56
68
69
+ var white_a_lab = color_convert . rgb_to_lab ( white_a ) ;
70
+ var black_a_lab = color_convert . rgb_to_lab ( black_a ) ;
71
+ var navy_a_lab = color_convert . rgb_to_lab ( navy_a ) ;
72
+ var blue_a_lab = color_convert . rgb_to_lab ( blue_a ) ;
73
+ var yellow_a_lab = color_convert . rgb_to_lab ( yellow_a ) ;
74
+ var gold_a_lab = color_convert . rgb_to_lab ( gold_a ) ;
75
+ var colors1_a_lab = [ white_a_lab , black_a_lab , navy_a_lab , blue_a_lab , yellow_a_lab , gold_a_lab ]
76
+
57
77
/**
58
78
* TESTS
59
79
*/
@@ -112,6 +132,89 @@ describe('palette', function(){
112
132
} ) ;
113
133
114
134
} )
135
+
136
+ describe ( '#map_palette_lab()' , function ( ) {
137
+ it ( 'should map all colors to themselves when possible #1' ,
138
+ function ( ) {
139
+ var expected1_1 = { } ;
140
+ expected1_1 [ color_palette . lab_palette_map_key ( white_lab ) ] = white_lab ;
141
+ expected1_1 [ color_palette . lab_palette_map_key ( black_lab ) ] = black_lab ;
142
+ expected1_1 [ color_palette . lab_palette_map_key ( navy_lab ) ] = navy_lab ;
143
+ expected1_1 [ color_palette . lab_palette_map_key ( blue_lab ) ] = blue_lab ;
144
+ expected1_1 [ color_palette . lab_palette_map_key ( yellow_lab ) ] = yellow_lab ;
145
+ expected1_1 [ color_palette . lab_palette_map_key ( gold_lab ) ] = gold_lab ;
146
+ assert . deepEqual ( expected1_1 ,
147
+ color_palette . map_palette_lab ( colors1_lab , colors1_lab ) ) ;
148
+ } ) ;
149
+ it ( 'should map all colors to themselves when possible #2' ,
150
+ function ( ) {
151
+ var expected1_2 = { } ;
152
+ expected1_2 [ color_palette . lab_palette_map_key ( white_a_lab ) ] = white_a_lab ;
153
+ expected1_2 [ color_palette . lab_palette_map_key ( black_a_lab ) ] = black_a_lab ;
154
+ expected1_2 [ color_palette . lab_palette_map_key ( navy_a_lab ) ] = navy_a_lab ;
155
+ expected1_2 [ color_palette . lab_palette_map_key ( blue_a_lab ) ] = blue_a_lab ;
156
+ expected1_2 [ color_palette . lab_palette_map_key ( yellow_a_lab ) ] = yellow_a_lab ;
157
+ expected1_2 [ color_palette . lab_palette_map_key ( gold_a_lab ) ] = gold_a_lab ;
158
+ assert . deepEqual ( expected1_2 ,
159
+ color_palette . map_palette_lab ( colors1_a_lab , colors1_a_lab ) ) ;
160
+ } ) ;
161
+ it ( 'should map navy->blue and yellow->gold when navy and yellow are missing' ,
162
+ function ( ) {
163
+ var expected2 = { } ;
164
+ expected2 [ color_palette . lab_palette_map_key ( white_lab ) ] = white_lab ;
165
+ expected2 [ color_palette . lab_palette_map_key ( black_lab ) ] = black_lab ;
166
+ expected2 [ color_palette . lab_palette_map_key ( navy_lab ) ] = blue_lab ;
167
+ expected2 [ color_palette . lab_palette_map_key ( blue_lab ) ] = blue_lab ;
168
+ expected2 [ color_palette . lab_palette_map_key ( yellow_lab ) ] = gold_lab ;
169
+ expected2 [ color_palette . lab_palette_map_key ( gold_lab ) ] = gold_lab ;
170
+ assert . deepEqual ( expected2 ,
171
+ color_palette . map_palette_lab ( colors1_lab , colors2_lab ) ) ;
172
+ } ) ;
173
+ it ( 'should map white->black & black,navy,blue->yellow & yellow,gold->blue' ,
174
+ function ( ) {
175
+ var expected3 = { } ;
176
+ expected3 [ color_palette . lab_palette_map_key ( white_lab ) ] = black_lab ;
177
+ expected3 [ color_palette . lab_palette_map_key ( black_lab ) ] = yellow_lab ;
178
+ expected3 [ color_palette . lab_palette_map_key ( navy_lab ) ] = yellow_lab ;
179
+ expected3 [ color_palette . lab_palette_map_key ( blue_lab ) ] = yellow_lab ;
180
+ expected3 [ color_palette . lab_palette_map_key ( yellow_lab ) ] = blue_lab ;
181
+ expected3 [ color_palette . lab_palette_map_key ( gold_lab ) ] = blue_lab ;
182
+ assert . deepEqual ( expected3 ,
183
+ color_palette . map_palette_lab ( colors1_lab ,
184
+ colors3_lab ,
185
+ 'furthest' ) ) ;
186
+ } ) ;
187
+
188
+ } )
189
+
190
+ describe ( '#match_palette_lab()' , function ( ) {
191
+ it ( 'should match map_palette results for closest' ,
192
+ function ( ) {
193
+ assert . deepEqual ( color_palette . match_palette_lab ( white_lab , colors1_lab ) , white_lab ) ;
194
+ assert . deepEqual ( color_palette . match_palette_lab ( black_lab , colors1_lab ) , black_lab ) ;
195
+ assert . deepEqual ( color_palette . match_palette_lab ( navy_lab , colors1_lab ) , navy_lab ) ;
196
+ assert . deepEqual ( color_palette . match_palette_lab ( blue_lab , colors1_lab ) , blue_lab ) ;
197
+ assert . deepEqual ( color_palette . match_palette_lab ( yellow_lab , colors1_lab ) , yellow_lab ) ;
198
+ assert . deepEqual ( color_palette . match_palette_lab ( gold_lab , colors1_lab ) , gold_lab ) ;
199
+
200
+ assert . deepEqual ( color_palette . match_palette_lab ( white_lab , colors2_lab ) , white_lab ) ;
201
+ assert . deepEqual ( color_palette . match_palette_lab ( black_lab , colors2_lab ) , black_lab ) ;
202
+ assert . deepEqual ( color_palette . match_palette_lab ( navy_lab , colors2_lab ) , blue_lab ) ;
203
+ assert . deepEqual ( color_palette . match_palette_lab ( blue_lab , colors2_lab ) , blue_lab ) ;
204
+ assert . deepEqual ( color_palette . match_palette_lab ( yellow_lab , colors2_lab ) , gold_lab ) ;
205
+ assert . deepEqual ( color_palette . match_palette_lab ( gold_lab , colors2_lab ) , gold_lab ) ;
206
+ } ) ;
207
+
208
+ it ( 'should match map_palette results for furthest' ,
209
+ function ( ) {
210
+ assert . deepEqual ( color_palette . match_palette_lab ( white_lab , colors3_lab , true ) , black_lab ) ;
211
+ assert . deepEqual ( color_palette . match_palette_lab ( black_lab , colors3_lab , true ) , yellow_lab ) ;
212
+ assert . deepEqual ( color_palette . match_palette_lab ( navy_lab , colors3_lab , true ) , yellow_lab ) ;
213
+ assert . deepEqual ( color_palette . match_palette_lab ( blue_lab , colors3_lab , true ) , yellow_lab ) ;
214
+ assert . deepEqual ( color_palette . match_palette_lab ( yellow_lab , colors3_lab , true ) , blue_lab ) ;
215
+ assert . deepEqual ( color_palette . match_palette_lab ( gold_lab , colors3_lab , true ) , blue_lab ) ;
216
+ } ) ;
217
+ } )
115
218
} ) ;
116
219
117
220
// Local Variables:
0 commit comments