color-tools 1.2.0 → 1.3.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.
- data/Changelog +35 -1
- data/Install +11 -2
- data/README +44 -12
- data/Rakefile +11 -2
- data/lib/color.rb +35 -158
- data/lib/color/cmyk.rb +62 -18
- data/lib/color/css.rb +27 -0
- data/lib/color/grayscale.rb +43 -13
- data/lib/color/hsl.rb +130 -0
- data/lib/color/palette.rb +4 -0
- data/lib/color/palette/gimp.rb +47 -12
- data/lib/color/palette/monocontrast.rb +41 -11
- data/lib/color/rgb-colors.rb +189 -0
- data/lib/color/rgb.rb +163 -27
- data/lib/color/rgb/metallic.rb +28 -0
- data/lib/color/yiq.rb +35 -9
- data/metaconfig +11 -2
- data/pre-setup.rb +12 -3
- data/tests/test_cmyk.rb +116 -0
- data/tests/test_css.rb +28 -0
- data/tests/test_gimp.rb +79 -0
- data/tests/test_grayscale.rb +87 -0
- data/tests/test_hsl.rb +93 -0
- data/tests/test_monocontrast.rb +145 -0
- data/tests/test_rgb.rb +160 -0
- data/tests/test_yiq.rb +81 -0
- data/tests/testall.rb +20 -0
- metadata +23 -8
data/tests/test_hsl.rb
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#--
|
3
|
+
# Colour management with Ruby.
|
4
|
+
#
|
5
|
+
# Copyright 2005 Austin Ziegler
|
6
|
+
# http://rubyforge.org/ruby-pdf/
|
7
|
+
#
|
8
|
+
# Licensed under a MIT-style licence.
|
9
|
+
#
|
10
|
+
# $Id: test_hsl.rb,v 1.2 2005/08/08 02:57:36 austin Exp $
|
11
|
+
#++
|
12
|
+
|
13
|
+
$LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib") if __FILE__ == $0
|
14
|
+
require 'test/unit' unless defined? $ZENTEST and $ZENTEST
|
15
|
+
require 'color'
|
16
|
+
|
17
|
+
module TestColor
|
18
|
+
class TestHSL < Test::Unit::TestCase
|
19
|
+
def setup
|
20
|
+
@hsl = Color::HSL.new(145, 20, 30)
|
21
|
+
end
|
22
|
+
|
23
|
+
def brightness
|
24
|
+
assert_in_delta(0.3, @hsl.brightness, 1e-4)
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_h
|
28
|
+
assert_in_delta(0.4027, @hsl.h, 1e-4)
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_h_equals
|
32
|
+
assert_in_delta(0.4027, @hsl.h, 1e-4)
|
33
|
+
assert_nothing_raised { @hsl.h = 0.33 }
|
34
|
+
assert_in_delta(0.33, @hsl.h, 1e-4)
|
35
|
+
assert_nothing_raised { @hsl.h = 3.3 }
|
36
|
+
assert_in_delta(1.0, @hsl.h, 1e-4)
|
37
|
+
assert_nothing_raised { @hsl.h = -3.3 }
|
38
|
+
assert_in_delta(0.0, @hsl.h, 1e-4)
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_html
|
42
|
+
assert_equal("#3d5c4a", @hsl.html)
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_l
|
46
|
+
assert_in_delta(0.3, @hsl.l, 1e-4)
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_l_equals
|
50
|
+
assert_in_delta(0.3, @hsl.l, 1e-4)
|
51
|
+
assert_nothing_raised { @hsl.l = 0.33 }
|
52
|
+
assert_in_delta(0.33, @hsl.l, 1e-4)
|
53
|
+
assert_nothing_raised { @hsl.l = 3.3 }
|
54
|
+
assert_in_delta(1.0, @hsl.l, 1e-4)
|
55
|
+
assert_nothing_raised { @hsl.l = -3.3 }
|
56
|
+
assert_in_delta(0.0, @hsl.l, 1e-4)
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_s
|
60
|
+
assert_in_delta(0.2, @hsl.s, 1e-4)
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_s_equals
|
64
|
+
assert_in_delta(0.2, @hsl.s, 1e-4)
|
65
|
+
assert_nothing_raised { @hsl.s = 0.33 }
|
66
|
+
assert_in_delta(0.33, @hsl.s, 1e-4)
|
67
|
+
assert_nothing_raised { @hsl.s = 3.3 }
|
68
|
+
assert_in_delta(1.0, @hsl.s, 1e-4)
|
69
|
+
assert_nothing_raised { @hsl.s = -3.3 }
|
70
|
+
assert_in_delta(0.0, @hsl.s, 1e-4)
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_to_cmyk
|
74
|
+
assert_kind_of(Color::CMYK, @hsl.to_cmyk)
|
75
|
+
end
|
76
|
+
|
77
|
+
def test_to_grayscale
|
78
|
+
assert_kind_of(Color::GrayScale, @hsl.to_grayscale)
|
79
|
+
end
|
80
|
+
|
81
|
+
def test_to_greyscale
|
82
|
+
assert_kind_of(Color::GreyScale, @hsl.to_greyscale)
|
83
|
+
end
|
84
|
+
|
85
|
+
def test_to_rgb
|
86
|
+
assert_kind_of(Color::RGB, @hsl.to_rgb)
|
87
|
+
end
|
88
|
+
|
89
|
+
def test_to_yiq
|
90
|
+
assert_kind_of(Color::YIQ, @hsl.to_yiq)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
@@ -0,0 +1,145 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#--
|
3
|
+
# Colour management with Ruby.
|
4
|
+
#
|
5
|
+
# Copyright 2005 Austin Ziegler
|
6
|
+
# http://rubyforge.org/ruby-pdf/
|
7
|
+
#
|
8
|
+
# Licensed under a MIT-style licence.
|
9
|
+
#
|
10
|
+
# $Id: test_monocontrast.rb,v 1.1 2005/08/08 02:44:17 austin Exp $
|
11
|
+
#++
|
12
|
+
|
13
|
+
$LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib") if __FILE__ == $0
|
14
|
+
require 'test/unit' unless defined? $ZENTEST and $ZENTEST
|
15
|
+
require 'color'
|
16
|
+
require 'color/palette/monocontrast'
|
17
|
+
|
18
|
+
module TestColor
|
19
|
+
module TestPalette
|
20
|
+
class TestMonoContrast < Test::Unit::TestCase
|
21
|
+
include Color::Palette
|
22
|
+
def setup
|
23
|
+
@high = Color::RGB.from_html("#c9e3a6")
|
24
|
+
@low = Color::RGB.from_html("#746b8e")
|
25
|
+
@mcp1 = MonoContrast.new(@high)
|
26
|
+
@mcp2 = MonoContrast.new(@low)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_background
|
30
|
+
assert_equal("#141711", @mcp1.background[-5].html)
|
31
|
+
assert_equal("#32392a", @mcp1.background[-4].html)
|
32
|
+
assert_equal("#657253", @mcp1.background[-3].html)
|
33
|
+
assert_equal("#97aa7d", @mcp1.background[-2].html)
|
34
|
+
assert_equal("#abc18d", @mcp1.background[-1].html)
|
35
|
+
assert_equal("#c9e3a6", @mcp1.background[ 0].html)
|
36
|
+
assert_equal("#d1e7b3", @mcp1.background[+1].html)
|
37
|
+
assert_equal("#d7eabc", @mcp1.background[+2].html) # d7eabd
|
38
|
+
assert_equal("#e4f1d3", @mcp1.background[+3].html) # e5f2d3
|
39
|
+
assert_equal("#f2f8e9", @mcp1.background[+4].html) # f1f8e9
|
40
|
+
assert_equal("#fafcf6", @mcp1.background[+5].html) # fafdf7
|
41
|
+
|
42
|
+
assert_equal("#0c0b0e", @mcp2.background[-5].html)
|
43
|
+
assert_equal("#1d1b24", @mcp2.background[-4].html)
|
44
|
+
assert_equal("#3a3647", @mcp2.background[-3].html)
|
45
|
+
assert_equal("#57506b", @mcp2.background[-2].html)
|
46
|
+
assert_equal("#635b79", @mcp2.background[-1].html)
|
47
|
+
assert_equal("#746b8e", @mcp2.background[ 0].html)
|
48
|
+
assert_equal("#89819f", @mcp2.background[+1].html)
|
49
|
+
assert_equal("#9790aa", @mcp2.background[+2].html) # 9790ab
|
50
|
+
assert_equal("#bab5c7", @mcp2.background[+3].html) # bab6c7
|
51
|
+
assert_equal("#dcdae3", @mcp2.background[+4].html)
|
52
|
+
assert_equal("#f1f0f4", @mcp2.background[+5].html) # f2f1f4
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_brightness_diff
|
56
|
+
bd1 = @mcp1.brightness_diff(@high, @low)
|
57
|
+
bd2 = @mcp1.brightness_diff(@low, @high)
|
58
|
+
assert_in_delta(bd1, bd2, 1e-4)
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_calculate_foreground
|
62
|
+
assert_equal("#ffffff", @mcp1.calculate_foreground(@low, @high).html)
|
63
|
+
assert_equal("#1d1b24", @mcp1.calculate_foreground(@high, @low).html)
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_color_diff
|
67
|
+
assert_in_delta(@mcp1.color_diff(@low, @high),
|
68
|
+
@mcp1.color_diff(@high, @low), 1e-4)
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_foreground
|
72
|
+
assert_equal("#c9e3a6", @mcp1.foreground[-5].html)
|
73
|
+
assert_equal("#e4f1d3", @mcp1.foreground[-4].html) # e5f2d3
|
74
|
+
assert_equal("#ffffff", @mcp1.foreground[-3].html)
|
75
|
+
assert_equal("#000000", @mcp1.foreground[-2].html)
|
76
|
+
assert_equal("#000000", @mcp1.foreground[-1].html)
|
77
|
+
assert_equal("#000000", @mcp1.foreground[ 0].html)
|
78
|
+
assert_equal("#000000", @mcp1.foreground[+1].html)
|
79
|
+
assert_equal("#000000", @mcp1.foreground[+2].html)
|
80
|
+
assert_equal("#32392a", @mcp1.foreground[+3].html)
|
81
|
+
assert_equal("#32392a", @mcp1.foreground[+4].html)
|
82
|
+
assert_equal("#32392a", @mcp1.foreground[+5].html)
|
83
|
+
|
84
|
+
assert_equal("#bab5c7", @mcp2.foreground[-5].html) # bab6c7
|
85
|
+
assert_equal("#dcdae3", @mcp2.foreground[-4].html)
|
86
|
+
assert_equal("#ffffff", @mcp2.foreground[-3].html)
|
87
|
+
assert_equal("#ffffff", @mcp2.foreground[-2].html)
|
88
|
+
assert_equal("#ffffff", @mcp2.foreground[-1].html)
|
89
|
+
assert_equal("#ffffff", @mcp2.foreground[ 0].html)
|
90
|
+
assert_equal("#000000", @mcp2.foreground[+1].html)
|
91
|
+
assert_equal("#000000", @mcp2.foreground[+2].html)
|
92
|
+
assert_equal("#000000", @mcp2.foreground[+3].html)
|
93
|
+
assert_equal("#1d1b24", @mcp2.foreground[+4].html)
|
94
|
+
assert_equal("#3a3647", @mcp2.foreground[+5].html)
|
95
|
+
end
|
96
|
+
|
97
|
+
def test_minimum_brightness_diff
|
98
|
+
assert_in_delta(MonoContrast::DEFAULT_MINIMUM_BRIGHTNESS_DIFF,
|
99
|
+
@mcp1.minimum_brightness_diff, 1e-4)
|
100
|
+
end
|
101
|
+
|
102
|
+
def test_minimum_brightness_diff_equals
|
103
|
+
assert_in_delta(MonoContrast::DEFAULT_MINIMUM_BRIGHTNESS_DIFF,
|
104
|
+
@mcp1.minimum_brightness_diff, 1e-4)
|
105
|
+
mcps = @mcp1.dup
|
106
|
+
assert_nothing_raised { @mcp1.minimum_brightness_diff = 0.75 }
|
107
|
+
assert_in_delta(0.75, @mcp1.minimum_brightness_diff, 1e-4)
|
108
|
+
assert_not_equal(@mcp1.foreground[-5], mcps.foreground[-5])
|
109
|
+
assert_nothing_raised { @mcp1.minimum_brightness_diff = 4.0 }
|
110
|
+
assert_in_delta(1, @mcp1.minimum_brightness_diff, 1e-4)
|
111
|
+
assert_nothing_raised { @mcp1.minimum_brightness_diff = -4.0 }
|
112
|
+
assert_in_delta(0, @mcp1.minimum_brightness_diff, 1e-4)
|
113
|
+
assert_nothing_raised { @mcp1.minimum_brightness_diff = nil }
|
114
|
+
assert_in_delta(MonoContrast::DEFAULT_MINIMUM_BRIGHTNESS_DIFF,
|
115
|
+
@mcp1.minimum_brightness_diff, 1e-4)
|
116
|
+
end
|
117
|
+
|
118
|
+
def test_minimum_color_diff
|
119
|
+
assert_in_delta(MonoContrast::DEFAULT_MINIMUM_COLOR_DIFF,
|
120
|
+
@mcp1.minimum_color_diff, 1e-4)
|
121
|
+
end
|
122
|
+
|
123
|
+
def test_minimum_color_diff_equals
|
124
|
+
assert_in_delta(MonoContrast::DEFAULT_MINIMUM_COLOR_DIFF,
|
125
|
+
@mcp1.minimum_color_diff, 1e-4)
|
126
|
+
mcps = @mcp1.dup
|
127
|
+
assert_nothing_raised { @mcp1.minimum_color_diff = 0.75 }
|
128
|
+
assert_in_delta(0.75, @mcp1.minimum_color_diff, 1e-4)
|
129
|
+
assert_not_equal(@mcp1.foreground[-5], mcps.foreground[-5])
|
130
|
+
assert_nothing_raised { @mcp1.minimum_color_diff = 4.0 }
|
131
|
+
assert_in_delta(3, @mcp1.minimum_color_diff, 1e-4)
|
132
|
+
assert_nothing_raised { @mcp1.minimum_color_diff = -4.0 }
|
133
|
+
assert_in_delta(0, @mcp1.minimum_color_diff, 1e-4)
|
134
|
+
assert_nothing_raised { @mcp1.minimum_color_diff = nil }
|
135
|
+
assert_in_delta(MonoContrast::DEFAULT_MINIMUM_COLOR_DIFF,
|
136
|
+
@mcp1.minimum_color_diff, 1e-4)
|
137
|
+
end
|
138
|
+
|
139
|
+
# This is empty because the #regenerate method is automatically run
|
140
|
+
# when changing the minimum_brightness_diff or minimum_color_diff.
|
141
|
+
def test_regenerate
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
data/tests/test_rgb.rb
ADDED
@@ -0,0 +1,160 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#--
|
3
|
+
# Colour management with Ruby.
|
4
|
+
#
|
5
|
+
# Copyright 2005 Austin Ziegler
|
6
|
+
# http://rubyforge.org/ruby-pdf/
|
7
|
+
#
|
8
|
+
# Licensed under a MIT-style licence.
|
9
|
+
#
|
10
|
+
# $Id: test_rgb.rb,v 1.1 2005/08/08 02:44:17 austin Exp $
|
11
|
+
#++
|
12
|
+
|
13
|
+
$LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib") if __FILE__ == $0
|
14
|
+
require 'test/unit' unless defined? $ZENTEST and $ZENTEST
|
15
|
+
require 'color'
|
16
|
+
|
17
|
+
module TestColor
|
18
|
+
class TestRGB < Test::Unit::TestCase
|
19
|
+
def test_adjust_brightness
|
20
|
+
assert_equal("#1a1aff", Color::RGB::Blue.adjust_brightness(10).html)
|
21
|
+
assert_equal("#0000e6", Color::RGB::Blue.adjust_brightness(-10).html)
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_adjust_hue
|
25
|
+
assert_equal("#6600ff", Color::RGB::Blue.adjust_hue(10).html)
|
26
|
+
assert_equal("#0066ff", Color::RGB::Blue.adjust_hue(-10).html)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_adjust_saturation
|
30
|
+
assert_equal("#ef9374",
|
31
|
+
Color::RGB::DarkSalmon.adjust_saturation(10).html)
|
32
|
+
assert_equal("#e39980",
|
33
|
+
Color::RGB::DarkSalmon.adjust_saturation(-10).html)
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_b
|
37
|
+
assert_in_delta(1.0, Color::RGB::Blue.b, 1e-4)
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_b_equals
|
41
|
+
b = Color::RGB::Blue.dup
|
42
|
+
assert_in_delta(1.0, b.b, 1e-4)
|
43
|
+
assert_nothing_raised { b.b = 0.33 }
|
44
|
+
assert_in_delta(0.33, b.b, 1e-4)
|
45
|
+
assert_nothing_raised { b.b = 3.3 }
|
46
|
+
assert_in_delta(1.0, b.b, 1e-4)
|
47
|
+
assert_nothing_raised { b.b = -3.3 }
|
48
|
+
assert_in_delta(0.0, b.b, 1e-4)
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_brightness
|
52
|
+
assert_in_delta(0.0, Color::RGB::Black.brightness, 1e-4)
|
53
|
+
assert_in_delta(0.5, Color::RGB::Grey50.brightness, 1e-4)
|
54
|
+
assert_in_delta(1.0, Color::RGB::White.brightness, 1e-4)
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_darken_by
|
58
|
+
assert_in_delta(0.5, Color::RGB::Blue.darken_by(50).b, 1e-4)
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_g
|
62
|
+
assert_in_delta(1.0, Color::RGB::Lime.g, 1e-4)
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_g_equals
|
66
|
+
g = Color::RGB::Lime.dup
|
67
|
+
assert_in_delta(1.0, g.g, 1e-4)
|
68
|
+
assert_nothing_raised { g.g = 0.33 }
|
69
|
+
assert_in_delta(0.33, g.g, 1e-4)
|
70
|
+
assert_nothing_raised { g.g = 3.3 }
|
71
|
+
assert_in_delta(1.0, g.g, 1e-4)
|
72
|
+
assert_nothing_raised { g.g = -3.3 }
|
73
|
+
assert_in_delta(0.0, g.g, 1e-4)
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_html
|
77
|
+
assert_equal("#000000", Color::RGB::Black.html)
|
78
|
+
assert_equal("#0000ff", Color::RGB::Blue.html)
|
79
|
+
assert_equal("#00ff00", Color::RGB::Lime.html)
|
80
|
+
assert_equal("#ff0000", Color::RGB::Red.html)
|
81
|
+
assert_equal("#ffffff", Color::RGB::White.html)
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_lighten_by
|
85
|
+
assert_in_delta(1.0, Color::RGB::Blue.lighten_by(50).b, 1e-4)
|
86
|
+
assert_in_delta(0.5, Color::RGB::Blue.lighten_by(50).r, 1e-4)
|
87
|
+
assert_in_delta(0.5, Color::RGB::Blue.lighten_by(50).g, 1e-4)
|
88
|
+
end
|
89
|
+
|
90
|
+
def test_mix_with
|
91
|
+
assert_in_delta(0.5, Color::RGB::Red.mix_with(Color::RGB::Blue, 50).r,
|
92
|
+
1e-4)
|
93
|
+
assert_in_delta(0.0, Color::RGB::Red.mix_with(Color::RGB::Blue, 50).g,
|
94
|
+
1e-4)
|
95
|
+
assert_in_delta(0.5, Color::RGB::Red.mix_with(Color::RGB::Blue, 50).b,
|
96
|
+
1e-4)
|
97
|
+
assert_in_delta(0.5, Color::RGB::Blue.mix_with(Color::RGB::Red, 50).r,
|
98
|
+
1e-4)
|
99
|
+
assert_in_delta(0.0, Color::RGB::Blue.mix_with(Color::RGB::Red, 50).g,
|
100
|
+
1e-4)
|
101
|
+
assert_in_delta(0.5, Color::RGB::Blue.mix_with(Color::RGB::Red, 50).b,
|
102
|
+
1e-4)
|
103
|
+
end
|
104
|
+
|
105
|
+
def test_pdf_fill
|
106
|
+
assert_equal("0.000 0.000 0.000 rg", Color::RGB::Black.pdf_fill)
|
107
|
+
assert_equal("0.000 0.000 1.000 rg", Color::RGB::Blue.pdf_fill)
|
108
|
+
assert_equal("0.000 1.000 0.000 rg", Color::RGB::Lime.pdf_fill)
|
109
|
+
assert_equal("1.000 0.000 0.000 rg", Color::RGB::Red.pdf_fill)
|
110
|
+
assert_equal("1.000 1.000 1.000 rg", Color::RGB::White.pdf_fill)
|
111
|
+
end
|
112
|
+
|
113
|
+
def test_pdf_stroke
|
114
|
+
assert_equal("0.000 0.000 0.000 RG", Color::RGB::Black.pdf_stroke)
|
115
|
+
assert_equal("0.000 0.000 1.000 RG", Color::RGB::Blue.pdf_stroke)
|
116
|
+
assert_equal("0.000 1.000 0.000 RG", Color::RGB::Lime.pdf_stroke)
|
117
|
+
assert_equal("1.000 0.000 0.000 RG", Color::RGB::Red.pdf_stroke)
|
118
|
+
assert_equal("1.000 1.000 1.000 RG", Color::RGB::White.pdf_stroke)
|
119
|
+
end
|
120
|
+
|
121
|
+
def test_r
|
122
|
+
assert_in_delta(1.0, Color::RGB::Red.r, 1e-4)
|
123
|
+
end
|
124
|
+
|
125
|
+
def test_r_equals
|
126
|
+
r = Color::RGB::Red.dup
|
127
|
+
assert_in_delta(1.0, r.r, 1e-4)
|
128
|
+
assert_nothing_raised { r.r = 0.33 }
|
129
|
+
assert_in_delta(0.33, r.r, 1e-4)
|
130
|
+
assert_nothing_raised { r.r = 3.3 }
|
131
|
+
assert_in_delta(1.0, r.r, 1e-4)
|
132
|
+
assert_nothing_raised { r.r = -3.3 }
|
133
|
+
assert_in_delta(0.0, r.r, 1e-4)
|
134
|
+
end
|
135
|
+
|
136
|
+
def test_to_cmyk
|
137
|
+
assert_kind_of(Color::CMYK, Color::RGB::Black.to_cmyk)
|
138
|
+
end
|
139
|
+
|
140
|
+
def test_to_grayscale
|
141
|
+
assert_kind_of(Color::GrayScale, Color::RGB::Black.to_grayscale)
|
142
|
+
end
|
143
|
+
|
144
|
+
def test_to_greyscale
|
145
|
+
assert_kind_of(Color::GreyScale, Color::RGB::Black.to_greyscale)
|
146
|
+
end
|
147
|
+
|
148
|
+
def test_to_hsl
|
149
|
+
assert_kind_of(Color::HSL, Color::RGB::Black.to_hsl)
|
150
|
+
end
|
151
|
+
|
152
|
+
def test_to_rgb
|
153
|
+
assert_equal(Color::RGB::Black, Color::RGB::Black.to_rgb)
|
154
|
+
end
|
155
|
+
|
156
|
+
def test_to_yiq
|
157
|
+
assert_kind_of(Color::YIQ, Color::RGB::Black.to_yiq)
|
158
|
+
end
|
159
|
+
end
|
160
|
+
end
|
data/tests/test_yiq.rb
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#--
|
3
|
+
# Colour management with Ruby.
|
4
|
+
#
|
5
|
+
# Copyright 2005 Austin Ziegler
|
6
|
+
# http://rubyforge.org/ruby-pdf/
|
7
|
+
#
|
8
|
+
# Licensed under a MIT-style licence.
|
9
|
+
#
|
10
|
+
# $Id: test_yiq.rb,v 1.1 2005/08/08 02:44:17 austin Exp $
|
11
|
+
#++
|
12
|
+
|
13
|
+
$LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib") if __FILE__ == $0
|
14
|
+
require 'test/unit' unless defined? $ZENTEST and $ZENTEST
|
15
|
+
require 'color'
|
16
|
+
|
17
|
+
module TestColor
|
18
|
+
class TestYIQ < Test::Unit::TestCase
|
19
|
+
def setup
|
20
|
+
@yiq = Color::YIQ.from_fraction(0.1, 0.2, 0.3)
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_brightness
|
24
|
+
assert_in_delta(0.1, @yiq.brightness, 1e-4)
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_i
|
28
|
+
assert_in_delta(0.2, @yiq.i, 1e-4)
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_i_equals
|
32
|
+
assert_in_delta(0.2, @yiq.i, 1e-4)
|
33
|
+
assert_nothing_raised { @yiq.i = 0.5 }
|
34
|
+
assert_in_delta(0.5, @yiq.i, 1e-4)
|
35
|
+
assert_nothing_raised { @yiq.i = 5 }
|
36
|
+
assert_in_delta(1.0, @yiq.i, 1e-4)
|
37
|
+
assert_nothing_raised { @yiq.i = -5 }
|
38
|
+
assert_in_delta(0.0, @yiq.i, 1e-4)
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_q
|
42
|
+
assert_in_delta(0.3, @yiq.q, 1e-4)
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_q_equals
|
46
|
+
assert_in_delta(0.3, @yiq.q, 1e-4)
|
47
|
+
assert_nothing_raised { @yiq.q = 0.5 }
|
48
|
+
assert_in_delta(0.5, @yiq.q, 1e-4)
|
49
|
+
assert_nothing_raised { @yiq.q = 5 }
|
50
|
+
assert_in_delta(1.0, @yiq.q, 1e-4)
|
51
|
+
assert_nothing_raised { @yiq.q = -5 }
|
52
|
+
assert_in_delta(0.0, @yiq.q, 1e-4)
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_to_grayscale
|
56
|
+
assert_kind_of(Color::GrayScale, @yiq.to_grayscale)
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_to_greyscale
|
60
|
+
assert_kind_of(Color::GreyScale, @yiq.to_greyscale)
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_to_yiq
|
64
|
+
assert_equal(@yiq, @yiq.to_yiq)
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_y
|
68
|
+
assert_in_delta(0.1, @yiq.y, 1e-4)
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_y_equals
|
72
|
+
assert_in_delta(0.1, @yiq.y, 1e-4)
|
73
|
+
assert_nothing_raised { @yiq.y = 0.5 }
|
74
|
+
assert_in_delta(0.5, @yiq.y, 1e-4)
|
75
|
+
assert_nothing_raised { @yiq.y = 5 }
|
76
|
+
assert_in_delta(1.0, @yiq.y, 1e-4)
|
77
|
+
assert_nothing_raised { @yiq.y = -5 }
|
78
|
+
assert_in_delta(0.0, @yiq.y, 1e-4)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|