timocratic-color 1.4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,421 @@
1
+ #!/usr/bin/env ruby
2
+ #--
3
+ # Color
4
+ # Colour management with Ruby
5
+ # http://rubyforge.org/projects/color
6
+ # Version 1.4.0
7
+ #
8
+ # Licensed under a MIT-style licence. See Licence.txt in the main
9
+ # distribution for full licensing information.
10
+ #
11
+ # Copyright (c) 2005 - 2007 Austin Ziegler and Matt Lyon
12
+ #
13
+ # $Id: test_all.rb 55 2007-02-03 23:29:34Z austin $
14
+ #++
15
+
16
+ $LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib") if __FILE__ == $0
17
+ require 'test/unit'
18
+ require 'color'
19
+ require 'color/palette/adobecolor'
20
+
21
+ module TestColor
22
+ module TestPalette
23
+ class TestAdobeColor < Test::Unit::TestCase
24
+ include Color::Palette
25
+
26
+ # This is based on the Visibone Anglo-Centric Color Code List; this is
27
+ # an Adobe Color swatch version 1 (RGB colours only).
28
+ VISIBONE_V1 = <<-EOS
29
+ AAEA2AAA/wD/AP8AAAAAAMwAzADMAAAAAACZAJkAmQAAAAAAZgBmAGYAAAAA
30
+ ADMAMwAzAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAP8AMwAzAAAAAADMAAAA
31
+ AAAAAAAA/wBmAGYAAAAAAMwAMwAzAAAAAACZAAAAAAAAAAAA/wCZAJkAAAAA
32
+ AMwAZgBmAAAAAACZADMAMwAAAAAAZgAAAAAAAAAAAP8AzADMAAAAAADMAJkA
33
+ mQAAAAAAmQBmAGYAAAAAAGYAMwAzAAAAAAAzAAAAAAAAAAAA/wAzAAAAAAAA
34
+ AP8AZgAzAAAAAADMADMAAAAAAAAA/wCZAGYAAAAAAMwAZgAzAAAAAACZADMA
35
+ AAAAAAAA/wBmAAAAAAAAAP8AmQAzAAAAAADMAGYAAAAAAAAA/wDMAJkAAAAA
36
+ AMwAmQBmAAAAAACZAGYAMwAAAAAAZgAzAAAAAAAAAP8AmQAAAAAAAAD/AMwA
37
+ ZgAAAAAAzACZADMAAAAAAJkAZgAAAAAAAADMAJkAAAAAAAAA/wDMADMAAAAA
38
+ AP8AzAAAAAAAAAD/AP8AAAAAAAAA/wD/ADMAAAAAAMwAzAAAAAAAAAD/AP8A
39
+ ZgAAAAAAzADMADMAAAAAAJkAmQAAAAAAAAD/AP8AmQAAAAAAzADMAGYAAAAA
40
+ AJkAmQAzAAAAAABmAGYAAAAAAAAA/wD/AMwAAAAAAMwAzACZAAAAAACZAJkA
41
+ ZgAAAAAAZgBmADMAAAAAADMAMwAAAAAAAADMAP8AAAAAAAAAzAD/ADMAAAAA
42
+ AJkAzAAAAAAAAADMAP8AZgAAAAAAmQDMADMAAAAAAGYAmQAAAAAAAACZAP8A
43
+ AAAAAAAAmQD/ADMAAAAAAGYAzAAAAAAAAADMAP8AmQAAAAAAmQDMAGYAAAAA
44
+ AGYAmQAzAAAAAAAzAGYAAAAAAAAAZgD/AAAAAAAAAJkA/wBmAAAAAABmAMwA
45
+ MwAAAAAAMwCZAAAAAAAAAGYA/wAzAAAAAAAzAMwAAAAAAAAAMwD/AAAAAAAA
46
+ AAAA/wAAAAAAAAAzAP8AMwAAAAAAAADMAAAAAAAAAGYA/wBmAAAAAAAzAMwA
47
+ MwAAAAAAAACZAAAAAAAAAJkA/wCZAAAAAABmAMwAZgAAAAAAMwCZADMAAAAA
48
+ AAAAZgAAAAAAAADMAP8AzAAAAAAAmQDMAJkAAAAAAGYAmQBmAAAAAAAzAGYA
49
+ MwAAAAAAAAAzAAAAAAAAAAAA/wAzAAAAAAAzAP8AZgAAAAAAAADMADMAAAAA
50
+ AGYA/wCZAAAAAAAzAMwAZgAAAAAAAACZADMAAAAAAAAA/wBmAAAAAAAzAP8A
51
+ mQAAAAAAAADMAGYAAAAAAJkA/wDMAAAAAABmAMwAmQAAAAAAMwCZAGYAAAAA
52
+ AAAAZgAzAAAAAAAAAP8AmQAAAAAAZgD/AMwAAAAAADMAzACZAAAAAAAAAJkA
53
+ ZgAAAAAAMwD/AMwAAAAAAAAAzACZAAAAAAAAAP8AzAAAAAAAAAD/AP8AAAAA
54
+ ADMA/wD/AAAAAAAAAMwAzAAAAAAAZgD/AP8AAAAAADMAzADMAAAAAAAAAJkA
55
+ mQAAAAAAmQD/AP8AAAAAAGYAzADMAAAAAAAzAJkAmQAAAAAAAABmAGYAAAAA
56
+ AMwA/wD/AAAAAACZAMwAzAAAAAAAZgCZAJkAAAAAADMAZgBmAAAAAAAAADMA
57
+ MwAAAAAAAADMAP8AAAAAADMAzAD/AAAAAAAAAJkAzAAAAAAAZgDMAP8AAAAA
58
+ ADMAmQDMAAAAAAAAAGYAmQAAAAAAAACZAP8AAAAAADMAmQD/AAAAAAAAAGYA
59
+ zAAAAAAAmQDMAP8AAAAAAGYAmQDMAAAAAAAzAGYAmQAAAAAAAAAzAGYAAAAA
60
+ AAAAZgD/AAAAAABmAJkA/wAAAAAAMwBmAMwAAAAAAAAAMwCZAAAAAAAzAGYA
61
+ /wAAAAAAAAAzAMwAAAAAAAAAMwD/AAAAAAAAAAAA/wAAAAAAMwAzAP8AAAAA
62
+ AAAAAADMAAAAAABmAGYA/wAAAAAAMwAzAMwAAAAAAAAAAACZAAAAAACZAJkA
63
+ /wAAAAAAZgBmAMwAAAAAADMAMwCZAAAAAAAAAAAAZgAAAAAAzADMAP8AAAAA
64
+ AJkAmQDMAAAAAABmAGYAmQAAAAAAMwAzAGYAAAAAAAAAAAAzAAAAAAAzAAAA
65
+ /wAAAAAAZgAzAP8AAAAAADMAAADMAAAAAACZAGYA/wAAAAAAZgAzAMwAAAAA
66
+ ADMAAACZAAAAAABmAAAA/wAAAAAAmQAzAP8AAAAAAGYAAADMAAAAAADMAJkA
67
+ /wAAAAAAmQBmAMwAAAAAAGYAMwCZAAAAAAAzAAAAZgAAAAAAmQAAAP8AAAAA
68
+ AMwAZgD/AAAAAACZADMAzAAAAAAAZgAAAJkAAAAAAMwAMwD/AAAAAACZAAAA
69
+ zAAAAAAAzAAAAP8AAAAAAP8AAAD/AAAAAAD/ADMA/wAAAAAAzAAAAMwAAAAA
70
+ AP8AZgD/AAAAAADMADMAzAAAAAAAmQAAAJkAAAAAAP8AmQD/AAAAAADMAGYA
71
+ zAAAAAAAmQAzAJkAAAAAAGYAAABmAAAAAAD/AMwA/wAAAAAAzACZAMwAAAAA
72
+ AJkAZgCZAAAAAABmADMAZgAAAAAAMwAAADMAAAAAAP8AAADMAAAAAAD/ADMA
73
+ zAAAAAAAzAAAAJkAAAAAAP8AZgDMAAAAAADMADMAmQAAAAAAmQAAAGYAAAAA
74
+ AP8AAACZAAAAAAD/ADMAmQAAAAAAzAAAAGYAAAAAAP8AmQDMAAAAAADMAGYA
75
+ mQAAAAAAmQAzAGYAAAAAAGYAAAAzAAAAAAD/AAAAZgAAAAAA/wBmAJkAAAAA
76
+ AMwAMwBmAAAAAACZAAAAMwAAAAAA/wAzAGYAAAAAAMwAAAAzAAAAAAD/AAAA
77
+ MwAAAA==
78
+ EOS
79
+
80
+ # This is based on the Visibone Anglo-Centric Color Code List; this is
81
+ # an Adobe Color swatch version 2 (with names).
82
+ VISIBONE_V2 = <<-EOS
83
+ AAIA2AAA/wD/AP8AAAAAAAAGAFcAaABpAHQAZQAAAADMAMwAzAAAAAAAAAoA
84
+ UABhAGwAZQAgAEcAcgBhAHkAAAAAmQCZAJkAAAAAAAALAEwAaQBnAGgAdAAg
85
+ AEcAcgBhAHkAAAAAZgBmAGYAAAAAAAAKAEQAYQByAGsAIABHAHIAYQB5AAAA
86
+ ADMAMwAzAAAAAAAADQBPAGIAcwBjAHUAcgBlACAARwByAGEAeQAAAAAAAAAA
87
+ AAAAAAAAAAYAQgBsAGEAYwBrAAAAAP8AAAAAAAAAAAAABABSAGUAZAAAAAD/
88
+ ADMAMwAAAAAAAA8ATABpAGcAaAB0ACAASABhAHIAZAAgAFIAZQBkAAAAAMwA
89
+ AAAAAAAAAAAADgBEAGEAcgBrACAASABhAHIAZAAgAFIAZQBkAAAAAP8AZgBm
90
+ AAAAAAAAEABMAGkAZwBoAHQAIABGAGEAZABlAGQAIABSAGUAZAAAAADMADMA
91
+ MwAAAAAAABEATQBlAGQAaQB1AG0AIABGAGEAZABlAGQAIABSAGUAZAAAAACZ
92
+ AAAAAAAAAAAAAA8ARABhAHIAawAgAEYAYQBkAGUAZAAgAFIAZQBkAAAAAP8A
93
+ mQCZAAAAAAAADgBQAGEAbABlACAARAB1AGwAbAAgAFIAZQBkAAAAAMwAZgBm
94
+ AAAAAAAADwBMAGkAZwBoAHQAIABEAHUAbABsACAAUgBlAGQAAAAAmQAzADMA
95
+ AAAAAAAOAEQAYQByAGsAIABEAHUAbABsACAAUgBlAGQAAAAAZgAAAAAAAAAA
96
+ AAARAE8AYgBzAGMAdQByAGUAIABEAHUAbABsACAAUgBlAGQAAAAA/wDMAMwA
97
+ AAAAAAAOAFAAYQBsAGUAIABXAGUAYQBrACAAUgBlAGQAAAAAzACZAJkAAAAA
98
+ AAAPAEwAaQBnAGgAdAAgAFcAZQBhAGsAIABSAGUAZAAAAACZAGYAZgAAAAAA
99
+ ABAATQBlAGQAaQB1AG0AIABXAGUAYQBrACAAUgBlAGQAAAAAZgAzADMAAAAA
100
+ AAAOAEQAYQByAGsAIABXAGUAYQBrACAAUgBlAGQAAAAAMwAAAAAAAAAAAAAR
101
+ AE8AYgBzAGMAdQByAGUAIABXAGUAYQBrACAAUgBlAGQAAAAA/wAzAAAAAAAA
102
+ AAAPAFIAZQBkAC0AUgBlAGQALQBPAHIAYQBuAGcAZQAAAAD/AGYAMwAAAAAA
103
+ ABEATABpAGcAaAB0ACAAUgBlAGQALQBPAHIAYQBuAGcAZQAAAADMADMAAAAA
104
+ AAAAABAARABhAHIAawAgAFIAZQBkAC0ATwByAGEAbgBnAGUAAAAA/wCZAGYA
105
+ AAAAAAARAEwAaQBnAGgAdAAgAE8AcgBhAG4AZwBlAC0AUgBlAGQAAAAAzABm
106
+ ADMAAAAAAAASAE0AZQBkAGkAdQBtACAATwByAGEAbgBnAGUALQBSAGUAZAAA
107
+ AACZADMAAAAAAAAAABAARABhAHIAawAgAE8AcgBhAG4AZwBlAC0AUgBlAGQA
108
+ AAAA/wBmAAAAAAAAAAASAE8AcgBhAG4AZwBlAC0ATwByAGEAbgBnAGUALQBS
109
+ AGUAZAAAAAD/AJkAMwAAAAAAABIATABpAGcAaAB0ACAASABhAHIAZAAgAE8A
110
+ cgBhAG4AZwBlAAAAAMwAZgAAAAAAAAAAEQBEAGEAcgBrACAASABhAHIAZAAg
111
+ AE8AcgBhAG4AZwBlAAAAAP8AzACZAAAAAAAAEQBQAGEAbABlACAARAB1AGwA
112
+ bAAgAE8AcgBhAG4AZwBlAAAAAMwAmQBmAAAAAAAAEgBMAGkAZwBoAHQAIABE
113
+ AHUAbABsACAATwByAGEAbgBnAGUAAAAAmQBmADMAAAAAAAARAEQAYQByAGsA
114
+ IABEAHUAbABsACAATwByAGEAbgBnAGUAAAAAZgAzAAAAAAAAAAAUAE8AYgBz
115
+ AGMAdQByAGUAIABEAHUAbABsACAATwByAGEAbgBnAGUAAAAA/wCZAAAAAAAA
116
+ AAAVAE8AcgBhAG4AZwBlAC0ATwByAGEAbgBnAGUALQBZAGUAbABsAG8AdwAA
117
+ AAD/AMwAZgAAAAAAABQATABpAGcAaAB0ACAATwByAGEAbgBnAGUALQBZAGUA
118
+ bABsAG8AdwAAAADMAJkAMwAAAAAAABUATQBlAGQAaQB1AG0AIABPAHIAYQBu
119
+ AGcAZQAtAFkAZQBsAGwAbwB3AAAAAJkAZgAAAAAAAAAAEwBEAGEAcgBrACAA
120
+ TwByAGEAbgBnAGUALQBZAGUAbABsAG8AdwAAAADMAJkAAAAAAAAAABMARABh
121
+ AHIAawAgAFkAZQBsAGwAbwB3AC0ATwByAGEAbgBnAGUAAAAA/wDMADMAAAAA
122
+ AAAUAEwAaQBnAGgAdAAgAFkAZQBsAGwAbwB3AC0ATwByAGEAbgBnAGUAAAAA
123
+ /wDMAAAAAAAAAAAVAFkAZQBsAGwAbwB3AC0AWQBlAGwAbABvAHcALQBPAHIA
124
+ YQBuAGcAZQAAAAD/AP8AAAAAAAAAAAcAWQBlAGwAbABvAHcAAAAA/wD/ADMA
125
+ AAAAAAASAEwAaQBnAGgAdAAgAEgAYQByAGQAIABZAGUAbABsAG8AdwAAAADM
126
+ AMwAAAAAAAAAABEARABhAHIAawAgAEgAYQByAGQAIABZAGUAbABsAG8AdwAA
127
+ AAD/AP8AZgAAAAAAABMATABpAGcAaAB0ACAARgBhAGQAZQBkACAAWQBlAGwA
128
+ bABvAHcAAAAAzADMADMAAAAAAAAUAE0AZQBkAGkAdQBtACAARgBhAGQAZQBk
129
+ ACAAWQBlAGwAbABvAHcAAAAAmQCZAAAAAAAAAAASAEQAYQByAGsAIABGAGEA
130
+ ZABlAGQAIABZAGUAbABsAG8AdwAAAAD/AP8AmQAAAAAAABEAUABhAGwAZQAg
131
+ AEQAdQBsAGwAIABZAGUAbABsAG8AdwAAAADMAMwAZgAAAAAAABIATABpAGcA
132
+ aAB0ACAARAB1AGwAbAAgAFkAZQBsAGwAbwB3AAAAAJkAmQAzAAAAAAAAEQBE
133
+ AGEAcgBrACAARAB1AGwAbAAgAFkAZQBsAGwAbwB3AAAAAGYAZgAAAAAAAAAA
134
+ FABPAGIAcwBjAHUAcgBlACAARAB1AGwAbAAgAFkAZQBsAGwAbwB3AAAAAP8A
135
+ /wDMAAAAAAAAEQBQAGEAbABlACAAVwBlAGEAawAgAFkAZQBsAGwAbwB3AAAA
136
+ AMwAzACZAAAAAAAAEgBMAGkAZwBoAHQAIABXAGUAYQBrACAAWQBlAGwAbABv
137
+ AHcAAAAAmQCZAGYAAAAAAAATAE0AZQBkAGkAdQBtACAAVwBlAGEAawAgAFkA
138
+ ZQBsAGwAbwB3AAAAAGYAZgAzAAAAAAAAEQBEAGEAcgBrACAAVwBlAGEAawAg
139
+ AFkAZQBsAGwAbwB3AAAAADMAMwAAAAAAAAAAFABPAGIAcwBjAHUAcgBlACAA
140
+ VwBlAGEAawAgAFkAZQBsAGwAbwB3AAAAAMwA/wAAAAAAAAAAFQBZAGUAbABs
141
+ AG8AdwAtAFkAZQBsAGwAbwB3AC0AUwBwAHIAaQBuAGcAAAAAzAD/ADMAAAAA
142
+ AAAUAEwAaQBnAGgAdAAgAFkAZQBsAGwAbwB3AC0AUwBwAHIAaQBuAGcAAAAA
143
+ mQDMAAAAAAAAAAATAEQAYQByAGsAIABZAGUAbABsAG8AdwAtAFMAcAByAGkA
144
+ bgBnAAAAAMwA/wBmAAAAAAAAFABMAGkAZwBoAHQAIABTAHAAcgBpAG4AZwAt
145
+ AFkAZQBsAGwAbwB3AAAAAJkAzAAzAAAAAAAAFQBNAGUAZABpAHUAbQAgAFMA
146
+ cAByAGkAbgBnAC0AWQBlAGwAbABvAHcAAAAAZgCZAAAAAAAAAAATAEQAYQBy
147
+ AGsAIABTAHAAcgBpAG4AZwAtAFkAZQBsAGwAbwB3AAAAAJkA/wAAAAAAAAAA
148
+ FQBTAHAAcgBpAG4AZwAtAFMAcAByAGkAbgBnAC0AWQBlAGwAbABvAHcAAAAA
149
+ mQD/ADMAAAAAAAASAEwAaQBnAGgAdAAgAEgAYQByAGQAIABTAHAAcgBpAG4A
150
+ ZwAAAABmAMwAAAAAAAAAABEARABhAHIAawAgAEgAYQByAGQAIABTAHAAcgBp
151
+ AG4AZwAAAADMAP8AmQAAAAAAABEAUABhAGwAZQAgAEQAdQBsAGwAIABTAHAA
152
+ cgBpAG4AZwAAAACZAMwAZgAAAAAAABIATABpAGcAaAB0ACAARAB1AGwAbAAg
153
+ AFMAcAByAGkAbgBnAAAAAGYAmQAzAAAAAAAAEQBEAGEAcgBrACAARAB1AGwA
154
+ bAAgAFMAcAByAGkAbgBnAAAAADMAZgAAAAAAAAAAFABPAGIAcwBjAHUAcgBl
155
+ ACAARAB1AGwAbAAgAFMAcAByAGkAbgBnAAAAAGYA/wAAAAAAAAAAFABTAHAA
156
+ cgBpAG4AZwAtAFMAcAByAGkAbgBnAC0ARwByAGUAZQBuAAAAAJkA/wBmAAAA
157
+ AAAAEwBMAGkAZwBoAHQAIABTAHAAcgBpAG4AZwAtAEcAcgBlAGUAbgAAAABm
158
+ AMwAMwAAAAAAABQATQBlAGQAaQB1AG0AIABTAHAAcgBpAG4AZwAtAEcAcgBl
159
+ AGUAbgAAAAAzAJkAAAAAAAAAABIARABhAHIAawAgAFMAcAByAGkAbgBnAC0A
160
+ RwByAGUAZQBuAAAAAGYA/wAzAAAAAAAAEwBMAGkAZwBoAHQAIABHAHIAZQBl
161
+ AG4ALQBTAHAAcgBpAG4AZwAAAAAzAMwAAAAAAAAAABIARABhAHIAawAgAEcA
162
+ cgBlAGUAbgAtAFMAcAByAGkAbgBnAAAAADMA/wAAAAAAAAAAEwBHAHIAZQBl
163
+ AG4ALQBHAHIAZQBlAG4ALQBTAHAAcgBpAG4AZwAAAAAAAP8AAAAAAAAAAAYA
164
+ RwByAGUAZQBuAAAAADMA/wAzAAAAAAAAEQBMAGkAZwBoAHQAIABIAGEAcgBk
165
+ ACAARwByAGUAZQBuAAAAAAAAzAAAAAAAAAAAEABEAGEAcgBrACAASABhAHIA
166
+ ZAAgAEcAcgBlAGUAbgAAAABmAP8AZgAAAAAAABIATABpAGcAaAB0ACAARgBh
167
+ AGQAZQBkACAARwByAGUAZQBuAAAAADMAzAAzAAAAAAAAEwBNAGUAZABpAHUA
168
+ bQAgAEYAYQBkAGUAZAAgAEcAcgBlAGUAbgAAAAAAAJkAAAAAAAAAABEARABh
169
+ AHIAawAgAEYAYQBkAGUAZAAgAEcAcgBlAGUAbgAAAACZAP8AmQAAAAAAABAA
170
+ UABhAGwAZQAgAEQAdQBsAGwAIABHAHIAZQBlAG4AAAAAZgDMAGYAAAAAAAAR
171
+ AEwAaQBnAGgAdAAgAEQAdQBsAGwAIABHAHIAZQBlAG4AAAAAMwCZADMAAAAA
172
+ AAAQAEQAYQByAGsAIABEAHUAbABsACAARwByAGUAZQBuAAAAAAAAZgAAAAAA
173
+ AAAAEwBPAGIAcwBjAHUAcgBlACAARAB1AGwAbAAgAEcAcgBlAGUAbgAAAADM
174
+ AP8AzAAAAAAAABAAUABhAGwAZQAgAFcAZQBhAGsAIABHAHIAZQBlAG4AAAAA
175
+ mQDMAJkAAAAAAAARAEwAaQBnAGgAdAAgAFcAZQBhAGsAIABHAHIAZQBlAG4A
176
+ AAAAZgCZAGYAAAAAAAASAE0AZQBkAGkAdQBtACAAVwBlAGEAawAgAEcAcgBl
177
+ AGUAbgAAAAAzAGYAMwAAAAAAABAARABhAHIAawAgAFcAZQBhAGsAIABHAHIA
178
+ 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
254
+ ZQB0AAAAAJkAZgD/AAAAAAAAEgBMAGkAZwBoAHQAIABWAGkAbwBsAGUAdAAt
255
+ AEIAbAB1AGUAAAAAZgAzAMwAAAAAAAATAE0AZQBkAGkAdQBtACAAVgBpAG8A
256
+ bABlAHQALQBCAGwAdQBlAAAAADMAAACZAAAAAAAAEQBEAGEAcgBrACAAVgBp
257
+ AG8AbABlAHQALQBCAGwAdQBlAAAAAGYAAAD/AAAAAAAAEwBWAGkAbwBsAGUA
258
+ dAAtAFYAaQBvAGwAZQB0AC0AQgBsAHUAZQAAAACZADMA/wAAAAAAABIATABp
259
+ AGcAaAB0ACAASABhAHIAZAAgAFYAaQBvAGwAZQB0AAAAAGYAAADMAAAAAAAA
260
+ EQBEAGEAcgBrACAASABhAHIAZAAgAFYAaQBvAGwAZQB0AAAAAMwAmQD/AAAA
261
+ AAAAEQBQAGEAbABlACAARAB1AGwAbAAgAFYAaQBvAGwAZQB0AAAAAJkAZgDM
262
+ AAAAAAAAEgBMAGkAZwBoAHQAIABEAHUAbABsACAAVgBpAG8AbABlAHQAAAAA
263
+ ZgAzAJkAAAAAAAARAEQAYQByAGsAIABEAHUAbABsACAAVgBpAG8AbABlAHQA
264
+ AAAAMwAAAGYAAAAAAAAUAE8AYgBzAGMAdQByAGUAIABEAHUAbABsACAAVgBp
265
+ AG8AbABlAHQAAAAAmQAAAP8AAAAAAAAWAFYAaQBvAGwAZQB0AC0AVgBpAG8A
266
+ bABlAHQALQBNAGEAZwBlAG4AdABhAAAAAMwAZgD/AAAAAAAAFQBMAGkAZwBo
267
+ AHQAIABWAGkAbwBsAGUAdAAtAE0AYQBnAGUAbgB0AGEAAAAAmQAzAMwAAAAA
268
+ AAAWAE0AZQBkAGkAdQBtACAAVgBpAG8AbABlAHQALQBNAGEAZwBlAG4AdABh
269
+ AAAAAGYAAACZAAAAAAAAFABEAGEAcgBrACAAVgBpAG8AbABlAHQALQBNAGEA
270
+ ZwBlAG4AdABhAAAAAMwAMwD/AAAAAAAAFQBMAGkAZwBoAHQAIABNAGEAZwBl
271
+ AG4AdABhAC0AVgBpAG8AbABlAHQAAAAAmQAAAMwAAAAAAAAUAEQAYQByAGsA
272
+ IABNAGEAZwBlAG4AdABhAC0AVgBpAG8AbABlAHQAAAAAzAAAAP8AAAAAAAAX
273
+ AE0AYQBnAGUAbgB0AGEALQBNAGEAZwBlAG4AdABhAC0AVgBpAG8AbABlAHQA
274
+ AAAA/wAAAP8AAAAAAAAIAE0AYQBnAGUAbgB0AGEAAAAA/wAzAP8AAAAAAAAT
275
+ AEwAaQBnAGgAdAAgAEgAYQByAGQAIABNAGEAZwBlAG4AdABhAAAAAMwAAADM
276
+ AAAAAAAAEgBEAGEAcgBrACAASABhAHIAZAAgAE0AYQBnAGUAbgB0AGEAAAAA
277
+ /wBmAP8AAAAAAAAUAEwAaQBnAGgAdAAgAEYAYQBkAGUAZAAgAE0AYQBnAGUA
278
+ bgB0AGEAAAAAzAAzAMwAAAAAAAAVAE0AZQBkAGkAdQBtACAARgBhAGQAZQBk
279
+ ACAATQBhAGcAZQBuAHQAYQAAAACZAAAAmQAAAAAAABMARABhAHIAawAgAEYA
280
+ YQBkAGUAZAAgAE0AYQBnAGUAbgB0AGEAAAAA/wCZAP8AAAAAAAASAFAAYQBs
281
+ AGUAIABEAHUAbABsACAATQBhAGcAZQBuAHQAYQAAAADMAGYAzAAAAAAAABMA
282
+ TABpAGcAaAB0ACAARAB1AGwAbAAgAE0AYQBnAGUAbgB0AGEAAAAAmQAzAJkA
283
+ AAAAAAASAEQAYQByAGsAIABEAHUAbABsACAATQBhAGcAZQBuAHQAYQAAAABm
284
+ AAAAZgAAAAAAABUATwBiAHMAYwB1AHIAZQAgAEQAdQBsAGwAIABNAGEAZwBl
285
+ AG4AdABhAAAAAP8AzAD/AAAAAAAAEgBQAGEAbABlACAAVwBlAGEAawAgAE0A
286
+ YQBnAGUAbgB0AGEAAAAAzACZAMwAAAAAAAATAEwAaQBnAGgAdAAgAFcAZQBh
287
+ AGsAIABNAGEAZwBlAG4AdABhAAAAAJkAZgCZAAAAAAAAFABNAGUAZABpAHUA
288
+ bQAgAFcAZQBhAGsAIABNAGEAZwBlAG4AdABhAAAAAGYAMwBmAAAAAAAAEgBE
289
+ AGEAcgBrACAAVwBlAGEAawAgAE0AYQBnAGUAbgB0AGEAAAAAMwAAADMAAAAA
290
+ AAAVAE8AYgBzAGMAdQByAGUAIABXAGUAYQBrACAATQBhAGcAZQBuAHQAYQAA
291
+ AAD/AAAAzAAAAAAAABUATQBhAGcAZQBuAHQAYQAtAE0AYQBnAGUAbgB0AGEA
292
+ LQBQAGkAbgBrAAAAAP8AMwDMAAAAAAAAEwBMAGkAZwBoAHQAIABNAGEAZwBl
293
+ AG4AdABhAC0AUABpAG4AawAAAADMAAAAmQAAAAAAABIARABhAHIAawAgAE0A
294
+ YQBnAGUAbgB0AGEALQBQAGkAbgBrAAAAAP8AZgDMAAAAAAAAEwBMAGkAZwBo
295
+ AHQAIABQAGkAbgBrAC0ATQBhAGcAZQBuAHQAYQAAAADMADMAmQAAAAAAABQA
296
+ TQBlAGQAaQB1AG0AIABQAGkAbgBrAC0ATQBhAGcAZQBuAHQAYQAAAACZAAAA
297
+ ZgAAAAAAABIARABhAHIAawAgAFAAaQBuAGsALQBNAGEAZwBlAG4AdABhAAAA
298
+ AP8AAACZAAAAAAAAEgBQAGkAbgBrAC0AUABpAG4AawAtAE0AYQBnAGUAbgB0
299
+ AGEAAAAA/wAzAJkAAAAAAAAQAEwAaQBnAGgAdAAgAEgAYQByAGQAIABQAGkA
300
+ bgBrAAAAAMwAAABmAAAAAAAADwBEAGEAcgBrACAASABhAHIAZAAgAFAAaQBu
301
+ AGsAAAAA/wCZAMwAAAAAAAAPAFAAYQBsAGUAIABEAHUAbABsACAAUABpAG4A
302
+ awAAAADMAGYAmQAAAAAAABAATABpAGcAaAB0ACAARAB1AGwAbAAgAFAAaQBu
303
+ AGsAAAAAmQAzAGYAAAAAAAAPAEQAYQByAGsAIABEAHUAbABsACAAUABpAG4A
304
+ awAAAABmAAAAMwAAAAAAABIATwBiAHMAYwB1AHIAZQAgAEQAdQBsAGwAIABQ
305
+ AGkAbgBrAAAAAP8AAABmAAAAAAAADgBQAGkAbgBrAC0AUABpAG4AawAtAFIA
306
+ ZQBkAAAAAP8AZgCZAAAAAAAADwBMAGkAZwBoAHQAIABQAGkAbgBrAC0AUgBl
307
+ AGQAAAAAzAAzAGYAAAAAAAAQAE0AZQBkAGkAdQBtACAAUABpAG4AawAtAFIA
308
+ ZQBkAAAAAJkAAAAzAAAAAAAADgBEAGEAcgBrACAAUABpAG4AawAtAFIAZQBk
309
+ AAAAAP8AMwBmAAAAAAAADwBMAGkAZwBoAHQAIABSAGUAZAAtAFAAaQBuAGsA
310
+ AAAAzAAAADMAAAAAAAAOAEQAYQByAGsAIABSAGUAZAAtAFAAaQBuAGsAAAAA
311
+ /wAAADMAAAAAAAANAFIAZQBkAC0AUgBlAGQALQBQAGkAbgBrAAA=
312
+ EOS
313
+
314
+ EXERCISE = <<-EOS
315
+ AAIABwAAHgA8AFoAAAAAAAAEAFIARwBCAAAAAQKPGZn//wAAAAAABABIAFMA
316
+ QgAAAAIMzH//GZn//wAAAAUAQwBNAFkASwAAAAcbWOiQG1gAAAAAAAQATABB
317
+ AEIAAAAIFXwAAAAAAAAAAAAFAEcAcgBhAHkAAAAJCcQNrBGUBdwAAAAGAFcA
318
+ QwBNAFkASwAAAA0JxA2sEZQF3AAAAAsAVQBOAEsATgBPAFcATgAgADEAMwAA
319
+ EOS
320
+
321
+ # http://www.visibone.com/swatches/VisiBone.aco
322
+ # http://www.visibone.com/swatches/VisiBone2.aco
323
+ # http://www.visibone.com/swatches/VisiBone2_km.psppalette
324
+ # http://www.visibone.com/swatches/VisiBone2_km.pal
325
+ # http://www.visibone.com/swatches/VisiBone2_vaccc.ai
326
+ # http://www.visibone.com/swatches/VisiBone.gimp
327
+ # http://www.visibone.com/swatches/VisiBone.act
328
+
329
+ def setup
330
+ @filename = "test#{Process.pid}.aco"
331
+ end
332
+
333
+ def teardown
334
+ require 'fileutils'
335
+ FileUtils.rm_f @filename if File.exist? @filename
336
+ end
337
+
338
+ def test_version1
339
+ v1 = VISIBONE_V1.unpack("m*")[0]
340
+ assert_nothing_raised { @aco = AdobeColor.new(v1) }
341
+ assert_equal(216, @aco.size)
342
+ assert_equal(1, @aco.version)
343
+ assert_equal({:rgb => 216}, @aco.statistics)
344
+ assert_equal(Color::RGB::White, @aco[0])
345
+ assert_equal("#ff0033", @aco[-1].html)
346
+ assert_equal(v1, @aco.to_aco)
347
+ end
348
+
349
+ def test_version2
350
+ v2 = VISIBONE_V2.unpack("m*")[0]
351
+ @aco = AdobeColor.new(v2)
352
+ assert_equal(216, @aco.size)
353
+ assert_equal(2, @aco.version)
354
+ assert_equal({:rgb => 216}, @aco.statistics)
355
+ assert_equal(Color::RGB::White, @aco[0])
356
+ assert_equal(Color::RGB::White,
357
+ @aco["\000W\000h\000i\000t\000e"][0])
358
+ assert_equal("#ff0033", @aco[-1].html)
359
+ assert_equal("#ff0033",
360
+ @aco["\000R\000e\000d\000-\000R\000e\000d\000-\000P\000i\000n\000k"][0].html)
361
+ assert_equal(v2, @aco.to_aco)
362
+ end
363
+
364
+ def test_bogus
365
+ o = VISIBONE_V2.unpack("m*")[0]
366
+ v = o.dup
367
+ v[0, 2] = [ 322 ].pack("n") # break the version
368
+ assert_raises(RuntimeError) { AdobeColor.new(v) }
369
+ v = o.dup
370
+ v[2, 2] = [ 217 ].pack("n") # break the colour count
371
+ assert_raises(IndexError) { @aco = AdobeColor.new(v) }
372
+ v = o.dup
373
+ v[14, 2] = [ 99 ].pack("n") # break the NULL before the name
374
+ assert_raises(IndexError) { @aco = AdobeColor.new(v) }
375
+ v = o.dup
376
+ v[16, 2] = [ 18 ].pack("n") # break the length of the name
377
+ assert_raises(IndexError) { @aco = AdobeColor.new(v) }
378
+ v = o.dup
379
+ v[28, 2] = [ 99 ].pack("n") # break the trailing null of the name
380
+ end
381
+
382
+ def test_exercise
383
+ assert_nothing_raised do
384
+ File.open(@filename, "wb") do |f|
385
+ f.write EXERCISE.unpack("m*")[0]
386
+ end
387
+ end
388
+ assert_nothing_raised { @aco = AdobeColor.from_file(@filename) }
389
+ assert_equal(5, @aco.size)
390
+ assert_equal(7, @aco.instance_variable_get(:@order).size)
391
+ end
392
+
393
+ def test_each
394
+ v1 = VISIBONE_V1.unpack("m*")[0]
395
+ @aco = AdobeColor.new(v1)
396
+ @aco.each { |c| assert_kind_of(Color::RGB, c) }
397
+ end
398
+
399
+ def test_each_name
400
+ v2 = VISIBONE_V2.unpack("m*")[0]
401
+ assert_nothing_raised { @aco = AdobeColor.new(v2) }
402
+ assert_equal(216, @aco.size)
403
+ assert_equal(2, @aco.version)
404
+ @aco.each_name do |n, s|
405
+ assert_equal(0, n[0]) if RUBY_VERSION < "1.9"
406
+ assert_equal(1, s.size)
407
+ assert_kind_of(Color::RGB, s[0])
408
+ end
409
+ end
410
+
411
+ def test_values_at
412
+ v2 = VISIBONE_V2.unpack("m*")[0]
413
+ assert_nothing_raised { @aco = AdobeColor.new(v2) }
414
+ assert_equal(216, @aco.size)
415
+ assert_equal(2, @aco.version)
416
+ assert_equal([Color::RGB::White, Color::RGB.from_html("#ff0033")],
417
+ @aco.values_at(0, -1))
418
+ end
419
+ end
420
+ end
421
+ end
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env ruby
2
+ #--
3
+ # Color
4
+ # Colour management with Ruby
5
+ # http://rubyforge.org/projects/color
6
+ # Version 1.4.0
7
+ #
8
+ # Licensed under a MIT-style licence. See Licence.txt in the main
9
+ # distribution for full licensing information.
10
+ #
11
+ # Copyright (c) 2005 - 2007 Austin Ziegler and Matt Lyon
12
+ #
13
+ # $Id: test_all.rb 55 2007-02-03 23:29:34Z austin $
14
+ #++
15
+
16
+ $LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib") if __FILE__ == $0
17
+
18
+ $stderr.puts "Checking for test cases:"
19
+
20
+ Dir[File.join(File.dirname($0), 'test_*.rb')].each do |testcase|
21
+ next if File.basename(testcase) == File.basename(__FILE__)
22
+ $stderr.puts "\t#{testcase}"
23
+ load testcase
24
+ end
25
+ $stderr.puts " "
@@ -0,0 +1,130 @@
1
+ #!/usr/bin/env ruby
2
+ #--
3
+ # Color
4
+ # Colour management with Ruby
5
+ # http://rubyforge.org/projects/color
6
+ # Version 1.4.0
7
+ #
8
+ # Licensed under a MIT-style licence. See Licence.txt in the main
9
+ # distribution for full licensing information.
10
+ #
11
+ # Copyright (c) 2005 - 2007 Austin Ziegler and Matt Lyon
12
+ #
13
+ # $Id: test_all.rb 55 2007-02-03 23:29:34Z austin $
14
+ #++
15
+
16
+ $LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib") if __FILE__ == $0
17
+ require 'test/unit'
18
+ require 'color'
19
+
20
+ module TestColor
21
+ class TestCMYK < Test::Unit::TestCase
22
+ def setup
23
+ @cmyk = Color::CMYK.new(10, 20, 30, 40)
24
+ end
25
+
26
+ def test_cyan
27
+ assert_in_delta(0.1, @cmyk.c, Color::COLOR_TOLERANCE)
28
+ assert_in_delta(10, @cmyk.cyan, Color::COLOR_TOLERANCE)
29
+ assert_nothing_raised { @cmyk.cyan = 20 }
30
+ assert_in_delta(0.2, @cmyk.c, Color::COLOR_TOLERANCE)
31
+ assert_nothing_raised { @cmyk.c = 2.0 }
32
+ assert_in_delta(100, @cmyk.cyan, Color::COLOR_TOLERANCE)
33
+ assert_nothing_raised { @cmyk.c = -1.0 }
34
+ assert_in_delta(0.0, @cmyk.c, Color::COLOR_TOLERANCE)
35
+ end
36
+
37
+ def test_magenta
38
+ assert_in_delta(0.2, @cmyk.m, Color::COLOR_TOLERANCE)
39
+ assert_in_delta(20, @cmyk.magenta, Color::COLOR_TOLERANCE)
40
+ assert_nothing_raised { @cmyk.magenta = 30 }
41
+ assert_in_delta(0.3, @cmyk.m, Color::COLOR_TOLERANCE)
42
+ assert_nothing_raised { @cmyk.m = 2.0 }
43
+ assert_in_delta(100, @cmyk.magenta, Color::COLOR_TOLERANCE)
44
+ assert_nothing_raised { @cmyk.m = -1.0 }
45
+ assert_in_delta(0.0, @cmyk.m, Color::COLOR_TOLERANCE)
46
+ end
47
+
48
+ def test_yellow
49
+ assert_in_delta(0.3, @cmyk.y, Color::COLOR_TOLERANCE)
50
+ assert_in_delta(30, @cmyk.yellow, Color::COLOR_TOLERANCE)
51
+ assert_nothing_raised { @cmyk.yellow = 20 }
52
+ assert_in_delta(0.2, @cmyk.y, Color::COLOR_TOLERANCE)
53
+ assert_nothing_raised { @cmyk.y = 2.0 }
54
+ assert_in_delta(100, @cmyk.yellow, Color::COLOR_TOLERANCE)
55
+ assert_nothing_raised { @cmyk.y = -1.0 }
56
+ assert_in_delta(0.0, @cmyk.y, Color::COLOR_TOLERANCE)
57
+ end
58
+
59
+ def test_black
60
+ assert_in_delta(0.4, @cmyk.k, Color::COLOR_TOLERANCE)
61
+ assert_in_delta(40, @cmyk.black, Color::COLOR_TOLERANCE)
62
+ assert_nothing_raised { @cmyk.black = 20 }
63
+ assert_in_delta(0.2, @cmyk.k, Color::COLOR_TOLERANCE)
64
+ assert_nothing_raised { @cmyk.k = 2.0 }
65
+ assert_in_delta(100, @cmyk.black, Color::COLOR_TOLERANCE)
66
+ assert_nothing_raised { @cmyk.k = -1.0 }
67
+ assert_in_delta(0.0, @cmyk.k, Color::COLOR_TOLERANCE)
68
+ end
69
+
70
+ def test_pdf
71
+ assert_equal("0.100 0.200 0.300 0.400 k", @cmyk.pdf_fill)
72
+ assert_equal("0.100 0.200 0.300 0.400 K", @cmyk.pdf_stroke)
73
+ end
74
+
75
+ def test_to_cmyk
76
+ assert(@cmyk.to_cmyk == @cmyk)
77
+ end
78
+
79
+ def test_to_grayscale
80
+ gs = nil
81
+ assert_nothing_raised { gs = @cmyk.to_grayscale }
82
+ assert_kind_of(Color::GrayScale, gs)
83
+ assert_in_delta(0.4185, gs.g, Color::COLOR_TOLERANCE)
84
+ assert_kind_of(Color::GreyScale, @cmyk.to_greyscale)
85
+ end
86
+
87
+ def test_to_hsl
88
+ hsl = nil
89
+ assert_nothing_raised { hsl = @cmyk.to_hsl }
90
+ assert_kind_of(Color::HSL, hsl)
91
+ assert_in_delta(0.48, hsl.l, Color::COLOR_TOLERANCE)
92
+ assert_in_delta(0.125, hsl.s, Color::COLOR_TOLERANCE)
93
+ assert_in_delta(0.08333, hsl.h, Color::COLOR_TOLERANCE)
94
+ assert_equal("hsl(30.00, 12.50%, 48.00%)", @cmyk.css_hsl)
95
+ assert_equal("hsla(30.00, 12.50%, 48.00%, 1.00)", @cmyk.css_hsla)
96
+ end
97
+
98
+ def test_to_rgb
99
+ rgb = nil
100
+ assert_nothing_raised { rgb = @cmyk.to_rgb(true) }
101
+ assert_kind_of(Color::RGB, rgb)
102
+ assert_in_delta(0.5, rgb.r, Color::COLOR_TOLERANCE)
103
+ assert_in_delta(0.4, rgb.g, Color::COLOR_TOLERANCE)
104
+ assert_in_delta(0.3, rgb.b, Color::COLOR_TOLERANCE)
105
+
106
+ assert_nothing_raised { rgb = @cmyk.to_rgb }
107
+ assert_kind_of(Color::RGB, rgb)
108
+ assert_in_delta(0.54, rgb.r, Color::COLOR_TOLERANCE)
109
+ assert_in_delta(0.48, rgb.g, Color::COLOR_TOLERANCE)
110
+ assert_in_delta(0.42, rgb.b, Color::COLOR_TOLERANCE)
111
+
112
+ assert_equal("#8a7a6b", @cmyk.html)
113
+ assert_equal("rgb(54.00%, 48.00%, 42.00%)", @cmyk.css_rgb)
114
+ assert_equal("rgba(54.00%, 48.00%, 42.00%, 1.00)", @cmyk.css_rgba)
115
+ end
116
+
117
+ def test_inspect
118
+ assert_equal("CMYK [10.00%, 20.00%, 30.00%, 40.00%]", @cmyk.inspect)
119
+ end
120
+
121
+ def test_to_yiq
122
+ yiq = nil
123
+ assert_nothing_raised { yiq = @cmyk.to_yiq }
124
+ assert_kind_of(Color::YIQ, yiq)
125
+ assert_in_delta(0.4911, yiq.y, Color::COLOR_TOLERANCE)
126
+ assert_in_delta(0.05502, yiq.i, Color::COLOR_TOLERANCE)
127
+ assert_in_delta(0.0, yiq.q, Color::COLOR_TOLERANCE)
128
+ end
129
+ end
130
+ end