rmagick 3.1.0 → 3.2.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 +4 -4
- data/.circleci/config.yml +1 -1
- data/.gitignore +1 -0
- data/.rubocop_todo.yml +6 -0
- data/.travis.yml +26 -8
- data/CHANGELOG.md +104 -0
- data/before_install_linux.sh +19 -10
- data/benchmarks/memory/README.md +50 -0
- data/benchmarks/memory/image_new.rb +8 -0
- data/benchmarks/memory/rmagick.gnuplot +16 -0
- data/doc/ex/coalesce.rb +2 -2
- data/doc/ex/drawcomp.rb +3 -3
- data/doc/ex/get_pixels.rb +1 -1
- data/doc/ex/images/Coffee.png +0 -0
- data/doc/ex/images/No.png +0 -0
- data/doc/ex/images/Snake.png +0 -0
- data/doc/ex/implode.rb +2 -2
- data/doc/ex/mask.rb +1 -1
- data/doc/ex/matte_fill_to_border.rb +1 -1
- data/doc/ex/matte_floodfill.rb +1 -1
- data/doc/ex/matte_replace.rb +1 -1
- data/doc/ex/stegano.rb +1 -1
- data/examples/constitute.rb +1 -1
- data/examples/crop_with_gravity.rb +1 -1
- data/examples/demo.rb +4 -4
- data/examples/find_similar_region.rb +1 -1
- data/examples/histogram.rb +3 -3
- data/examples/identify.rb +46 -46
- data/examples/image_opacity.rb +2 -2
- data/examples/vignette.rb +3 -3
- data/ext/RMagick/extconf.rb +19 -15
- data/ext/RMagick/rmagick.c +1 -2
- data/ext/RMagick/rmagick.h +59 -30
- data/ext/RMagick/rmdraw.c +62 -274
- data/ext/RMagick/rmenum.c +121 -665
- data/ext/RMagick/rmfill.c +7 -7
- data/ext/RMagick/rmilist.c +91 -7
- data/ext/RMagick/rmimage.c +568 -379
- data/ext/RMagick/rminfo.c +152 -110
- data/ext/RMagick/rmkinfo.c +17 -1
- data/ext/RMagick/rmmain.c +75 -74
- data/ext/RMagick/rmmontage.c +33 -33
- data/ext/RMagick/rmpixel.c +75 -14
- data/ext/RMagick/rmstruct.c +5 -5
- data/ext/RMagick/rmutil.c +3 -13
- data/lib/obsolete.rb +66 -0
- data/lib/rmagick/version.rb +1 -1
- data/lib/rmagick_internal.rb +54 -41
- data/spec/rmagick/image/composite_spec.rb +5 -76
- data/spec/rmagick/image/properties_spec.rb +1 -1
- data/test/Draw.rb +52 -115
- data/test/Enum.rb +153 -1
- data/test/Fill.rb +1 -1
- data/test/Image1.rb +97 -43
- data/test/Image2.rb +140 -36
- data/test/Image3.rb +110 -120
- data/test/ImageList1.rb +46 -11
- data/test/ImageList2.rb +11 -21
- data/test/Image_attributes.rb +81 -127
- data/test/Import_Export.rb +2 -2
- data/test/Info.rb +5 -1
- data/test/KernelInfo.rb +67 -0
- data/test/Magick.rb +17 -35
- data/test/Pixel.rb +193 -24
- data/test/PolaroidOptions.rb +1 -1
- data/test/Preview.rb +3 -35
- data/test/Struct.rb +45 -0
- data/test/appearance/Montage.rb +26 -0
- data/test/appearance/appearance_assertion.rb +13 -0
- data/test/appearance/expected/montage_border_color.jpg +0 -0
- data/test/lib/Obsolete.rb +30 -0
- data/test/lib/internal/Draw.rb +823 -0
- data/test/lib/internal/Geometry.rb +98 -0
- data/test/lib/internal/Magick.rb +40 -0
- data/test/test_all_basic.rb +16 -17
- metadata +27 -5
- data/doc/ex/images/Coffee.wmf +0 -0
- data/doc/ex/images/No.wmf +0 -0
- data/doc/ex/images/Snake.wmf +0 -0
data/test/Image3.rb
CHANGED
@@ -2,61 +2,9 @@
|
|
2
2
|
|
3
3
|
require 'rmagick'
|
4
4
|
require 'test/unit'
|
5
|
-
require 'test/unit/ui/console/testrunner'
|
5
|
+
require 'test/unit/ui/console/testrunner'
|
6
6
|
require 'fileutils'
|
7
7
|
|
8
|
-
ColorspaceTypes = [
|
9
|
-
Magick::RGBColorspace,
|
10
|
-
Magick::GRAYColorspace,
|
11
|
-
Magick::TransparentColorspace,
|
12
|
-
Magick::OHTAColorspace,
|
13
|
-
Magick::LabColorspace,
|
14
|
-
Magick::XYZColorspace,
|
15
|
-
Magick::YCbCrColorspace,
|
16
|
-
Magick::YCCColorspace,
|
17
|
-
Magick::YIQColorspace,
|
18
|
-
Magick::YPbPrColorspace,
|
19
|
-
Magick::YUVColorspace,
|
20
|
-
Magick::CMYKColorspace,
|
21
|
-
Magick::SRGBColorspace,
|
22
|
-
Magick::HSLColorspace,
|
23
|
-
Magick::HWBColorspace,
|
24
|
-
Magick::HSBColorspace,
|
25
|
-
Magick::Rec601LumaColorspace,
|
26
|
-
Magick::Rec601YCbCrColorspace,
|
27
|
-
Magick::Rec709LumaColorspace,
|
28
|
-
Magick::Rec709YCbCrColorspace,
|
29
|
-
Magick::LogColorspace,
|
30
|
-
Magick::CMYColorspace
|
31
|
-
]
|
32
|
-
|
33
|
-
Filters = [
|
34
|
-
Magick::PointFilter,
|
35
|
-
Magick::BoxFilter,
|
36
|
-
Magick::TriangleFilter,
|
37
|
-
Magick::HermiteFilter,
|
38
|
-
Magick::HanningFilter,
|
39
|
-
Magick::HammingFilter,
|
40
|
-
Magick::BlackmanFilter,
|
41
|
-
Magick::GaussianFilter,
|
42
|
-
Magick::QuadraticFilter,
|
43
|
-
Magick::CubicFilter,
|
44
|
-
Magick::CatromFilter,
|
45
|
-
Magick::MitchellFilter,
|
46
|
-
Magick::LanczosFilter,
|
47
|
-
Magick::BesselFilter,
|
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
|
58
|
-
]
|
59
|
-
|
60
8
|
class Image3_UT < Test::Unit::TestCase
|
61
9
|
def setup
|
62
10
|
@img = Magick::Image.new(20, 20)
|
@@ -86,7 +34,7 @@ class Image3_UT < Test::Unit::TestCase
|
|
86
34
|
assert_instance_of(Magick::Image, res)
|
87
35
|
end
|
88
36
|
|
89
|
-
|
37
|
+
Magick::ColorspaceType.values do |cs|
|
90
38
|
assert_nothing_raised { @img.quantize(256, cs) }
|
91
39
|
end
|
92
40
|
assert_nothing_raised { @img.quantize(256, Magick::RGBColorspace, false) }
|
@@ -99,45 +47,15 @@ class Image3_UT < Test::Unit::TestCase
|
|
99
47
|
assert_raise(TypeError) { @img.quantize('x') }
|
100
48
|
assert_raise(TypeError) { @img.quantize(16, 2) }
|
101
49
|
assert_raise(TypeError) { @img.quantize(16, Magick::RGBColorspace, false, 'x') }
|
50
|
+
assert_raise(ArgumentError) { @img.quantize(256, Magick::RGBColorspace, true, 2, true, true) }
|
102
51
|
end
|
103
52
|
|
104
53
|
def test_quantum_operator
|
105
|
-
quantum_ops = [
|
106
|
-
Magick::AddQuantumOperator,
|
107
|
-
Magick::AndQuantumOperator,
|
108
|
-
Magick::DivideQuantumOperator,
|
109
|
-
Magick::LShiftQuantumOperator,
|
110
|
-
Magick::MultiplyQuantumOperator,
|
111
|
-
Magick::OrQuantumOperator,
|
112
|
-
Magick::RShiftQuantumOperator,
|
113
|
-
Magick::SubtractQuantumOperator,
|
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
|
134
|
-
]
|
135
|
-
|
136
54
|
assert_nothing_raised do
|
137
55
|
res = @img.quantum_operator(Magick::AddQuantumOperator, 2)
|
138
56
|
assert_instance_of(Magick::Image, res)
|
139
57
|
end
|
140
|
-
|
58
|
+
Magick::QuantumExpressionOperator.values do |op|
|
141
59
|
assert_nothing_raised { @img.quantum_operator(op, 2) }
|
142
60
|
end
|
143
61
|
assert_nothing_raised { @img.quantum_operator(Magick::AddQuantumOperator, 2, Magick::RedChannel) }
|
@@ -193,7 +111,9 @@ class Image3_UT < Test::Unit::TestCase
|
|
193
111
|
end
|
194
112
|
|
195
113
|
def test_recolor
|
114
|
+
assert_nothing_raised { @img.recolor([1, 1, 2, 1]) }
|
196
115
|
assert_raise(TypeError) { @img.recolor('x') }
|
116
|
+
assert_raise(TypeError) { @img.recolor([1, 1, 'x', 1]) }
|
197
117
|
end
|
198
118
|
|
199
119
|
def test_reduce_noise
|
@@ -242,7 +162,7 @@ class Image3_UT < Test::Unit::TestCase
|
|
242
162
|
assert_equal(240.0, girl.x_resolution)
|
243
163
|
assert_equal(240.0, girl.y_resolution)
|
244
164
|
|
245
|
-
|
165
|
+
Magick::FilterType.values do |filter|
|
246
166
|
assert_nothing_raised { @img.resample(50, 50, filter) }
|
247
167
|
end
|
248
168
|
assert_nothing_raised { @img.resample(50, 50, Magick::PointFilter, 2.0) }
|
@@ -272,7 +192,7 @@ class Image3_UT < Test::Unit::TestCase
|
|
272
192
|
end
|
273
193
|
assert_nothing_raised { @img.resize(50, 50) }
|
274
194
|
|
275
|
-
|
195
|
+
Magick::FilterType.values do |filter|
|
276
196
|
assert_nothing_raised { @img.resize(50, 50, filter) }
|
277
197
|
end
|
278
198
|
assert_nothing_raised { @img.resize(50, 50, Magick::PointFilter, 2.0) }
|
@@ -280,6 +200,9 @@ class Image3_UT < Test::Unit::TestCase
|
|
280
200
|
assert_raise(TypeError) { @img.resize(50, 'x') }
|
281
201
|
assert_raise(TypeError) { @img.resize(50, 50, 2) }
|
282
202
|
assert_raise(TypeError) { @img.resize(50, 50, Magick::CubicFilter, 'x') }
|
203
|
+
assert_raise(ArgumentError) { @img.resize(-1.0) }
|
204
|
+
assert_raise(ArgumentError) { @img.resize(0, 50) }
|
205
|
+
assert_raise(ArgumentError) { @img.resize(50, 0) }
|
283
206
|
assert_raise(ArgumentError) { @img.resize(50, 50, Magick::SincFilter, 2.0, 'x') }
|
284
207
|
assert_raise(ArgumentError) { @img.resize }
|
285
208
|
end
|
@@ -428,6 +351,9 @@ class Image3_UT < Test::Unit::TestCase
|
|
428
351
|
end
|
429
352
|
assert_nothing_raised { @img.sample(2) }
|
430
353
|
assert_raise(ArgumentError) { @img.sample }
|
354
|
+
assert_raise(ArgumentError) { @img.sample(0) }
|
355
|
+
assert_raise(ArgumentError) { @img.sample(0, 25) }
|
356
|
+
assert_raise(ArgumentError) { @img.sample(25, 0) }
|
431
357
|
assert_raise(ArgumentError) { @img.sample(25, 25, 25) }
|
432
358
|
assert_raise(TypeError) { @img.sample('x') }
|
433
359
|
assert_raise(TypeError) { @img.sample(10, 'x') }
|
@@ -470,17 +396,17 @@ class Image3_UT < Test::Unit::TestCase
|
|
470
396
|
end
|
471
397
|
|
472
398
|
# Don't test colorspaces that require PsuedoColor images
|
473
|
-
(
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
399
|
+
(Magick::ColorspaceType.values - [Magick::OHTAColorspace,
|
400
|
+
Magick::LabColorspace,
|
401
|
+
Magick::XYZColorspace,
|
402
|
+
Magick::YCbCrColorspace,
|
403
|
+
Magick::YCCColorspace,
|
404
|
+
Magick::YIQColorspace,
|
405
|
+
Magick::YPbPrColorspace,
|
406
|
+
Magick::YUVColorspace,
|
407
|
+
Magick::Rec601YCbCrColorspace,
|
408
|
+
Magick::Rec709YCbCrColorspace,
|
409
|
+
Magick::LogColorspace]).each do |cs|
|
484
410
|
assert_nothing_raised { @img.segment(cs) }
|
485
411
|
end
|
486
412
|
|
@@ -505,8 +431,15 @@ class Image3_UT < Test::Unit::TestCase
|
|
505
431
|
assert_nothing_raised { @img.selective_blur_channel(0, 1, '10%', Magick::RedChannel) }
|
506
432
|
assert_nothing_raised { @img.selective_blur_channel(0, 1, '10%', Magick::RedChannel, Magick::BlueChannel) }
|
507
433
|
assert_nothing_raised { @img.selective_blur_channel(0, 1, '10%', Magick::RedChannel, Magick::BlueChannel, Magick::GreenChannel) }
|
508
|
-
|
434
|
+
|
509
435
|
assert_raise(ArgumentError) { @img.selective_blur_channel(0, 1) }
|
436
|
+
assert_raise(TypeError) { @img.selective_blur_channel(0, 1, 0.1, '10%') }
|
437
|
+
end
|
438
|
+
|
439
|
+
def test_separate
|
440
|
+
assert_instance_of(Magick::ImageList, @img.separate)
|
441
|
+
assert_instance_of(Magick::ImageList, @img.separate(Magick::BlueChannel))
|
442
|
+
assert_raise(TypeError) { @img.separate('x') }
|
510
443
|
end
|
511
444
|
|
512
445
|
def test_sepiatone
|
@@ -520,23 +453,7 @@ class Image3_UT < Test::Unit::TestCase
|
|
520
453
|
end
|
521
454
|
|
522
455
|
def test_set_channel_depth
|
523
|
-
|
524
|
-
Magick::RedChannel,
|
525
|
-
Magick::GrayChannel,
|
526
|
-
Magick::CyanChannel,
|
527
|
-
Magick::GreenChannel,
|
528
|
-
Magick::MagentaChannel,
|
529
|
-
Magick::BlueChannel,
|
530
|
-
Magick::YellowChannel,
|
531
|
-
# Magick::AlphaChannel,
|
532
|
-
Magick::OpacityChannel,
|
533
|
-
Magick::MatteChannel,
|
534
|
-
Magick::BlackChannel,
|
535
|
-
Magick::IndexChannel,
|
536
|
-
Magick::AllChannels
|
537
|
-
]
|
538
|
-
|
539
|
-
channels.each do |ch|
|
456
|
+
Magick::ChannelType.values do |ch|
|
540
457
|
assert_nothing_raised { @img.set_channel_depth(ch, 8) }
|
541
458
|
end
|
542
459
|
end
|
@@ -656,6 +573,8 @@ class Image3_UT < Test::Unit::TestCase
|
|
656
573
|
assert_instance_of(Magick::Image, res)
|
657
574
|
end
|
658
575
|
assert_nothing_raised { @img.solarize(100) }
|
576
|
+
assert_raise(ArgumentError) { @img.solarize(-100) }
|
577
|
+
assert_raise(ArgumentError) { @img.solarize(Magick::QuantumRange + 1) }
|
659
578
|
assert_raise(ArgumentError) { @img.solarize(100, 2) }
|
660
579
|
assert_raise(TypeError) { @img.solarize('x') }
|
661
580
|
end
|
@@ -687,6 +606,9 @@ class Image3_UT < Test::Unit::TestCase
|
|
687
606
|
args.shift
|
688
607
|
args.shift # too few
|
689
608
|
assert_raise(ArgumentError) { img.sparse_color(Magick::VoronoiColorInterpolate, *args) }
|
609
|
+
|
610
|
+
args = [30, 10, 'red', 10, 80, 'blue', 70, 60, 'lime', 80, '20', 'yellow']
|
611
|
+
assert_raise(TypeError) { img.sparse_color(Magick::VoronoiColorInterpolate, *args) }
|
690
612
|
end
|
691
613
|
|
692
614
|
def test_splice
|
@@ -779,6 +701,14 @@ class Image3_UT < Test::Unit::TestCase
|
|
779
701
|
assert_instance_of(Magick::Image, res)
|
780
702
|
end
|
781
703
|
assert_raise(NoMethodError) { @img.texture_fill_to_border(@img.columns / 2, @img.rows / 2, 'x') }
|
704
|
+
assert_raise(ArgumentError) { @img.texture_fill_to_border(@img.columns * 2, @img.rows, texture) }
|
705
|
+
assert_raise(ArgumentError) { @img.texture_fill_to_border(@img.columns, @img.rows * 2, texture) }
|
706
|
+
|
707
|
+
Magick::PaintMethod.values do |method|
|
708
|
+
next if [Magick::FillToBorderMethod, Magick::FloodfillMethod].include?(method)
|
709
|
+
|
710
|
+
assert_raise(ArgumentError) { @img.texture_flood_fill('blue', texture, @img.columns, @img.rows, method) }
|
711
|
+
end
|
782
712
|
end
|
783
713
|
|
784
714
|
def test_texture_floodfill
|
@@ -806,9 +736,21 @@ class Image3_UT < Test::Unit::TestCase
|
|
806
736
|
end
|
807
737
|
assert_nothing_raised { @img.thumbnail(2) }
|
808
738
|
assert_raise(ArgumentError) { @img.thumbnail }
|
739
|
+
assert_raise(ArgumentError) { @img.thumbnail(-1.0) }
|
740
|
+
assert_raise(ArgumentError) { @img.thumbnail(0, 25) }
|
741
|
+
assert_raise(ArgumentError) { @img.thumbnail(25, 0) }
|
809
742
|
assert_raise(ArgumentError) { @img.thumbnail(25, 25, 25) }
|
810
743
|
assert_raise(TypeError) { @img.thumbnail('x') }
|
811
744
|
assert_raise(TypeError) { @img.thumbnail(10, 'x') }
|
745
|
+
|
746
|
+
girl = Magick::Image.read(IMAGES_DIR + '/Flower_Hat.jpg').first
|
747
|
+
new_img = girl.thumbnail(200, 200)
|
748
|
+
assert_equal(160, new_img.columns)
|
749
|
+
assert_equal(200, new_img.rows)
|
750
|
+
|
751
|
+
new_img = girl.thumbnail(2)
|
752
|
+
assert_equal(400, new_img.columns)
|
753
|
+
assert_equal(500, new_img.rows)
|
812
754
|
end
|
813
755
|
|
814
756
|
def test_thumbnail!
|
@@ -833,6 +775,10 @@ class Image3_UT < Test::Unit::TestCase
|
|
833
775
|
assert_raise(ArgumentError) { @img.tint('red') }
|
834
776
|
assert_raise(ArgumentError) { @img.tint('red', 1.0, 1.0, 1.0, 1.0, 1.0) }
|
835
777
|
assert_raise(ArgumentError) { @img.tint('x', 1.0) }
|
778
|
+
assert_raise(ArgumentError) { @img.tint('red', -1.0, 1.0, 1.0, 1.0) }
|
779
|
+
assert_raise(ArgumentError) { @img.tint('red', 1.0, -1.0, 1.0, 1.0) }
|
780
|
+
assert_raise(ArgumentError) { @img.tint('red', 1.0, 1.0, -1.0, 1.0) }
|
781
|
+
assert_raise(ArgumentError) { @img.tint('red', 1.0, 1.0, 1.0, -1.0) }
|
836
782
|
assert_raise(TypeError) { @img.tint(1.0, 1.0) }
|
837
783
|
assert_raise(TypeError) { @img.tint('red', 'green') }
|
838
784
|
assert_raise(TypeError) { @img.tint('red', 1.0, 'green') }
|
@@ -864,11 +810,27 @@ class Image3_UT < Test::Unit::TestCase
|
|
864
810
|
pixel = Magick::Pixel.new
|
865
811
|
assert_nothing_raised { @img.transparent(pixel) }
|
866
812
|
assert_nothing_raised { @img.transparent('white', Magick::TransparentOpacity) }
|
813
|
+
assert_nothing_raised { @img.transparent('white', alpha: Magick::TransparentAlpha) }
|
814
|
+
assert_raise(ArgumentError) { @img.transparent('white', wrong: Magick::TransparentAlpha) }
|
815
|
+
assert_raise(ArgumentError) { @img.transparent('white', alpha: Magick::TransparentAlpha, extra: Magick::TransparentAlpha) }
|
867
816
|
assert_raise(ArgumentError) { @img.transparent('white', Magick::TransparentOpacity, 2) }
|
868
817
|
assert_nothing_raised { @img.transparent('white', Magick::QuantumRange / 2) }
|
869
818
|
assert_raise(TypeError) { @img.transparent(2) }
|
870
819
|
end
|
871
820
|
|
821
|
+
def test_transparent_chroma
|
822
|
+
assert_instance_of(Magick::Image, @img.transparent_chroma('white', Magick::Pixel.new(Magick::QuantumRange)))
|
823
|
+
assert_nothing_raised { @img.transparent_chroma('white', Magick::Pixel.new(Magick::QuantumRange)) }
|
824
|
+
assert_nothing_raised { @img.transparent_chroma('white', Magick::Pixel.new(Magick::QuantumRange), Magick::TransparentOpacity) }
|
825
|
+
assert_nothing_raised { @img.transparent_chroma('white', Magick::Pixel.new(Magick::QuantumRange), alpha: Magick::TransparentAlpha) }
|
826
|
+
assert_raise(ArgumentError) { @img.transparent_chroma('white', Magick::Pixel.new(Magick::QuantumRange), wrong: Magick::TransparentAlpha) }
|
827
|
+
assert_nothing_raised { @img.transparent_chroma('white', Magick::Pixel.new(Magick::QuantumRange), Magick::TransparentOpacity, true) }
|
828
|
+
assert_nothing_raised { @img.transparent_chroma('white', Magick::Pixel.new(Magick::QuantumRange), Magick::TransparentOpacity, false) }
|
829
|
+
assert_nothing_raised { @img.transparent_chroma('white', Magick::Pixel.new(Magick::QuantumRange), false, alpha: Magick::TransparentAlpha) }
|
830
|
+
assert_raise(ArgumentError) { @img.transparent_chroma('white', Magick::Pixel.new(Magick::QuantumRange), false, wrong: Magick::TransparentAlpha) }
|
831
|
+
assert_raise(ArgumentError) { @img.transparent_chroma('white', Magick::Pixel.new(Magick::QuantumRange), false, alpha: Magick::TransparentAlpha, extra: Magick::TransparentAlpha) }
|
832
|
+
end
|
833
|
+
|
872
834
|
def test_transpose
|
873
835
|
assert_nothing_raised do
|
874
836
|
res = @img.transpose
|
@@ -899,13 +861,19 @@ class Image3_UT < Test::Unit::TestCase
|
|
899
861
|
# Can't use the default image because it's a solid color
|
900
862
|
hat = Magick::Image.read(IMAGES_DIR + '/Flower_Hat.jpg').first
|
901
863
|
assert_nothing_raised do
|
902
|
-
|
903
|
-
assert_instance_of(Magick::Image,
|
864
|
+
assert_instance_of(Magick::Image, hat.trim)
|
865
|
+
assert_instance_of(Magick::Image, hat.trim(10))
|
904
866
|
end
|
867
|
+
assert_raise(ArgumentError) { hat.trim(10, 10) }
|
868
|
+
|
905
869
|
assert_nothing_raised do
|
906
870
|
res = hat.trim!
|
907
871
|
assert_same(hat, res)
|
872
|
+
|
873
|
+
res = hat.trim!(10)
|
874
|
+
assert_same(hat, res)
|
908
875
|
end
|
876
|
+
assert_raise(ArgumentError) { hat.trim!(10, 10) }
|
909
877
|
end
|
910
878
|
|
911
879
|
def test_unique_colors
|
@@ -928,6 +896,10 @@ class Image3_UT < Test::Unit::TestCase
|
|
928
896
|
assert_nothing_raised { @img.unsharp_mask(2.0, 1.0, 0.50) }
|
929
897
|
assert_nothing_raised { @img.unsharp_mask(2.0, 1.0, 0.50, 0.10) }
|
930
898
|
assert_raise(ArgumentError) { @img.unsharp_mask(2.0, 1.0, 0.50, 0.10, 2) }
|
899
|
+
assert_raise(ArgumentError) { @img.unsharp_mask(-2.0, 1.0, 0.50, 0.10) }
|
900
|
+
assert_raise(ArgumentError) { @img.unsharp_mask(2.0, 0.0, 0.50, 0.10) }
|
901
|
+
assert_raise(ArgumentError) { @img.unsharp_mask(2.0, 1.0, 0.0, 0.10) }
|
902
|
+
assert_raise(ArgumentError) { @img.unsharp_mask(2.0, 1.0, 0.01, -0.10) }
|
931
903
|
assert_raise(TypeError) { @img.unsharp_mask('x') }
|
932
904
|
assert_raise(TypeError) { @img.unsharp_mask(2.0, 'x') }
|
933
905
|
assert_raise(TypeError) { @img.unsharp_mask(2.0, 1.0, 'x') }
|
@@ -1000,8 +972,10 @@ class Image3_UT < Test::Unit::TestCase
|
|
1000
972
|
assert_nothing_raised { @img.watermark(mark, 0.50, 0.50, Magick::NorthEastGravity, 10) }
|
1001
973
|
assert_nothing_raised { @img.watermark(mark, 0.50, 0.50, Magick::NorthEastGravity, 10, 10) }
|
1002
974
|
|
975
|
+
assert_raise(ArgumentError) { @img.watermark }
|
1003
976
|
assert_raise(ArgumentError) { @img.watermark(mark, 'x') }
|
1004
977
|
assert_raise(ArgumentError) { @img.watermark(mark, 0.50, 'x') }
|
978
|
+
assert_raise(ArgumentError) { @img.watermark(mark, 0.50, '1500%') }
|
1005
979
|
assert_raise(TypeError) { @img.watermark(mark, 0.50, 0.50, 'x') }
|
1006
980
|
assert_raise(TypeError) { @img.watermark(mark, 0.50, 0.50, Magick::NorthEastGravity, 'x') }
|
1007
981
|
assert_raise(TypeError) { @img.watermark(mark, 0.50, 0.50, Magick::NorthEastGravity, 10, 'x') }
|
@@ -1022,12 +996,28 @@ class Image3_UT < Test::Unit::TestCase
|
|
1022
996
|
assert_raise(TypeError) { @img.wave(25, 'x') }
|
1023
997
|
end
|
1024
998
|
|
999
|
+
def test_wet_floor
|
1000
|
+
assert_instance_of(Magick::Image, @img.wet_floor)
|
1001
|
+
assert_nothing_raised { @img.wet_floor(0.0) }
|
1002
|
+
assert_nothing_raised { @img.wet_floor(0.5) }
|
1003
|
+
assert_nothing_raised { @img.wet_floor(0.5, 10) }
|
1004
|
+
assert_nothing_raised { @img.wet_floor(0.5, 0.0) }
|
1005
|
+
|
1006
|
+
assert_raise(ArgumentError) { @img.wet_floor(2.0) }
|
1007
|
+
assert_raise(ArgumentError) { @img.wet_floor(-2.0) }
|
1008
|
+
assert_raise(ArgumentError) { @img.wet_floor(0.5, -1.0) }
|
1009
|
+
assert_raise(ArgumentError) { @img.wet_floor(0.5, 10, 0.5) }
|
1010
|
+
end
|
1011
|
+
|
1025
1012
|
def test_white_threshold
|
1026
1013
|
assert_raise(ArgumentError) { @img.white_threshold }
|
1027
1014
|
assert_nothing_raised { @img.white_threshold(50) }
|
1028
1015
|
assert_nothing_raised { @img.white_threshold(50, 50) }
|
1029
1016
|
assert_nothing_raised { @img.white_threshold(50, 50, 50) }
|
1030
1017
|
assert_nothing_raised { @img.white_threshold(50, 50, 50, 50) }
|
1018
|
+
assert_nothing_raised { @img.white_threshold(50, 50, 50, alpha: 50) }
|
1019
|
+
assert_raise(ArgumentError) { @img.white_threshold(50, 50, 50, wrong: 50) }
|
1020
|
+
assert_raise(ArgumentError) { @img.white_threshold(50, 50, 50, alpha: 50, extra: 50) }
|
1031
1021
|
assert_raise(ArgumentError) { @img.white_threshold(50, 50, 50, 50, 50) }
|
1032
1022
|
res = @img.white_threshold(50)
|
1033
1023
|
assert_instance_of(Magick::Image, res)
|
@@ -1097,5 +1087,5 @@ end
|
|
1097
1087
|
if $PROGRAM_NAME == __FILE__
|
1098
1088
|
IMAGES_DIR = '../doc/ex/images'
|
1099
1089
|
FILES = Dir[IMAGES_DIR + '/Button_*.gif']
|
1100
|
-
Test::Unit::UI::Console::TestRunner.run(Image3UT)
|
1090
|
+
Test::Unit::UI::Console::TestRunner.run(Image3UT)
|
1101
1091
|
end
|
data/test/ImageList1.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'rmagick'
|
4
4
|
require 'test/unit'
|
5
|
-
require 'test/unit/ui/console/testrunner'
|
5
|
+
require 'test/unit/ui/console/testrunner'
|
6
6
|
|
7
7
|
class ImageList1UT < Test::Unit::TestCase
|
8
8
|
def setup
|
@@ -15,13 +15,56 @@ class ImageList1UT < Test::Unit::TestCase
|
|
15
15
|
@list2 << @list[9]
|
16
16
|
end
|
17
17
|
|
18
|
+
def test_combine
|
19
|
+
red = Magick::Image.new(20, 20) { self.background_color = 'red' }
|
20
|
+
green = Magick::Image.new(20, 20) { self.background_color = 'green' }
|
21
|
+
blue = Magick::Image.new(20, 20) { self.background_color = 'blue' }
|
22
|
+
black = Magick::Image.new(20, 20) { self.background_color = 'black' }
|
23
|
+
alpha = Magick::Image.new(20, 20) { self.background_color = 'transparent' }
|
24
|
+
|
25
|
+
list = Magick::ImageList.new
|
26
|
+
assert_raise(ArgumentError) { list.combine }
|
27
|
+
|
28
|
+
list << red
|
29
|
+
assert_nothing_raised { list.combine }
|
30
|
+
|
31
|
+
res = list.combine
|
32
|
+
assert_instance_of(Magick::Image, res)
|
33
|
+
|
34
|
+
list << alpha
|
35
|
+
assert_nothing_raised { list.combine }
|
36
|
+
|
37
|
+
list.pop
|
38
|
+
list << green
|
39
|
+
list << blue
|
40
|
+
assert_nothing_raised { list.combine }
|
41
|
+
|
42
|
+
list << alpha
|
43
|
+
assert_nothing_raised { list.combine }
|
44
|
+
|
45
|
+
list.pop
|
46
|
+
list << black
|
47
|
+
assert_nothing_raised { list.combine(Magick::CMYKColorspace) }
|
48
|
+
assert_nothing_raised { list.combine(Magick::SRGBColorspace) }
|
49
|
+
|
50
|
+
list << alpha
|
51
|
+
assert_nothing_raised { list.combine(Magick::CMYKColorspace) }
|
52
|
+
assert_raise(ArgumentError) { list.combine(Magick::SRGBColorspace) }
|
53
|
+
|
54
|
+
list << alpha
|
55
|
+
assert_raise(ArgumentError) { list.combine }
|
56
|
+
|
57
|
+
assert_raise(TypeError) { list.combine(nil) }
|
58
|
+
assert_raise(ArgumentError) { list.combine(Magick::SRGBColorspace, 1) }
|
59
|
+
end
|
60
|
+
|
18
61
|
def test_composite_layers
|
19
62
|
assert_nothing_raised { @list.composite_layers(@list2) }
|
20
63
|
Magick::CompositeOperator.values do |op|
|
21
64
|
assert_nothing_raised { @list.composite_layers(@list2, op) }
|
22
65
|
end
|
23
66
|
|
24
|
-
assert_raise(ArgumentError) { @list.composite_layers(@list2, Magick::
|
67
|
+
assert_raise(ArgumentError) { @list.composite_layers(@list2, Magick::ModulusAddCompositeOp, 42) }
|
25
68
|
end
|
26
69
|
|
27
70
|
def test_delay
|
@@ -511,14 +554,6 @@ class ImageList1UT < Test::Unit::TestCase
|
|
511
554
|
assert_raise(ArgumentError) { @list.map! { 2 } }
|
512
555
|
end
|
513
556
|
|
514
|
-
unless RUBY_VERSION[/^1\.9|^2/]
|
515
|
-
def test_nitems
|
516
|
-
n = nil
|
517
|
-
assert_nothing_raised { n = @list.nitems }
|
518
|
-
assert_equal(10, n)
|
519
|
-
end
|
520
|
-
end
|
521
|
-
|
522
557
|
def test_partition
|
523
558
|
a = nil
|
524
559
|
n = -1
|
@@ -819,5 +854,5 @@ end
|
|
819
854
|
if $PROGRAM_NAME == __FILE__
|
820
855
|
IMAGES_DIR = '../doc/ex/images'
|
821
856
|
FILES = Dir[IMAGES_DIR + '/Button_*.gif'].sort
|
822
|
-
Test::Unit::UI::Console::TestRunner.run(ImageList1UT)
|
857
|
+
Test::Unit::UI::Console::TestRunner.run(ImageList1UT)
|
823
858
|
end
|