spectrum 0.0.1

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,23 @@
1
+ #!/usr/bin/env ruby
2
+ #--
3
+ # Color
4
+ # Colour management with Ruby
5
+ # http://rubyforge.org/projects/color
6
+ # Version 1.5.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 - 2010 Austin Ziegler and Matt Lyon
12
+ #++
13
+
14
+ $LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib") if __FILE__ == $0
15
+
16
+ $stderr.puts "Checking for test cases:"
17
+
18
+ Dir[File.join(File.dirname($0), 'test_*.rb')].each do |testcase|
19
+ next if File.basename(testcase) == File.basename(__FILE__)
20
+ $stderr.puts "\t#{testcase}"
21
+ load testcase
22
+ end
23
+ $stderr.puts " "
@@ -0,0 +1,128 @@
1
+ #!/usr/bin/env ruby
2
+ #--
3
+ # Color
4
+ # Colour management with Ruby
5
+ # http://rubyforge.org/projects/color
6
+ # Version 1.5.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 - 2010 Austin Ziegler and Matt Lyon
12
+ #++
13
+
14
+ $LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib") if __FILE__ == $0
15
+ require 'test/unit'
16
+ require 'spectrum'
17
+
18
+ module TestColor
19
+ class TestCMYK < Test::Unit::TestCase
20
+ def setup
21
+ @cmyk = Spectrum::CMYK.new(10, 20, 30, 40)
22
+ end
23
+
24
+ def test_cyan
25
+ assert_in_delta(0.1, @cmyk.c, Spectrum::COLOR_TOLERANCE)
26
+ assert_in_delta(10, @cmyk.cyan, Spectrum::COLOR_TOLERANCE)
27
+ assert_nothing_raised { @cmyk.cyan = 20 }
28
+ assert_in_delta(0.2, @cmyk.c, Spectrum::COLOR_TOLERANCE)
29
+ assert_nothing_raised { @cmyk.c = 2.0 }
30
+ assert_in_delta(100, @cmyk.cyan, Spectrum::COLOR_TOLERANCE)
31
+ assert_nothing_raised { @cmyk.c = -1.0 }
32
+ assert_in_delta(0.0, @cmyk.c, Spectrum::COLOR_TOLERANCE)
33
+ end
34
+
35
+ def test_magenta
36
+ assert_in_delta(0.2, @cmyk.m, Spectrum::COLOR_TOLERANCE)
37
+ assert_in_delta(20, @cmyk.magenta, Spectrum::COLOR_TOLERANCE)
38
+ assert_nothing_raised { @cmyk.magenta = 30 }
39
+ assert_in_delta(0.3, @cmyk.m, Spectrum::COLOR_TOLERANCE)
40
+ assert_nothing_raised { @cmyk.m = 2.0 }
41
+ assert_in_delta(100, @cmyk.magenta, Spectrum::COLOR_TOLERANCE)
42
+ assert_nothing_raised { @cmyk.m = -1.0 }
43
+ assert_in_delta(0.0, @cmyk.m, Spectrum::COLOR_TOLERANCE)
44
+ end
45
+
46
+ def test_yellow
47
+ assert_in_delta(0.3, @cmyk.y, Spectrum::COLOR_TOLERANCE)
48
+ assert_in_delta(30, @cmyk.yellow, Spectrum::COLOR_TOLERANCE)
49
+ assert_nothing_raised { @cmyk.yellow = 20 }
50
+ assert_in_delta(0.2, @cmyk.y, Spectrum::COLOR_TOLERANCE)
51
+ assert_nothing_raised { @cmyk.y = 2.0 }
52
+ assert_in_delta(100, @cmyk.yellow, Spectrum::COLOR_TOLERANCE)
53
+ assert_nothing_raised { @cmyk.y = -1.0 }
54
+ assert_in_delta(0.0, @cmyk.y, Spectrum::COLOR_TOLERANCE)
55
+ end
56
+
57
+ def test_black
58
+ assert_in_delta(0.4, @cmyk.k, Spectrum::COLOR_TOLERANCE)
59
+ assert_in_delta(40, @cmyk.black, Spectrum::COLOR_TOLERANCE)
60
+ assert_nothing_raised { @cmyk.black = 20 }
61
+ assert_in_delta(0.2, @cmyk.k, Spectrum::COLOR_TOLERANCE)
62
+ assert_nothing_raised { @cmyk.k = 2.0 }
63
+ assert_in_delta(100, @cmyk.black, Spectrum::COLOR_TOLERANCE)
64
+ assert_nothing_raised { @cmyk.k = -1.0 }
65
+ assert_in_delta(0.0, @cmyk.k, Spectrum::COLOR_TOLERANCE)
66
+ end
67
+
68
+ def test_pdf
69
+ assert_equal("0.100 0.200 0.300 0.400 k", @cmyk.pdf_fill)
70
+ assert_equal("0.100 0.200 0.300 0.400 K", @cmyk.pdf_stroke)
71
+ end
72
+
73
+ def test_to_cmyk
74
+ assert(@cmyk.to_cmyk == @cmyk)
75
+ end
76
+
77
+ def test_to_grayscale
78
+ gs = nil
79
+ assert_nothing_raised { gs = @cmyk.to_grayscale }
80
+ assert_kind_of(Spectrum::GrayScale, gs)
81
+ assert_in_delta(0.4185, gs.g, Spectrum::COLOR_TOLERANCE)
82
+ assert_kind_of(Spectrum::GreyScale, @cmyk.to_greyscale)
83
+ end
84
+
85
+ def test_to_hsl
86
+ hsl = nil
87
+ assert_nothing_raised { hsl = @cmyk.to_hsl }
88
+ assert_kind_of(Spectrum::HSL, hsl)
89
+ assert_in_delta(0.48, hsl.l, Spectrum::COLOR_TOLERANCE)
90
+ assert_in_delta(0.125, hsl.s, Spectrum::COLOR_TOLERANCE)
91
+ assert_in_delta(0.08333, hsl.h, Spectrum::COLOR_TOLERANCE)
92
+ assert_equal("hsl(30.00, 12.50%, 48.00%)", @cmyk.css_hsl)
93
+ assert_equal("hsla(30.00, 12.50%, 48.00%, 1.00)", @cmyk.css_hsla)
94
+ end
95
+
96
+ def test_to_rgb
97
+ rgb = nil
98
+ assert_nothing_raised { rgb = @cmyk.to_rgb(true) }
99
+ assert_kind_of(Spectrum::RGB, rgb)
100
+ assert_in_delta(0.5, rgb.r, Spectrum::COLOR_TOLERANCE)
101
+ assert_in_delta(0.4, rgb.g, Spectrum::COLOR_TOLERANCE)
102
+ assert_in_delta(0.3, rgb.b, Spectrum::COLOR_TOLERANCE)
103
+
104
+ assert_nothing_raised { rgb = @cmyk.to_rgb }
105
+ assert_kind_of(Spectrum::RGB, rgb)
106
+ assert_in_delta(0.54, rgb.r, Spectrum::COLOR_TOLERANCE)
107
+ assert_in_delta(0.48, rgb.g, Spectrum::COLOR_TOLERANCE)
108
+ assert_in_delta(0.42, rgb.b, Spectrum::COLOR_TOLERANCE)
109
+
110
+ assert_equal("#8a7a6b", @cmyk.html)
111
+ assert_equal("rgb(54.00%, 48.00%, 42.00%)", @cmyk.css_rgb)
112
+ assert_equal("rgba(54.00%, 48.00%, 42.00%, 1.00)", @cmyk.css_rgba)
113
+ end
114
+
115
+ def test_inspect
116
+ assert_equal("CMYK [10.00%, 20.00%, 30.00%, 40.00%]", @cmyk.inspect)
117
+ end
118
+
119
+ def test_to_yiq
120
+ yiq = nil
121
+ assert_nothing_raised { yiq = @cmyk.to_yiq }
122
+ assert_kind_of(Spectrum::YIQ, yiq)
123
+ assert_in_delta(0.4911, yiq.y, Spectrum::COLOR_TOLERANCE)
124
+ assert_in_delta(0.05502, yiq.i, Spectrum::COLOR_TOLERANCE)
125
+ assert_in_delta(0.0, yiq.q, Spectrum::COLOR_TOLERANCE)
126
+ end
127
+ end
128
+ end
@@ -0,0 +1,141 @@
1
+ #!/usr/bin/env ruby
2
+ #--
3
+ # Color
4
+ # Colour management with Ruby
5
+ # http://rubyforge.org/projects/color
6
+ # Version 1.5.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 - 2010 Austin Ziegler and Matt Lyon
12
+ #++
13
+
14
+ $LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib") if __FILE__ == $0
15
+ require 'test/unit'
16
+ require 'spectrum'
17
+ require 'spectrum/css'
18
+
19
+ module TestColor
20
+ class TestColor < Test::Unit::TestCase
21
+ def setup
22
+ Kernel.module_eval do
23
+ alias old_warn warn
24
+
25
+ def warn(message)
26
+ $last_warn = message
27
+ end
28
+ end
29
+ end
30
+
31
+ def teardown
32
+ Kernel.module_eval do
33
+ undef warn
34
+ alias warn old_warn
35
+ undef old_warn
36
+ end
37
+ end
38
+
39
+ def test_const
40
+ $last_warn = nil
41
+ assert_equal(Spectrum::RGB::AliceBlue, Spectrum::AliceBlue)
42
+ assert_equal("Spectrum::AliceBlue has been deprecated. Use Spectrum::RGB::AliceBlue instead.", $last_warn)
43
+
44
+ $last_warn = nil # Do this twice to make sure it always happens...
45
+ assert(Spectrum::AliceBlue)
46
+ assert_equal("Spectrum::AliceBlue has been deprecated. Use Spectrum::RGB::AliceBlue instead.", $last_warn)
47
+
48
+ $last_warn = nil
49
+ assert_equal(Spectrum::COLOR_VERSION, Spectrum::VERSION)
50
+ assert_equal("Spectrum::VERSION has been deprecated. Use Spectrum::COLOR_VERSION instead.", $last_warn)
51
+
52
+ $last_warn = nil
53
+ assert_equal(Spectrum::COLOR_VERSION, Spectrum::COLOR_TOOLS_VERSION)
54
+ assert_equal("Spectrum::COLOR_TOOLS_VERSION has been deprecated. Use Spectrum::COLOR_VERSION instead.", $last_warn)
55
+
56
+ $last_warn = nil
57
+ assert(Spectrum::COLOR_VERSION)
58
+ assert_nil($last_warn)
59
+ assert(Spectrum::COLOR_EPSILON)
60
+ assert_nil($last_warn)
61
+
62
+ assert_raises(NameError) { assert(Spectrum::MISSING_VALUE) }
63
+ end
64
+
65
+ def test_normalize
66
+ (1..10).each do |i|
67
+ assert_equal(0.0, Spectrum.normalize(-7 * i))
68
+ assert_equal(0.0, Spectrum.normalize(-7 / i))
69
+ assert_equal(0.0, Spectrum.normalize(0 - i))
70
+ assert_equal(1.0, Spectrum.normalize(255 + i))
71
+ assert_equal(1.0, Spectrum.normalize(256 * i))
72
+ assert_equal(1.0, Spectrum.normalize(65536 / i))
73
+ end
74
+ (0..255).each do |i|
75
+ assert_in_delta(i / 255.0, Spectrum.normalize(i / 255.0),
76
+ 1e-2)
77
+ end
78
+ end
79
+
80
+ def test_normalize_range
81
+ assert_equal(0, Spectrum.normalize_8bit(-1))
82
+ assert_equal(0, Spectrum.normalize_8bit(0))
83
+ assert_equal(127, Spectrum.normalize_8bit(127))
84
+ assert_equal(172, Spectrum.normalize_8bit(172))
85
+ assert_equal(255, Spectrum.normalize_8bit(255))
86
+ assert_equal(255, Spectrum.normalize_8bit(256))
87
+
88
+ assert_equal(0, Spectrum.normalize_16bit(-1))
89
+ assert_equal(0, Spectrum.normalize_16bit(0))
90
+ assert_equal(127, Spectrum.normalize_16bit(127))
91
+ assert_equal(172, Spectrum.normalize_16bit(172))
92
+ assert_equal(255, Spectrum.normalize_16bit(255))
93
+ assert_equal(256, Spectrum.normalize_16bit(256))
94
+ assert_equal(65535, Spectrum.normalize_16bit(65535))
95
+ assert_equal(65535, Spectrum.normalize_16bit(66536))
96
+
97
+ assert_equal(-100, Spectrum.normalize_to_range(-101, -100..100))
98
+ assert_equal(-100, Spectrum.normalize_to_range(-100.5, -100..100))
99
+ assert_equal(-100, Spectrum.normalize_to_range(-100, -100..100))
100
+ assert_equal(-100, Spectrum.normalize_to_range(-100.0, -100..100))
101
+ assert_equal(-99.5, Spectrum.normalize_to_range(-99.5, -100..100))
102
+ assert_equal(-50, Spectrum.normalize_to_range(-50, -100..100))
103
+ assert_equal(-50.5, Spectrum.normalize_to_range(-50.5, -100..100))
104
+ assert_equal(0, Spectrum.normalize_to_range(0, -100..100))
105
+ assert_equal(50, Spectrum.normalize_to_range(50, -100..100))
106
+ assert_equal(50.5, Spectrum.normalize_to_range(50.5, -100..100))
107
+ assert_equal(99, Spectrum.normalize_to_range(99, -100..100))
108
+ assert_equal(99.5, Spectrum.normalize_to_range(99.5, -100..100))
109
+ assert_equal(100, Spectrum.normalize_to_range(100, -100..100))
110
+ assert_equal(100, Spectrum.normalize_to_range(100.0, -100..100))
111
+ assert_equal(100, Spectrum.normalize_to_range(100.5, -100..100))
112
+ assert_equal(100, Spectrum.normalize_to_range(101, -100..100))
113
+ end
114
+
115
+ def test_new
116
+ $last_warn = nil
117
+ c = Spectrum.new("#fff")
118
+ assert_kind_of(Spectrum::HSL, c)
119
+ assert_equal(Spectrum::RGB::White.to_hsl, c)
120
+ assert_equal("Spectrum.new has been deprecated. Use Spectrum::RGB.new instead.", $last_warn)
121
+
122
+ $last_warn = nil
123
+ c = Spectrum.new([0, 0, 0])
124
+ assert_kind_of(Spectrum::HSL, c)
125
+ assert_equal(Spectrum::RGB::Black.to_hsl, c)
126
+ assert_equal("Spectrum.new has been deprecated. Use Spectrum::RGB.new instead.", $last_warn)
127
+
128
+ $last_warn = nil
129
+ c = Spectrum.new([10, 20, 30], :hsl)
130
+ assert_kind_of(Spectrum::HSL, c)
131
+ assert_equal(Spectrum::HSL.new(10, 20, 30), c)
132
+ assert_equal("Spectrum.new has been deprecated. Use Spectrum::HSL.new instead.", $last_warn)
133
+
134
+ $last_warn = nil
135
+ c = Spectrum.new([10, 20, 30, 40], :cmyk)
136
+ assert_kind_of(Spectrum::HSL, c)
137
+ assert_equal(Spectrum::CMYK.new(10, 20, 30, 40).to_hsl, c)
138
+ assert_equal("Spectrum.new has been deprecated. Use Spectrum::CMYK.new instead.", $last_warn)
139
+ end
140
+ end
141
+ end
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ #--
3
+ # Color
4
+ # Colour management with Ruby
5
+ # http://rubyforge.org/projects/color
6
+ # Version 1.5.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 - 2010 Austin Ziegler and Matt Lyon
12
+ #++
13
+
14
+ $LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib") if __FILE__ == $0
15
+ require 'test/unit'
16
+ require 'spectrum'
17
+ require 'spectrum/css'
18
+
19
+ module TestColor
20
+ class TestCSS < Test::Unit::TestCase
21
+ def test_index
22
+ assert_equal(Spectrum::RGB::AliceBlue, Spectrum::CSS[:aliceblue])
23
+ assert_equal(Spectrum::RGB::AliceBlue, Spectrum::CSS["AliceBlue"])
24
+ assert_equal(Spectrum::RGB::AliceBlue, Spectrum::CSS["aliceBlue"])
25
+ assert_equal(Spectrum::RGB::AliceBlue, Spectrum::CSS["aliceblue"])
26
+ assert_equal(Spectrum::RGB::AliceBlue, Spectrum::CSS[:AliceBlue])
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,101 @@
1
+ #!/usr/bin/env ruby
2
+ #--
3
+ # Color
4
+ # Colour management with Ruby
5
+ # http://rubyforge.org/projects/color
6
+ # Version 1.5.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 - 2010 Austin Ziegler and Matt Lyon
12
+ #++
13
+
14
+ $LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib") if __FILE__ == $0
15
+ require 'test/unit'
16
+ require 'spectrum'
17
+ require 'spectrum/palette/gimp'
18
+
19
+ module TestColor
20
+ module TestPalette
21
+ class TestGimp < Test::Unit::TestCase
22
+ include Spectrum::Palette
23
+
24
+ GIMP_W3C = <<-EOS
25
+ GIMP Palette
26
+ Name: W3C Named Colors
27
+ Columns: 2
28
+ #
29
+ # ColorZilla W3C Named Colors
30
+ #
31
+ 255 255 255 White
32
+ 255 255 0 Yclow
33
+ 255 0 255 Fuchsia
34
+ 255 0 0 Red
35
+ 192 192 192 Silver
36
+ 128 128 128 Gray
37
+ 128 128 0 Olive
38
+ 128 0 128 Purple
39
+ 128 0 0 Maroon
40
+ 0 255 255 Aqua
41
+ 0 255 0 Lime
42
+ 0 128 128 Teal
43
+ 0 128 0 Green
44
+ 0 0 255 Blue
45
+ 0 0 128 Navy
46
+ 0 0 0 Black
47
+ EOS
48
+
49
+ def setup
50
+ @filename = "test#{Process.pid}.gimp"
51
+ end
52
+
53
+ def teardown
54
+ require 'fileutils'
55
+ FileUtils.rm_f @filename if File.exist? @filename
56
+ end
57
+
58
+ def test_each
59
+ @gimp = Gimp.new(GIMP_W3C)
60
+ assert_equal(16, @gimp.instance_variable_get(:@colors).size)
61
+ @gimp.each { |c| assert_kind_of(Spectrum::RGB, c) }
62
+ end
63
+
64
+ def test_each_name
65
+ @gimp = Gimp.new(GIMP_W3C)
66
+ assert_equal(16, @gimp.instance_variable_get(:@names).size)
67
+
68
+ @gimp.each_name { |color_name, color_set|
69
+ assert_kind_of(Array, color_set)
70
+ color_set.each { |c|
71
+ assert_kind_of(Spectrum::RGB, c)
72
+ }
73
+ }
74
+ end
75
+
76
+ def test_index
77
+ assert_nothing_raised do
78
+ File.open(@filename, "wb") do |f|
79
+ f.write GIMP_W3C
80
+ end
81
+ end
82
+ assert_nothing_raised { @gimp = Gimp.from_file(@filename) }
83
+ assert_equal(Spectrum::RGB::White, @gimp[0])
84
+ assert_equal(Spectrum::RGB::White, @gimp["White"][0])
85
+ assert_equal([Spectrum::RGB::White, Spectrum::RGB::Black],
86
+ @gimp.values_at(0, -1))
87
+ assert_equal(16, @gimp.size)
88
+ end
89
+
90
+ def test_valid_eh
91
+ @gimp = Gimp.new(GIMP_W3C)
92
+ assert(@gimp.valid?)
93
+ end
94
+
95
+ def test_name
96
+ @gimp = Gimp.new(GIMP_W3C)
97
+ assert_equal("W3C Named Colors", @gimp.name)
98
+ end
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,121 @@
1
+ #!/usr/bin/env ruby
2
+ #--
3
+ # Color
4
+ # Colour management with Ruby
5
+ # http://rubyforge.org/projects/color
6
+ # Version 1.5.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 - 2010 Austin Ziegler and Matt Lyon
12
+ #++
13
+
14
+ $LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib") if __FILE__ == $0
15
+ require 'test/unit'
16
+ require 'spectrum'
17
+
18
+ module TestColor
19
+ class TestGrayScale < Test::Unit::TestCase
20
+ def setup
21
+ @gs = Spectrum::GrayScale.from_percent(33)
22
+ end
23
+
24
+ def test_brightness
25
+ assert_in_delta(0.33, @gs.brightness, Spectrum::COLOR_TOLERANCE)
26
+ end
27
+
28
+ def test_darken_by
29
+ assert_in_delta(29.7, @gs.darken_by(10).gray, Spectrum::COLOR_TOLERANCE)
30
+ end
31
+
32
+ def test_g
33
+ assert_in_delta(0.33, @gs.g, Spectrum::COLOR_TOLERANCE)
34
+ assert_in_delta(33, @gs.grey, Spectrum::COLOR_TOLERANCE)
35
+ assert_nothing_raised { @gs.gray = 40 }
36
+ assert_in_delta(0.4, @gs.g, Spectrum::COLOR_TOLERANCE)
37
+ assert_nothing_raised { @gs.g = 2.0 }
38
+ assert_in_delta(100, @gs.gray, Spectrum::COLOR_TOLERANCE)
39
+ assert_nothing_raised { @gs.grey = -2.0 }
40
+ assert_in_delta(0.0, @gs.g, Spectrum::COLOR_TOLERANCE)
41
+ end
42
+
43
+ def test_html_css
44
+ assert_equal("#545454", @gs.html)
45
+ assert_equal("rgb(33.00%, 33.00%, 33.00%)", @gs.css_rgb)
46
+ assert_equal("rgba(33.00%, 33.00%, 33.00%, 1.00)", @gs.css_rgba)
47
+ end
48
+
49
+ def test_lighten_by
50
+ assert_in_delta(0.363, @gs.lighten_by(10).g, Spectrum::COLOR_TOLERANCE)
51
+ end
52
+
53
+ def test_pdf_fill
54
+ assert_equal("0.330 g", @gs.pdf_fill)
55
+ assert_equal("0.330 G", @gs.pdf_stroke)
56
+ end
57
+
58
+ def test_to_cmyk
59
+ cmyk = nil
60
+ assert_nothing_raised { cmyk = @gs.to_cmyk }
61
+ assert_kind_of(Spectrum::CMYK, cmyk)
62
+ assert_in_delta(0.0, cmyk.c, Spectrum::COLOR_TOLERANCE)
63
+ assert_in_delta(0.0, cmyk.m, Spectrum::COLOR_TOLERANCE)
64
+ assert_in_delta(0.0, cmyk.y, Spectrum::COLOR_TOLERANCE)
65
+ assert_in_delta(0.67, cmyk.k, Spectrum::COLOR_TOLERANCE)
66
+ end
67
+
68
+ def test_to_grayscale
69
+ assert_equal(@gs, @gs.to_grayscale)
70
+ assert_equal(@gs, @gs.to_greyscale)
71
+ end
72
+
73
+ def test_to_hsl
74
+ hsl = nil
75
+ assert_nothing_raised { hsl = @gs.to_hsl }
76
+ assert_kind_of(Spectrum::HSL, hsl)
77
+ assert_in_delta(0.0, hsl.h, Spectrum::COLOR_TOLERANCE)
78
+ assert_in_delta(0.0, hsl.s, Spectrum::COLOR_TOLERANCE)
79
+ assert_in_delta(0.33, hsl.l, Spectrum::COLOR_TOLERANCE)
80
+ assert_equal("hsl(0.00, 0.00%, 33.00%)", @gs.css_hsl)
81
+ assert_equal("hsla(0.00, 0.00%, 33.00%, 1.00)", @gs.css_hsla)
82
+ end
83
+
84
+ def test_to_rgb
85
+ rgb = nil
86
+ assert_nothing_raised { rgb = @gs.to_rgb }
87
+ assert_kind_of(Spectrum::RGB, rgb)
88
+ assert_in_delta(0.33, rgb.r, Spectrum::COLOR_TOLERANCE)
89
+ assert_in_delta(0.33, rgb.g, Spectrum::COLOR_TOLERANCE)
90
+ assert_in_delta(0.33, rgb.b, Spectrum::COLOR_TOLERANCE)
91
+ end
92
+
93
+ def test_to_yiq
94
+ yiq = nil
95
+ assert_nothing_raised { yiq = @gs.to_yiq }
96
+ assert_kind_of(Spectrum::YIQ, yiq)
97
+ assert_in_delta(0.33, yiq.y, Spectrum::COLOR_TOLERANCE)
98
+ assert_in_delta(0.0, yiq.i, Spectrum::COLOR_TOLERANCE)
99
+ assert_in_delta(0.0, yiq.q, Spectrum::COLOR_TOLERANCE)
100
+ end
101
+
102
+ def test_add
103
+ delta = @gs + Spectrum::GrayScale.new(20)
104
+ max = @gs + Spectrum::GrayScale.new(80)
105
+
106
+ assert_in_delta(1.0, max.g, Spectrum::COLOR_TOLERANCE)
107
+ assert_in_delta(0.53, delta.g, Spectrum::COLOR_TOLERANCE)
108
+ end
109
+
110
+ def test_subtract
111
+ delta = @gs - Spectrum::GrayScale.new(20)
112
+ max = @gs - Spectrum::GrayScale.new(80)
113
+ assert_in_delta(0.0, max.g, Spectrum::COLOR_TOLERANCE)
114
+ assert_in_delta(0.13, delta.g, Spectrum::COLOR_TOLERANCE)
115
+ end
116
+
117
+ def test_inspect
118
+ assert_equal("Gray [33.00%]", @gs.inspect)
119
+ end
120
+ end
121
+ end