rmagick 3.0.0 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rmagick might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.appveyor.yml +32 -6
- data/.circleci/config.yml +1 -1
- data/.gitignore +1 -0
- data/.rubocop.yml +9 -9
- data/.rubocop_todo.yml +351 -17
- data/.travis.yml +14 -1
- data/CHANGELOG.md +55 -0
- data/CONTRIBUTING.md +11 -18
- data/README.textile +2 -2
- data/Rakefile +1 -1
- data/before_install_linux.sh +56 -19
- data/doc/ex/sparse_color.rb +5 -0
- data/doc/magick.html +9 -4
- data/doc/rvg.html +2 -2
- data/doc/rvgtut.html +1 -1
- data/examples/histogram.rb +1 -1
- data/ext/RMagick/extconf.rb +90 -264
- data/ext/RMagick/rmagick.c +28 -6
- data/ext/RMagick/rmagick.h +53 -199
- data/ext/RMagick/rmdraw.c +52 -70
- data/ext/RMagick/rmenum.c +332 -274
- data/ext/RMagick/rmfill.c +62 -112
- data/ext/RMagick/rmilist.c +27 -62
- data/ext/RMagick/rmimage.c +424 -634
- data/ext/RMagick/rminfo.c +46 -37
- data/ext/RMagick/rmkinfo.c +47 -42
- data/ext/RMagick/rmmain.c +125 -180
- data/ext/RMagick/rmmontage.c +5 -5
- data/ext/RMagick/rmpixel.c +133 -62
- data/ext/RMagick/rmstruct.c +14 -181
- data/ext/RMagick/rmutil.c +195 -111
- data/lib/rmagick/version.rb +2 -3
- data/lib/rvg/deep_equal.rb +1 -1
- data/lib/rvg/misc.rb +4 -4
- data/lib/rvg/units.rb +2 -2
- data/rmagick.gemspec +2 -2
- data/spec/rmagick/ImageList1_spec.rb +2 -2
- data/spec/rmagick/draw_spec.rb +4 -4
- data/spec/rmagick/image/composite_spec.rb +6 -1
- data/spec/rmagick/image/properties_spec.rb +8 -8
- data/test/Draw.rb +414 -0
- data/test/Enum.rb +76 -0
- data/test/Fill.rb +93 -0
- data/test/Image1.rb +9 -1
- data/test/Image2.rb +14 -4
- data/test/Image3.rb +73 -3
- data/test/ImageList1.rb +22 -9
- data/test/ImageList2.rb +41 -9
- data/test/Image_attributes.rb +45 -8
- data/test/Info.rb +102 -6
- data/test/Magick.rb +8 -1
- data/test/PolaroidOptions.rb +23 -0
- data/test/test_all_basic.rb +4 -0
- metadata +28 -8
- data/.hound.yml +0 -2
- data/wercker.yml +0 -10
data/test/Enum.rb
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
#!/usr/bin/env ruby -w
|
2
|
+
|
3
|
+
require 'rmagick'
|
4
|
+
require 'test/unit'
|
5
|
+
require 'test/unit/ui/console/testrunner' unless RUBY_VERSION[/^1\.9|^2/]
|
6
|
+
|
7
|
+
class EnumUT < Test::Unit::TestCase
|
8
|
+
def test_new
|
9
|
+
assert_nothing_raised { Magick::Enum.new(:foo, 42) }
|
10
|
+
assert_nothing_raised { Magick::Enum.new('foo', 42) }
|
11
|
+
|
12
|
+
assert_raise(TypeError) { Magick::Enum.new(Object.new, 42) }
|
13
|
+
assert_raise(TypeError) { Magick::Enum.new(:foo, 'x') }
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_to_s
|
17
|
+
enum = Magick::Enum.new(:foo, 42)
|
18
|
+
assert_equal('foo', enum.to_s)
|
19
|
+
|
20
|
+
enum = Magick::Enum.new('foo', 42)
|
21
|
+
assert_equal('foo', enum.to_s)
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_to_i
|
25
|
+
enum = Magick::Enum.new(:foo, 42)
|
26
|
+
assert_equal(42, enum.to_i)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_spaceship
|
30
|
+
enum1 = Magick::Enum.new(:foo, 42)
|
31
|
+
enum2 = Magick::Enum.new(:foo, 56)
|
32
|
+
enum3 = Magick::Enum.new(:foo, 36)
|
33
|
+
enum4 = Magick::Enum.new(:foo, 42)
|
34
|
+
|
35
|
+
assert_equal(-1, enum1 <=> enum2)
|
36
|
+
assert_equal(0, enum1 <=> enum4)
|
37
|
+
assert_equal(1, enum1 <=> enum3)
|
38
|
+
assert_nil(enum1 <=> 'x')
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_case_eq
|
42
|
+
enum1 = Magick::Enum.new(:foo, 42)
|
43
|
+
enum2 = Magick::Enum.new(:foo, 56)
|
44
|
+
|
45
|
+
assert_true(enum1 === enum1)
|
46
|
+
assert_false(enum1 === enum2)
|
47
|
+
assert_false(enum1 === 'x')
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_bitwise_or
|
51
|
+
enum1 = Magick::Enum.new(:foo, 42)
|
52
|
+
enum2 = Magick::Enum.new(:bar, 56)
|
53
|
+
|
54
|
+
enum = enum1 | enum2
|
55
|
+
assert_equal(58, enum.to_i)
|
56
|
+
assert_equal('foo|bar', enum.to_s)
|
57
|
+
|
58
|
+
assert_raise(ArgumentError) { enum1 | 'x' }
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_type_values
|
62
|
+
assert_instance_of(Array, Magick::AlignType.values)
|
63
|
+
|
64
|
+
assert_equal('UndefinedAlign', Magick::AlignType.values[0].to_s)
|
65
|
+
assert_equal(0, Magick::AlignType.values[0].to_i)
|
66
|
+
|
67
|
+
Magick::AlignType.values do |enum|
|
68
|
+
assert_kind_of(Magick::Enum, enum)
|
69
|
+
assert_instance_of(Magick::AlignType, enum)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_type_inspect
|
74
|
+
assert_equal('UndefinedAlign=0', Magick::AlignType.values[0].inspect)
|
75
|
+
end
|
76
|
+
end
|
data/test/Fill.rb
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
#!/usr/bin/env ruby -w
|
2
|
+
|
3
|
+
require 'rmagick'
|
4
|
+
require 'test/unit'
|
5
|
+
require 'test/unit/ui/console/testrunner' unless RUBY_VERSION[/^1\.9|^2/]
|
6
|
+
|
7
|
+
class GradientFillUT < Test::Unit::TestCase
|
8
|
+
def test_new
|
9
|
+
assert_instance_of(Magick::GradientFill, Magick::GradientFill.new(0, 0, 0, 100, '#900', '#000'))
|
10
|
+
assert_instance_of(Magick::GradientFill, Magick::GradientFill.new(0, 0, 0, 100, 'white', 'red'))
|
11
|
+
|
12
|
+
assert_raise(ArgumentError) { Magick::GradientFill.new(0, 0, 0, 100, 'foo', '#000') }
|
13
|
+
assert_raise(ArgumentError) { Magick::GradientFill.new(0, 0, 0, 100, '#900', 'bar') }
|
14
|
+
assert_raise(TypeError) { Magick::GradientFill.new('x1', 0, 0, 100, '#900', '#000') }
|
15
|
+
assert_raise(TypeError) { Magick::GradientFill.new(0, 'y1', 0, 100, '#900', '#000') }
|
16
|
+
assert_raise(TypeError) { Magick::GradientFill.new(0, 0, 'x2', 100, '#900', '#000') }
|
17
|
+
assert_raise(TypeError) { Magick::GradientFill.new(0, 0, 0, 'y2', '#900', '#000') }
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_fill
|
21
|
+
img = Magick::Image.new(10, 10)
|
22
|
+
|
23
|
+
assert_nothing_raised do
|
24
|
+
gradient = Magick::GradientFill.new(0, 0, 0, 0, '#900', '#000')
|
25
|
+
obj = gradient.fill(img)
|
26
|
+
assert_equal(gradient, obj)
|
27
|
+
end
|
28
|
+
|
29
|
+
assert_nothing_raised do
|
30
|
+
gradient = Magick::GradientFill.new(0, 0, 0, 10, '#900', '#000')
|
31
|
+
obj = gradient.fill(img)
|
32
|
+
assert_equal(gradient, obj)
|
33
|
+
end
|
34
|
+
|
35
|
+
assert_nothing_raised do
|
36
|
+
gradient = Magick::GradientFill.new(0, 0, 10, 0, '#900', '#000')
|
37
|
+
obj = gradient.fill(img)
|
38
|
+
assert_equal(gradient, obj)
|
39
|
+
end
|
40
|
+
|
41
|
+
assert_nothing_raised do
|
42
|
+
gradient = Magick::GradientFill.new(0, 0, 10, 10, '#900', '#000')
|
43
|
+
obj = gradient.fill(img)
|
44
|
+
assert_equal(gradient, obj)
|
45
|
+
end
|
46
|
+
|
47
|
+
assert_nothing_raised do
|
48
|
+
gradient = Magick::GradientFill.new(0, 0, 5, 20, '#900', '#000')
|
49
|
+
obj = gradient.fill(img)
|
50
|
+
assert_equal(gradient, obj)
|
51
|
+
end
|
52
|
+
|
53
|
+
assert_nothing_raised do
|
54
|
+
gradient = Magick::GradientFill.new(-10, 0, -10, 10, '#900', '#000')
|
55
|
+
obj = gradient.fill(img)
|
56
|
+
assert_equal(gradient, obj)
|
57
|
+
end
|
58
|
+
|
59
|
+
assert_nothing_raised do
|
60
|
+
gradient = Magick::GradientFill.new(0, -10, 10, -10, '#900', '#000')
|
61
|
+
obj = gradient.fill(img)
|
62
|
+
assert_equal(gradient, obj)
|
63
|
+
end
|
64
|
+
|
65
|
+
assert_nothing_raised do
|
66
|
+
gradient = Magick::GradientFill.new(0, -10, 10, -20, '#900', '#000')
|
67
|
+
obj = gradient.fill(img)
|
68
|
+
assert_equal(gradient, obj)
|
69
|
+
end
|
70
|
+
|
71
|
+
assert_nothing_raised do
|
72
|
+
gradient = Magick::GradientFill.new(0, 100, 100, 200, '#900', '#000')
|
73
|
+
obj = gradient.fill(img)
|
74
|
+
assert_equal(gradient, obj)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
class TextureFillUT < Test::Unit::TestCase
|
80
|
+
def test_new
|
81
|
+
granite = Magick::Image.read('granite:').first
|
82
|
+
assert_instance_of(Magick::TextureFill, Magick::TextureFill.new(granite))
|
83
|
+
end
|
84
|
+
|
85
|
+
def test_fill
|
86
|
+
granite = Magick::Image.read('granite:').first
|
87
|
+
texture = Magick::TextureFill.new(granite)
|
88
|
+
|
89
|
+
img = Magick::Image.new(10, 10)
|
90
|
+
obj = texture.fill(img)
|
91
|
+
assert_equal(texture, obj)
|
92
|
+
end
|
93
|
+
end
|
data/test/Image1.rb
CHANGED
@@ -329,7 +329,7 @@ class Image1_UT < Test::Unit::TestCase
|
|
329
329
|
assert_nothing_raised { @img.channel_depth(Magick::CyanChannel, Magick::BlackChannel) }
|
330
330
|
assert_nothing_raised { @img.channel_depth(Magick::GrayChannel) }
|
331
331
|
assert_raise(TypeError) { @img.channel_depth(2) }
|
332
|
-
|
332
|
+
assert_kind_of(Integer, @img.channel_depth(Magick::RedChannel))
|
333
333
|
end
|
334
334
|
|
335
335
|
def test_channel_extrema
|
@@ -434,6 +434,12 @@ class Image1_UT < Test::Unit::TestCase
|
|
434
434
|
res = @img.color_histogram
|
435
435
|
assert_instance_of(Hash, res)
|
436
436
|
end
|
437
|
+
assert_nothing_raised do
|
438
|
+
@img.class_type = Magick::PseudoClass
|
439
|
+
res = @img.color_histogram
|
440
|
+
assert_equal(Magick::PseudoClass, @img.class_type)
|
441
|
+
assert_instance_of(Hash, res)
|
442
|
+
end
|
437
443
|
end
|
438
444
|
|
439
445
|
def test_colorize
|
@@ -536,6 +542,8 @@ class Image1_UT < Test::Unit::TestCase
|
|
536
542
|
assert_nothing_raised { img1.compare_channel(img2, Magick::PeakAbsoluteErrorMetric) }
|
537
543
|
assert_nothing_raised { img1.compare_channel(img2, Magick::PeakSignalToNoiseRatioMetric) }
|
538
544
|
assert_nothing_raised { img1.compare_channel(img2, Magick::RootMeanSquaredErrorMetric) }
|
545
|
+
assert_nothing_raised { img1.compare_channel(img2, Magick::NormalizedCrossCorrelationErrorMetric) }
|
546
|
+
assert_nothing_raised { img1.compare_channel(img2, Magick::FuzzErrorMetric) }
|
539
547
|
assert_raise(TypeError) { img1.compare_channel(img2, 2) }
|
540
548
|
assert_raise(ArgumentError) { img1.compare_channel }
|
541
549
|
|
data/test/Image2.rb
CHANGED
@@ -71,10 +71,10 @@ class Image2_UT < Test::Unit::TestCase
|
|
71
71
|
end
|
72
72
|
|
73
73
|
def test_compress_colormap!
|
74
|
-
# DirectClass images are converted to PseudoClass
|
74
|
+
# DirectClass images are converted to PseudoClass in older versions of ImageMagick.
|
75
75
|
assert_equal(Magick::DirectClass, @img.class_type)
|
76
76
|
assert_nothing_raised { @img.compress_colormap! }
|
77
|
-
assert_equal(Magick::PseudoClass, @img.class_type)
|
77
|
+
# assert_equal(Magick::PseudoClass, @img.class_type)
|
78
78
|
@img = Magick::Image.read(IMAGES_DIR + '/Button_0.gif').first
|
79
79
|
assert_equal(Magick::PseudoClass, @img.class_type)
|
80
80
|
assert_nothing_raised { @img.compress_colormap! }
|
@@ -428,6 +428,8 @@ class Image2_UT < Test::Unit::TestCase
|
|
428
428
|
assert_nothing_raised { @img.distortion_channel(@img, Magick::PeakSignalToNoiseRatioMetric) }
|
429
429
|
assert_nothing_raised { @img.distortion_channel(@img, Magick::RootMeanSquaredErrorMetric) }
|
430
430
|
assert_nothing_raised { @img.distortion_channel(@img, Magick::MeanSquaredErrorMetric, Magick::RedChannel, Magick:: BlueChannel) }
|
431
|
+
assert_nothing_raised { @img.distortion_channel(@img, Magick::NormalizedCrossCorrelationErrorMetric) }
|
432
|
+
assert_nothing_raised { @img.distortion_channel(@img, Magick::FuzzErrorMetric) }
|
431
433
|
assert_raise(TypeError) { @img.distortion_channel(@img, 2) }
|
432
434
|
assert_raise(TypeError) { @img.distortion_channel(@img, Magick::RootMeanSquaredErrorMetric, 2) }
|
433
435
|
assert_raise(ArgumentError) { @img.distortion_channel }
|
@@ -714,6 +716,16 @@ class Image2_UT < Test::Unit::TestCase
|
|
714
716
|
assert_raise(TypeError) { @img.frame(50, 50, 25, 25, 6, 6, 2) }
|
715
717
|
end
|
716
718
|
|
719
|
+
def test_fx
|
720
|
+
assert_nothing_raised { @img.fx('1/2') }
|
721
|
+
assert_nothing_raised { @img.fx('1/2', Magick::BlueChannel) }
|
722
|
+
assert_nothing_raised { @img.fx('1/2', Magick::BlueChannel, Magick::RedChannel) }
|
723
|
+
assert_raise(ArgumentError) { @img.fx }
|
724
|
+
assert_raise(ArgumentError) { @img.fx(Magick::BlueChannel) }
|
725
|
+
assert_raise(TypeError) { @img.fx(1) }
|
726
|
+
assert_raise(TypeError) { @img.fx('1/2', 1) }
|
727
|
+
end
|
728
|
+
|
717
729
|
def test_gamma_channel
|
718
730
|
assert_nothing_raised do
|
719
731
|
res = @img.gamma_channel(0.8)
|
@@ -765,8 +777,6 @@ class Image2_UT < Test::Unit::TestCase
|
|
765
777
|
|
766
778
|
def test_gramma_correct
|
767
779
|
assert_raise(ArgumentError) { @img.gamma_correct }
|
768
|
-
# All 4 arguments can't default to 1.0
|
769
|
-
assert_raise(ArgumentError) { @img.gamma_correct(1.0) }
|
770
780
|
assert_nothing_raised do
|
771
781
|
res = @img.gamma_correct(0.8)
|
772
782
|
assert_instance_of(Magick::Image, res)
|
data/test/Image3.rb
CHANGED
@@ -26,7 +26,8 @@ ColorspaceTypes = [
|
|
26
26
|
Magick::Rec601YCbCrColorspace,
|
27
27
|
Magick::Rec709LumaColorspace,
|
28
28
|
Magick::Rec709YCbCrColorspace,
|
29
|
-
Magick::LogColorspace
|
29
|
+
Magick::LogColorspace,
|
30
|
+
Magick::CMYColorspace
|
30
31
|
]
|
31
32
|
|
32
33
|
Filters = [
|
@@ -44,7 +45,16 @@ Filters = [
|
|
44
45
|
Magick::MitchellFilter,
|
45
46
|
Magick::LanczosFilter,
|
46
47
|
Magick::BesselFilter,
|
47
|
-
Magick::SincFilter
|
48
|
+
Magick::SincFilter,
|
49
|
+
Magick::JincFilter,
|
50
|
+
Magick::SincFastFilter,
|
51
|
+
Magick::LanczosSharpFilter,
|
52
|
+
Magick::Lanczos2Filter,
|
53
|
+
Magick::Lanczos2SharpFilter,
|
54
|
+
Magick::RobidouxFilter,
|
55
|
+
Magick::RobidouxSharpFilter,
|
56
|
+
Magick::CosineFilter,
|
57
|
+
Magick::SplineFilter
|
48
58
|
]
|
49
59
|
|
50
60
|
class Image3_UT < Test::Unit::TestCase
|
@@ -63,6 +73,8 @@ class Image3_UT < Test::Unit::TestCase
|
|
63
73
|
assert_nothing_raised { @img.profile!('icc', nil) }
|
64
74
|
assert_nothing_raised { @img.profile!('iptc', nil) }
|
65
75
|
|
76
|
+
assert_raise(ArgumentError) { @img.profile!('test', 'foobarbaz') }
|
77
|
+
|
66
78
|
@img.freeze
|
67
79
|
assert_raise(FreezeError) { @img.profile!('icc', 'xxx') }
|
68
80
|
assert_raise(FreezeError) { @img.profile!('*', nil) }
|
@@ -99,7 +111,26 @@ class Image3_UT < Test::Unit::TestCase
|
|
99
111
|
Magick::OrQuantumOperator,
|
100
112
|
Magick::RShiftQuantumOperator,
|
101
113
|
Magick::SubtractQuantumOperator,
|
102
|
-
Magick::XorQuantumOperator
|
114
|
+
Magick::XorQuantumOperator,
|
115
|
+
Magick::PowQuantumOperator,
|
116
|
+
Magick::LogQuantumOperator,
|
117
|
+
Magick::ThresholdQuantumOperator,
|
118
|
+
Magick::ThresholdBlackQuantumOperator,
|
119
|
+
Magick::ThresholdWhiteQuantumOperator,
|
120
|
+
Magick::GaussianNoiseQuantumOperator,
|
121
|
+
Magick::ImpulseNoiseQuantumOperator,
|
122
|
+
Magick::LaplacianNoiseQuantumOperator,
|
123
|
+
Magick::MultiplicativeNoiseQuantumOperator,
|
124
|
+
Magick::PoissonNoiseQuantumOperator,
|
125
|
+
Magick::UniformNoiseQuantumOperator,
|
126
|
+
Magick::CosineQuantumOperator,
|
127
|
+
Magick::SineQuantumOperator,
|
128
|
+
Magick::AddModulusQuantumOperator,
|
129
|
+
Magick::MeanQuantumOperator,
|
130
|
+
Magick::AbsQuantumOperator,
|
131
|
+
Magick::ExponentialQuantumOperator,
|
132
|
+
Magick::MedianQuantumOperator,
|
133
|
+
Magick::SumQuantumOperator
|
103
134
|
]
|
104
135
|
|
105
136
|
assert_nothing_raised do
|
@@ -161,6 +192,10 @@ class Image3_UT < Test::Unit::TestCase
|
|
161
192
|
assert_raise(TypeError) { @img.random_threshold_channel('20%', 2) }
|
162
193
|
end
|
163
194
|
|
195
|
+
def test_recolor
|
196
|
+
assert_raise(TypeError) { @img.recolor('x') }
|
197
|
+
end
|
198
|
+
|
164
199
|
def test_reduce_noise
|
165
200
|
assert_nothing_raised do
|
166
201
|
res = @img.reduce_noise(0)
|
@@ -785,6 +820,26 @@ class Image3_UT < Test::Unit::TestCase
|
|
785
820
|
assert_raise(FreezeError) { @img.thumbnail!(0.50) }
|
786
821
|
end
|
787
822
|
|
823
|
+
def test_tint
|
824
|
+
assert_nothing_raised do
|
825
|
+
pixels = @img.get_pixels(0, 0, 1, 1)
|
826
|
+
@img.tint(pixels[0], 1.0)
|
827
|
+
end
|
828
|
+
assert_nothing_raised { @img.tint('red', 1.0) }
|
829
|
+
assert_nothing_raised { @img.tint('red', 1.0, 1.0) }
|
830
|
+
assert_nothing_raised { @img.tint('red', 1.0, 1.0, 1.0) }
|
831
|
+
assert_nothing_raised { @img.tint('red', 1.0, 1.0, 1.0, 1.0) }
|
832
|
+
assert_raise(ArgumentError) { @img.tint }
|
833
|
+
assert_raise(ArgumentError) { @img.tint('red') }
|
834
|
+
assert_raise(ArgumentError) { @img.tint('red', 1.0, 1.0, 1.0, 1.0, 1.0) }
|
835
|
+
assert_raise(ArgumentError) { @img.tint('x', 1.0) }
|
836
|
+
assert_raise(TypeError) { @img.tint(1.0, 1.0) }
|
837
|
+
assert_raise(TypeError) { @img.tint('red', 'green') }
|
838
|
+
assert_raise(TypeError) { @img.tint('red', 1.0, 'green') }
|
839
|
+
assert_raise(TypeError) { @img.tint('red', 1.0, 1.0, 'green') }
|
840
|
+
assert_raise(TypeError) { @img.tint('red', 1.0, 1.0, 1.0, 'green') }
|
841
|
+
end
|
842
|
+
|
788
843
|
def test_to_blob
|
789
844
|
res = nil
|
790
845
|
assert_nothing_raised { res = @img.to_blob { self.format = 'miff' } }
|
@@ -1021,6 +1076,21 @@ class Image3_UT < Test::Unit::TestCase
|
|
1021
1076
|
img = Magick::Image.read('test.0')
|
1022
1077
|
assert_equal('JPEG', img.first.format)
|
1023
1078
|
FileUtils.rm('test.0')
|
1079
|
+
|
1080
|
+
@img.write('test.webp')
|
1081
|
+
img = Magick::Image.read('test.webp')
|
1082
|
+
assert_equal('WEBP', img.first.format)
|
1083
|
+
FileUtils.rm('test.webp') rescue nil # Avoid failure on AppVeyor
|
1084
|
+
|
1085
|
+
f = File.new('test.0', 'w')
|
1086
|
+
Magick::Image.new(100, 100).write(f) do
|
1087
|
+
self.format = 'JPEG'
|
1088
|
+
self.colorspace = Magick::CMYKColorspace
|
1089
|
+
end
|
1090
|
+
f.close
|
1091
|
+
img = Magick::Image.read('test.0')
|
1092
|
+
assert_equal('JPEG', img.first.format)
|
1093
|
+
FileUtils.rm('test.0')
|
1024
1094
|
end
|
1025
1095
|
end
|
1026
1096
|
|
data/test/ImageList1.rb
CHANGED
@@ -15,6 +15,15 @@ class ImageList1UT < Test::Unit::TestCase
|
|
15
15
|
@list2 << @list[9]
|
16
16
|
end
|
17
17
|
|
18
|
+
def test_composite_layers
|
19
|
+
assert_nothing_raised { @list.composite_layers(@list2) }
|
20
|
+
Magick::CompositeOperator.values do |op|
|
21
|
+
assert_nothing_raised { @list.composite_layers(@list2, op) }
|
22
|
+
end
|
23
|
+
|
24
|
+
assert_raise(ArgumentError) { @list.composite_layers(@list2, Magick::AddCompositeOp, 42) }
|
25
|
+
end
|
26
|
+
|
18
27
|
def test_delay
|
19
28
|
assert_nothing_raised { @list.delay }
|
20
29
|
assert_equal(0, @list.delay)
|
@@ -23,6 +32,10 @@ class ImageList1UT < Test::Unit::TestCase
|
|
23
32
|
assert_raise(ArgumentError) { @list.delay = 'x' }
|
24
33
|
end
|
25
34
|
|
35
|
+
def test_flatten_images
|
36
|
+
assert_nothing_raised { @list.flatten_images }
|
37
|
+
end
|
38
|
+
|
26
39
|
def test_ticks_per_second
|
27
40
|
assert_nothing_raised { @list.ticks_per_second }
|
28
41
|
assert_equal(100, @list.ticks_per_second)
|
@@ -33,7 +46,7 @@ class ImageList1UT < Test::Unit::TestCase
|
|
33
46
|
|
34
47
|
def test_iterations
|
35
48
|
assert_nothing_raised { @list.iterations }
|
36
|
-
|
49
|
+
assert_kind_of(Integer, @list.iterations)
|
37
50
|
assert_nothing_raised { @list.iterations = 20 }
|
38
51
|
assert_equal(20, @list.iterations)
|
39
52
|
assert_raise(ArgumentError) { @list.iterations = 'x' }
|
@@ -370,7 +383,7 @@ class ImageList1UT < Test::Unit::TestCase
|
|
370
383
|
@list.scene = 7
|
371
384
|
cur = @list.cur_image
|
372
385
|
assert_nothing_raised do
|
373
|
-
@list.delete_if { |img| img.filename =~ /5/ }
|
386
|
+
@list.delete_if { |img| File.basename(img.filename) =~ /5/ }
|
374
387
|
assert_instance_of(Magick::ImageList, @list)
|
375
388
|
assert_equal(9, @list.length)
|
376
389
|
assert_same(cur, @list.cur_image)
|
@@ -378,7 +391,7 @@ class ImageList1UT < Test::Unit::TestCase
|
|
378
391
|
|
379
392
|
# Delete the current image
|
380
393
|
assert_nothing_raised do
|
381
|
-
@list.delete_if { |img| img.filename =~ /7/ }
|
394
|
+
@list.delete_if { |img| File.basename(img.filename) =~ /7/ }
|
382
395
|
assert_instance_of(Magick::ImageList, @list)
|
383
396
|
assert_equal(8, @list.length)
|
384
397
|
assert_same(@list[-1], @list.cur_image)
|
@@ -441,7 +454,7 @@ class ImageList1UT < Test::Unit::TestCase
|
|
441
454
|
|
442
455
|
def find_all
|
443
456
|
assert_nothing_raised do
|
444
|
-
res = @list.select { |img| img.filename =~ /Button_2/ }
|
457
|
+
res = @list.select { |img| File.basename(img.filename) =~ /Button_2/ }
|
445
458
|
assert_instance_of(Magick::ImageList, res)
|
446
459
|
assert_equal(1, res.length)
|
447
460
|
assert_same(res[0], @list[2])
|
@@ -552,7 +565,7 @@ class ImageList1UT < Test::Unit::TestCase
|
|
552
565
|
cur = @list.cur_image
|
553
566
|
list = @list
|
554
567
|
assert_nothing_raised do
|
555
|
-
res = @list.reject { |img| img.filename =~ /Button_9/ }
|
568
|
+
res = @list.reject { |img| File.basename(img.filename) =~ /Button_9/ }
|
556
569
|
assert_equal(9, res.length)
|
557
570
|
assert_instance_of(Magick::ImageList, res)
|
558
571
|
assert_same(cur, res.cur_image)
|
@@ -561,7 +574,7 @@ class ImageList1UT < Test::Unit::TestCase
|
|
561
574
|
assert_same(cur, @list.cur_image)
|
562
575
|
|
563
576
|
# Omit current image from result list - result cur_image s/b last image
|
564
|
-
res = @list.reject { |img| img.filename =~ /Button_7/ }
|
577
|
+
res = @list.reject { |img| File.basename(img.filename) =~ /Button_7/ }
|
565
578
|
assert_equal(9, res.length)
|
566
579
|
assert_same(res[-1], res.cur_image)
|
567
580
|
assert_same(cur, @list.cur_image)
|
@@ -571,7 +584,7 @@ class ImageList1UT < Test::Unit::TestCase
|
|
571
584
|
@list.scene = 7
|
572
585
|
cur = @list.cur_image
|
573
586
|
assert_nothing_raised do
|
574
|
-
@list.reject! { |img| img.filename =~ /5/ }
|
587
|
+
@list.reject! { |img| File.basename(img.filename) =~ /5/ }
|
575
588
|
assert_instance_of(Magick::ImageList, @list)
|
576
589
|
assert_equal(9, @list.length)
|
577
590
|
assert_same(cur, @list.cur_image)
|
@@ -579,7 +592,7 @@ class ImageList1UT < Test::Unit::TestCase
|
|
579
592
|
|
580
593
|
# Delete the current image
|
581
594
|
assert_nothing_raised do
|
582
|
-
@list.reject! { |img| img.filename =~ /7/ }
|
595
|
+
@list.reject! { |img| File.basename(img.filename) =~ /7/ }
|
583
596
|
assert_instance_of(Magick::ImageList, @list)
|
584
597
|
assert_equal(8, @list.length)
|
585
598
|
assert_same(@list[-1], @list.cur_image)
|
@@ -668,7 +681,7 @@ class ImageList1UT < Test::Unit::TestCase
|
|
668
681
|
|
669
682
|
def test_select
|
670
683
|
assert_nothing_raised do
|
671
|
-
res = @list.select { |img| img.filename =~ /Button_2/ }
|
684
|
+
res = @list.select { |img| File.basename(img.filename) =~ /Button_2/ }
|
672
685
|
assert_instance_of(Magick::ImageList, res)
|
673
686
|
assert_equal(1, res.length)
|
674
687
|
assert_same(res[0], @list[2])
|