timocratic-color 1.4.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,134 @@
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/css'
20
+
21
+ module TestColor
22
+ class TestColor < Test::Unit::TestCase
23
+ def setup
24
+ Kernel.module_eval do
25
+ alias old_warn warn
26
+
27
+ def warn(message)
28
+ $last_warn = message
29
+ end
30
+ end
31
+ end
32
+
33
+ def teardown
34
+ Kernel.module_eval do
35
+ undef warn
36
+ alias warn old_warn
37
+ undef old_warn
38
+ end
39
+ end
40
+
41
+ def test_const
42
+ $last_warn = nil
43
+ assert_equal(Color::RGB::AliceBlue, Color::AliceBlue)
44
+ assert_equal("Color::AliceBlue has been deprecated. Use Color::RGB::AliceBlue instead.", $last_warn)
45
+
46
+ $last_warn = nil # Do this twice to make sure it always happens...
47
+ assert(Color::AliceBlue)
48
+ assert_equal("Color::AliceBlue has been deprecated. Use Color::RGB::AliceBlue instead.", $last_warn)
49
+
50
+ $last_warn = nil
51
+ assert_equal(Color::COLOR_VERSION, Color::VERSION)
52
+ assert_equal("Color::VERSION has been deprecated. Use Color::COLOR_VERSION instead.", $last_warn)
53
+
54
+ $last_warn = nil
55
+ assert_equal(Color::COLOR_VERSION, Color::COLOR_TOOLS_VERSION)
56
+ assert_equal("Color::COLOR_TOOLS_VERSION has been deprecated. Use Color::COLOR_VERSION instead.", $last_warn)
57
+
58
+ $last_warn = nil
59
+ assert(Color::COLOR_VERSION)
60
+ assert_nil($last_warn)
61
+ assert(Color::COLOR_EPSILON)
62
+ assert_nil($last_warn)
63
+
64
+ assert_raises(NameError) { assert(Color::MISSING_VALUE) }
65
+ end
66
+
67
+ def test_normalize
68
+ (1..10).each do |i|
69
+ assert_equal(0.0, Color.normalize(-7 * i))
70
+ assert_equal(0.0, Color.normalize(-7 / i))
71
+ assert_equal(0.0, Color.normalize(0 - i))
72
+ assert_equal(1.0, Color.normalize(255 + i))
73
+ assert_equal(1.0, Color.normalize(256 * i))
74
+ assert_equal(1.0, Color.normalize(65536 / i))
75
+ end
76
+ (0..255).each do |i|
77
+ assert_in_delta(i / 255.0, Color.normalize(i / 255.0),
78
+ 1e-2)
79
+ end
80
+ end
81
+
82
+ def test_normalize_range
83
+ assert_equal(0, Color.normalize_8bit(-1))
84
+ assert_equal(0, Color.normalize_8bit(0))
85
+ assert_equal(127, Color.normalize_8bit(127))
86
+ assert_equal(172, Color.normalize_8bit(172))
87
+ assert_equal(255, Color.normalize_8bit(255))
88
+ assert_equal(255, Color.normalize_8bit(256))
89
+
90
+ assert_equal(-100, Color.normalize_to_range(-101, -100..100))
91
+ assert_equal(-100, Color.normalize_to_range(-100.5, -100..100))
92
+ assert_equal(-100, Color.normalize_to_range(-100, -100..100))
93
+ assert_equal(-100, Color.normalize_to_range(-100.0, -100..100))
94
+ assert_equal(-99.5, Color.normalize_to_range(-99.5, -100..100))
95
+ assert_equal(-50, Color.normalize_to_range(-50, -100..100))
96
+ assert_equal(-50.5, Color.normalize_to_range(-50.5, -100..100))
97
+ assert_equal(0, Color.normalize_to_range(0, -100..100))
98
+ assert_equal(50, Color.normalize_to_range(50, -100..100))
99
+ assert_equal(50.5, Color.normalize_to_range(50.5, -100..100))
100
+ assert_equal(99, Color.normalize_to_range(99, -100..100))
101
+ assert_equal(99.5, Color.normalize_to_range(99.5, -100..100))
102
+ assert_equal(100, Color.normalize_to_range(100, -100..100))
103
+ assert_equal(100, Color.normalize_to_range(100.0, -100..100))
104
+ assert_equal(100, Color.normalize_to_range(100.5, -100..100))
105
+ assert_equal(100, Color.normalize_to_range(101, -100..100))
106
+ end
107
+
108
+ def test_new
109
+ $last_warn = nil
110
+ c = Color.new("#fff")
111
+ assert_kind_of(Color::HSL, c)
112
+ assert_equal(Color::RGB::White.to_hsl, c)
113
+ assert_equal("Color.new has been deprecated. Use Color::RGB.new instead.", $last_warn)
114
+
115
+ $last_warn = nil
116
+ c = Color.new([0, 0, 0])
117
+ assert_kind_of(Color::HSL, c)
118
+ assert_equal(Color::RGB::Black.to_hsl, c)
119
+ assert_equal("Color.new has been deprecated. Use Color::RGB.new instead.", $last_warn)
120
+
121
+ $last_warn = nil
122
+ c = Color.new([10, 20, 30], :hsl)
123
+ assert_kind_of(Color::HSL, c)
124
+ assert_equal(Color::HSL.new(10, 20, 30), c)
125
+ assert_equal("Color.new has been deprecated. Use Color::HSL.new instead.", $last_warn)
126
+
127
+ $last_warn = nil
128
+ c = Color.new([10, 20, 30, 40], :cmyk)
129
+ assert_kind_of(Color::HSL, c)
130
+ assert_equal(Color::CMYK.new(10, 20, 30, 40).to_hsl, c)
131
+ assert_equal("Color.new has been deprecated. Use Color::CMYK.new instead.", $last_warn)
132
+ end
133
+ end
134
+ end
@@ -0,0 +1,31 @@
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/css'
20
+
21
+ module TestColor
22
+ class TestCSS < Test::Unit::TestCase
23
+ def test_index
24
+ assert_equal(Color::RGB::AliceBlue, Color::CSS[:aliceblue])
25
+ assert_equal(Color::RGB::AliceBlue, Color::CSS["AliceBlue"])
26
+ assert_equal(Color::RGB::AliceBlue, Color::CSS["aliceBlue"])
27
+ assert_equal(Color::RGB::AliceBlue, Color::CSS["aliceblue"])
28
+ assert_equal(Color::RGB::AliceBlue, Color::CSS[:AliceBlue])
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,103 @@
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/gimp'
20
+
21
+ module TestColor
22
+ module TestPalette
23
+ class TestGimp < Test::Unit::TestCase
24
+ include Color::Palette
25
+
26
+ GIMP_W3C = <<-EOS
27
+ GIMP Palette
28
+ Name: W3C Named Colors
29
+ Columns: 2
30
+ #
31
+ # ColorZilla W3C Named Colors
32
+ #
33
+ 255 255 255 White
34
+ 255 255 0 Yclow
35
+ 255 0 255 Fuchsia
36
+ 255 0 0 Red
37
+ 192 192 192 Silver
38
+ 128 128 128 Gray
39
+ 128 128 0 Olive
40
+ 128 0 128 Purple
41
+ 128 0 0 Maroon
42
+ 0 255 255 Aqua
43
+ 0 255 0 Lime
44
+ 0 128 128 Teal
45
+ 0 128 0 Green
46
+ 0 0 255 Blue
47
+ 0 0 128 Navy
48
+ 0 0 0 Black
49
+ EOS
50
+
51
+ def setup
52
+ @filename = "test#{Process.pid}.gimp"
53
+ end
54
+
55
+ def teardown
56
+ require 'fileutils'
57
+ FileUtils.rm_f @filename if File.exist? @filename
58
+ end
59
+
60
+ def test_each
61
+ @gimp = Gimp.new(GIMP_W3C)
62
+ assert_equal(16, @gimp.instance_variable_get(:@colors).size)
63
+ @gimp.each { |c| assert_kind_of(Color::RGB, c) }
64
+ end
65
+
66
+ def test_each_name
67
+ @gimp = Gimp.new(GIMP_W3C)
68
+ assert_equal(16, @gimp.instance_variable_get(:@names).size)
69
+
70
+ @gimp.each_name { |color_name, color_set|
71
+ assert_kind_of(Array, color_set)
72
+ color_set.each { |c|
73
+ assert_kind_of(Color::RGB, c)
74
+ }
75
+ }
76
+ end
77
+
78
+ def test_index
79
+ assert_nothing_raised do
80
+ File.open(@filename, "wb") do |f|
81
+ f.write GIMP_W3C
82
+ end
83
+ end
84
+ assert_nothing_raised { @gimp = Gimp.from_file(@filename) }
85
+ assert_equal(Color::RGB::White, @gimp[0])
86
+ assert_equal(Color::RGB::White, @gimp["White"][0])
87
+ assert_equal([Color::RGB::White, Color::RGB::Black],
88
+ @gimp.values_at(0, -1))
89
+ assert_equal(16, @gimp.size)
90
+ end
91
+
92
+ def test_valid_eh
93
+ @gimp = Gimp.new(GIMP_W3C)
94
+ assert(@gimp.valid?)
95
+ end
96
+
97
+ def test_name
98
+ @gimp = Gimp.new(GIMP_W3C)
99
+ assert_equal("W3C Named Colors", @gimp.name)
100
+ end
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,123 @@
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 TestGrayScale < Test::Unit::TestCase
22
+ def setup
23
+ @gs = Color::GrayScale.from_percent(33)
24
+ end
25
+
26
+ def test_brightness
27
+ assert_in_delta(0.33, @gs.brightness, Color::COLOR_TOLERANCE)
28
+ end
29
+
30
+ def test_darken_by
31
+ assert_in_delta(29.7, @gs.darken_by(10).gray, Color::COLOR_TOLERANCE)
32
+ end
33
+
34
+ def test_g
35
+ assert_in_delta(0.33, @gs.g, Color::COLOR_TOLERANCE)
36
+ assert_in_delta(33, @gs.grey, Color::COLOR_TOLERANCE)
37
+ assert_nothing_raised { @gs.gray = 40 }
38
+ assert_in_delta(0.4, @gs.g, Color::COLOR_TOLERANCE)
39
+ assert_nothing_raised { @gs.g = 2.0 }
40
+ assert_in_delta(100, @gs.gray, Color::COLOR_TOLERANCE)
41
+ assert_nothing_raised { @gs.grey = -2.0 }
42
+ assert_in_delta(0.0, @gs.g, Color::COLOR_TOLERANCE)
43
+ end
44
+
45
+ def test_html_css
46
+ assert_equal("#545454", @gs.html)
47
+ assert_equal("rgb(33.00%, 33.00%, 33.00%)", @gs.css_rgb)
48
+ assert_equal("rgba(33.00%, 33.00%, 33.00%, 1.00)", @gs.css_rgba)
49
+ end
50
+
51
+ def test_lighten_by
52
+ assert_in_delta(0.363, @gs.lighten_by(10).g, Color::COLOR_TOLERANCE)
53
+ end
54
+
55
+ def test_pdf_fill
56
+ assert_equal("0.330 g", @gs.pdf_fill)
57
+ assert_equal("0.330 G", @gs.pdf_stroke)
58
+ end
59
+
60
+ def test_to_cmyk
61
+ cmyk = nil
62
+ assert_nothing_raised { cmyk = @gs.to_cmyk }
63
+ assert_kind_of(Color::CMYK, cmyk)
64
+ assert_in_delta(0.0, cmyk.c, Color::COLOR_TOLERANCE)
65
+ assert_in_delta(0.0, cmyk.m, Color::COLOR_TOLERANCE)
66
+ assert_in_delta(0.0, cmyk.y, Color::COLOR_TOLERANCE)
67
+ assert_in_delta(0.67, cmyk.k, Color::COLOR_TOLERANCE)
68
+ end
69
+
70
+ def test_to_grayscale
71
+ assert_equal(@gs, @gs.to_grayscale)
72
+ assert_equal(@gs, @gs.to_greyscale)
73
+ end
74
+
75
+ def test_to_hsl
76
+ hsl = nil
77
+ assert_nothing_raised { hsl = @gs.to_hsl }
78
+ assert_kind_of(Color::HSL, hsl)
79
+ assert_in_delta(0.0, hsl.h, Color::COLOR_TOLERANCE)
80
+ assert_in_delta(0.0, hsl.s, Color::COLOR_TOLERANCE)
81
+ assert_in_delta(0.33, hsl.l, Color::COLOR_TOLERANCE)
82
+ assert_equal("hsl(0.00, 0.00%, 33.00%)", @gs.css_hsl)
83
+ assert_equal("hsla(0.00, 0.00%, 33.00%, 1.00)", @gs.css_hsla)
84
+ end
85
+
86
+ def test_to_rgb
87
+ rgb = nil
88
+ assert_nothing_raised { rgb = @gs.to_rgb }
89
+ assert_kind_of(Color::RGB, rgb)
90
+ assert_in_delta(0.33, rgb.r, Color::COLOR_TOLERANCE)
91
+ assert_in_delta(0.33, rgb.g, Color::COLOR_TOLERANCE)
92
+ assert_in_delta(0.33, rgb.b, Color::COLOR_TOLERANCE)
93
+ end
94
+
95
+ def test_to_yiq
96
+ yiq = nil
97
+ assert_nothing_raised { yiq = @gs.to_yiq }
98
+ assert_kind_of(Color::YIQ, yiq)
99
+ assert_in_delta(0.33, yiq.y, Color::COLOR_TOLERANCE)
100
+ assert_in_delta(0.0, yiq.i, Color::COLOR_TOLERANCE)
101
+ assert_in_delta(0.0, yiq.q, Color::COLOR_TOLERANCE)
102
+ end
103
+
104
+ def test_add
105
+ delta = @gs + Color::GrayScale.new(20)
106
+ max = @gs + Color::GrayScale.new(80)
107
+
108
+ assert_in_delta(1.0, max.g, Color::COLOR_TOLERANCE)
109
+ assert_in_delta(0.53, delta.g, Color::COLOR_TOLERANCE)
110
+ end
111
+
112
+ def test_subtract
113
+ delta = @gs - Color::GrayScale.new(20)
114
+ max = @gs - Color::GrayScale.new(80)
115
+ assert_in_delta(0.0, max.g, Color::COLOR_TOLERANCE)
116
+ assert_in_delta(0.13, delta.g, Color::COLOR_TOLERANCE)
117
+ end
118
+
119
+ def test_inspect
120
+ assert_equal("Gray [33.00%]", @gs.inspect)
121
+ end
122
+ end
123
+ end
@@ -0,0 +1,155 @@
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
+ # HSL Tests provided by Adam Johnson
14
+ #
15
+ # $Id: test_all.rb 55 2007-02-03 23:29:34Z austin $
16
+ #++
17
+
18
+ $LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib") if __FILE__ == $0
19
+ require 'test/unit'
20
+ require 'color'
21
+
22
+ module TestColor
23
+ class TestHSL < Test::Unit::TestCase
24
+ def setup
25
+ # @hsl = Color::HSL.new(262, 67, 42)
26
+ @hsl = Color::HSL.new(145, 20, 30)
27
+ # @rgb = Color::RGB.new(88, 35, 179)
28
+ end
29
+
30
+ def test_rgb_roundtrip_conversion
31
+ hsl = Color::HSL.new(262, 67, 42)
32
+ c = hsl.to_rgb.to_hsl
33
+ assert_in_delta hsl.h, c.h, Color::COLOR_TOLERANCE, "Hue"
34
+ assert_in_delta hsl.s, c.s, Color::COLOR_TOLERANCE, "Saturation"
35
+ assert_in_delta hsl.l, c.l, Color::COLOR_TOLERANCE, "Luminance"
36
+ end
37
+
38
+ def test_brightness
39
+ assert_in_delta 0.3, @hsl.brightness, Color::COLOR_TOLERANCE
40
+ end
41
+
42
+ def test_hue
43
+ assert_in_delta 0.4027, @hsl.h, Color::COLOR_TOLERANCE
44
+ assert_in_delta 145, @hsl.hue, Color::COLOR_TOLERANCE
45
+ assert_nothing_raised { @hsl.hue = 33 }
46
+ assert_in_delta 0.09167, @hsl.h, Color::COLOR_TOLERANCE
47
+ assert_nothing_raised { @hsl.hue = -33 }
48
+ assert_in_delta 0.90833, @hsl.h, Color::COLOR_TOLERANCE
49
+ assert_nothing_raised { @hsl.h = 3.3 }
50
+ assert_in_delta 360, @hsl.hue, Color::COLOR_TOLERANCE
51
+ assert_nothing_raised { @hsl.h = -3.3 }
52
+ assert_in_delta 0.0, @hsl.h, Color::COLOR_TOLERANCE
53
+ assert_nothing_raised { @hsl.hue = 0 }
54
+ assert_nothing_raised { @hsl.hue -= 20 }
55
+ assert_in_delta 340, @hsl.hue, Color::COLOR_TOLERANCE
56
+ assert_nothing_raised { @hsl.hue += 45 }
57
+ assert_in_delta 25, @hsl.hue, Color::COLOR_TOLERANCE
58
+ end
59
+
60
+ def test_saturation
61
+ assert_in_delta 0.2, @hsl.s, Color::COLOR_TOLERANCE
62
+ assert_in_delta 20, @hsl.saturation, Color::COLOR_TOLERANCE
63
+ assert_nothing_raised { @hsl.saturation = 33 }
64
+ assert_in_delta 0.33, @hsl.s, Color::COLOR_TOLERANCE
65
+ assert_nothing_raised { @hsl.s = 3.3 }
66
+ assert_in_delta 100, @hsl.saturation, Color::COLOR_TOLERANCE
67
+ assert_nothing_raised { @hsl.s = -3.3 }
68
+ assert_in_delta 0.0, @hsl.s, Color::COLOR_TOLERANCE
69
+ end
70
+
71
+ def test_luminance
72
+ assert_in_delta 0.3, @hsl.l, Color::COLOR_TOLERANCE
73
+ assert_in_delta 30, @hsl.luminosity, Color::COLOR_TOLERANCE
74
+ assert_nothing_raised { @hsl.luminosity = 33 }
75
+ assert_in_delta 0.33, @hsl.l, Color::COLOR_TOLERANCE
76
+ assert_nothing_raised { @hsl.l = 3.3 }
77
+ assert_in_delta 100, @hsl.lightness, Color::COLOR_TOLERANCE
78
+ assert_nothing_raised { @hsl.l = -3.3 }
79
+ assert_in_delta 0.0, @hsl.l, Color::COLOR_TOLERANCE
80
+ end
81
+
82
+ def test_html_css
83
+ assert_equal "hsl(145.00, 20.00%, 30.00%)", @hsl.css_hsl
84
+ assert_equal "hsla(145.00, 20.00%, 30.00%, 1.00)", @hsl.css_hsla
85
+ end
86
+
87
+ def test_to_cmyk
88
+ cmyk = nil
89
+ assert_nothing_raised { cmyk = @hsl.to_cmyk }
90
+ assert_kind_of Color::CMYK, cmyk
91
+ assert_in_delta 0.3223, cmyk.c, Color::COLOR_TOLERANCE
92
+ assert_in_delta 0.2023, cmyk.m, Color::COLOR_TOLERANCE
93
+ assert_in_delta 0.2723, cmyk.y, Color::COLOR_TOLERANCE
94
+ assert_in_delta 0.4377, cmyk.k, Color::COLOR_TOLERANCE
95
+ end
96
+
97
+ def test_to_grayscale
98
+ gs = nil
99
+ assert_nothing_raised { gs = @hsl.to_grayscale }
100
+ assert_kind_of Color::GreyScale, gs
101
+ assert_in_delta 30, gs.gray, Color::COLOR_TOLERANCE
102
+ end
103
+
104
+ def test_to_rgb
105
+ rgb = nil
106
+ assert_nothing_raised { rgb = @hsl.to_rgb }
107
+ assert_kind_of Color::RGB, rgb
108
+ assert_in_delta 0.24, rgb.r, Color::COLOR_TOLERANCE
109
+ assert_in_delta 0.36, rgb.g, Color::COLOR_TOLERANCE
110
+ assert_in_delta 0.29, rgb.b, Color::COLOR_TOLERANCE
111
+ assert_equal "#3d5c4a", @hsl.html
112
+ assert_equal "rgb(24.00%, 36.00%, 29.00%)", @hsl.css_rgb
113
+ assert_equal "rgba(24.00%, 36.00%, 29.00%, 1.00)", @hsl.css_rgba
114
+ # The following tests address a bug reported by Jean Krohn on June 6,
115
+ # 2006 and excercise some previously unexercised code in to_rgb.
116
+ assert_equal Color::RGB::Black, Color::HSL.new(75, 75, 0)
117
+ assert_equal Color::RGB::White, Color::HSL.new(75, 75, 100)
118
+ assert_equal Color::RGB::Gray80, Color::HSL.new(75, 0, 80)
119
+
120
+ # The following tests a bug reported by Adam Johnson on 29 October
121
+ # 2007.
122
+ rgb = Color::RGB.from_fraction(0.34496, 0.1386, 0.701399)
123
+ c = Color::HSL.new(262, 67, 42).to_rgb
124
+ assert_in_delta rgb.r, c.r, Color::COLOR_TOLERANCE, "Red"
125
+ assert_in_delta rgb.g, c.g, Color::COLOR_TOLERANCE, "Green"
126
+ assert_in_delta rgb.b, c.b, Color::COLOR_TOLERANCE, "Blue"
127
+ end
128
+
129
+ def test_to_yiq
130
+ yiq = nil
131
+ assert_nothing_raised { yiq = @hsl.to_yiq }
132
+ assert_kind_of Color::YIQ, yiq
133
+ assert_in_delta 0.3161, yiq.y, Color::COLOR_TOLERANCE
134
+ assert_in_delta 0.0, yiq.i, Color::COLOR_TOLERANCE
135
+ assert_in_delta 0.0, yiq.q, Color::COLOR_TOLERANCE
136
+ end
137
+
138
+ def test_mix_with
139
+ red = Color::RGB::Red.to_hsl
140
+ yellow = Color::RGB::Yellow.to_hsl
141
+ assert_in_delta 0, red.hue, Color::COLOR_TOLERANCE
142
+ assert_in_delta 60, yellow.hue, Color::COLOR_TOLERANCE
143
+ ry25 = red.mix_with yellow, 0.25
144
+ assert_in_delta 15, ry25.hue, Color::COLOR_TOLERANCE
145
+ ry50 = red.mix_with yellow, 0.50
146
+ assert_in_delta 30, ry50.hue, Color::COLOR_TOLERANCE
147
+ ry75 = red.mix_with yellow, 0.75
148
+ assert_in_delta 45, ry75.hue, Color::COLOR_TOLERANCE
149
+ end
150
+
151
+ def test_inspect
152
+ assert_equal "HSL [145.00 deg, 20.00%, 30.00%]", @hsl.inspect
153
+ end
154
+ end
155
+ end