test/Image2.rb in rmagick-3.1.0 vs test/Image2.rb in rmagick-3.2.0
- old
+ new
@@ -1,26 +1,56 @@
#!/usr/bin/env ruby -w
require 'rmagick'
require 'test/unit'
-require 'test/unit/ui/console/testrunner' unless RUBY_VERSION[/^1\.9|^2/]
+require 'test/unit/ui/console/testrunner'
# TODO: improve exif tests - need a benchmark image with EXIF data
class Image2_UT < Test::Unit::TestCase
def setup
@img = Magick::Image.new(20, 20)
end
- def test_composite!
+ def test_composite
img1 = Magick::Image.read(IMAGES_DIR + '/Button_0.gif').first
img2 = Magick::Image.read(IMAGES_DIR + '/Button_1.gif').first
+ Magick::CompositeOperator.values do |op|
+ Magick::GravityType.values do |gravity|
+ assert_nothing_raised do
+ res = img1.composite(img2, gravity, 5, 5, op)
+ assert_not_same(img1, res)
+ end
+ end
+ end
+
assert_nothing_raised do
- res = img1.composite!(img2, Magick::NorthWestGravity, Magick::OverCompositeOp)
- assert_same(img1, res)
+ res = img1.composite(img2, 5, 5, Magick::OverCompositeOp)
+ assert_not_same(img1, res)
end
+
+ assert_raise(TypeError) { img1.composite(img2, 'x', 5, Magick::OverCompositeOp) }
+ assert_raise(TypeError) { img1.composite(img2, 5, 'y', Magick::OverCompositeOp) }
+ assert_raise(TypeError) { img1.composite(img2, Magick::NorthWestGravity, 'x', 5, Magick::OverCompositeOp) }
+ assert_raise(TypeError) { img1.composite(img2, Magick::NorthWestGravity, 5, 'y', Magick::OverCompositeOp) }
+
img1.freeze
+ assert_nothing_raised { img1.composite(img2, Magick::NorthWestGravity, Magick::OverCompositeOp) }
+ end
+
+ def test_composite!
+ img1 = Magick::Image.read(IMAGES_DIR + '/Button_0.gif').first
+ img2 = Magick::Image.read(IMAGES_DIR + '/Button_1.gif').first
+ Magick::CompositeOperator.values do |op|
+ Magick::GravityType.values do |gravity|
+ assert_nothing_raised do
+ res = img1.composite!(img2, gravity, op)
+ assert_same(img1, res)
+ end
+ end
+ end
+ img1.freeze
assert_raise(FreezeError) { img1.composite!(img2, Magick::NorthWestGravity, Magick::OverCompositeOp) }
end
def test_composite_affine
affine = Magick::AffineMatrix.new(1, 0, 1, 0, 0, 0)
@@ -31,10 +61,26 @@
assert_instance_of(Magick::Image, res)
assert_not_same(@img, res)
end
end
+ def test_composite_channel
+ img1 = Magick::Image.read(IMAGES_DIR + '/Button_0.gif').first
+ img2 = Magick::Image.read(IMAGES_DIR + '/Button_1.gif').first
+ Magick::CompositeOperator.values do |op|
+ Magick::GravityType.values do |gravity|
+ assert_nothing_raised do
+ res = img1.composite_channel(img2, gravity, 5, 5, op, Magick::BlueChannel)
+ assert_not_same(img1, res)
+ end
+ end
+ end
+
+ assert_raise(ArgumentError) { img1.composite_channel(img2, Magick::NorthWestGravity) }
+ assert_raise(TypeError) { img1.composite_channel(img2, Magick::NorthWestGravity, 5, 5, Magick::OverCompositeOp, 'x') }
+ end
+
def test_composite_mathematics
bg = Magick::Image.new(50, 50)
fg = Magick::Image.new(50, 50) { self.background_color = 'black' }
res = nil
assert_nothing_raised { res = bg.composite_mathematics(fg, 1, 0, 0, 0, Magick::CenterGravity) }
@@ -64,10 +110,14 @@
assert_nothing_raised { bg.composite_tiled(fg, Magick::AtopCompositeOp) }
assert_nothing_raised { bg.composite_tiled(fg, Magick::OverCompositeOp) }
assert_nothing_raised { bg.composite_tiled(fg, Magick::RedChannel) }
assert_nothing_raised { bg.composite_tiled(fg, Magick::RedChannel, Magick::GreenChannel) }
+ assert_raise(ArgumentError) { bg.composite_tiled }
+ assert_raise(TypeError) { bg.composite_tiled(fg, 'x') }
+ assert_raise(TypeError) { bg.composite_tiled(fg, Magick::AtopCompositeOp, Magick::RedChannel, 'x') }
+
fg.destroy!
assert_raise(Magick::DestroyedImageError) { bg.composite_tiled(fg) }
end
def test_compress_colormap!
@@ -105,10 +155,21 @@
assert_raise(ArgumentError) { @img.contrast_stretch_channel }
assert_raise(ArgumentError) { @img.contrast_stretch_channel('x') }
assert_raise(ArgumentError) { @img.contrast_stretch_channel(25, 'x') }
end
+ def test_morphology
+ kernel = Magick::KernelInfo.new('Octagon')
+ Magick::MorphologyMethod.values do |method|
+ assert_nothing_raised do
+ res = @img.morphology(method, 2, kernel)
+ assert_instance_of(Magick::Image, res)
+ assert_not_same(@img, res)
+ end
+ end
+ end
+
def test_morphology_channel
assert_raise(ArgumentError) { @img.morphology_channel }
assert_raise(ArgumentError) { @img.morphology_channel(Magick::RedChannel) }
assert_raise(ArgumentError) { @img.morphology_channel(Magick::RedChannel, Magick::EdgeOutMorphology) }
assert_raise(ArgumentError) { @img.morphology_channel(Magick::RedChannel, Magick::EdgeOutMorphology, 2) }
@@ -129,19 +190,23 @@
res = @img.convolve(order, kernel)
assert_instance_of(Magick::Image, res)
assert_not_same(@img, res)
end
assert_raise(ArgumentError) { @img.convolve }
+ assert_raise(ArgumentError) { @img.convolve(0) }
+ assert_raise(ArgumentError) { @img.convolve(-1) }
assert_raise(ArgumentError) { @img.convolve(order) }
assert_raise(IndexError) { @img.convolve(5, kernel) }
assert_raise(IndexError) { @img.convolve(order, 'x') }
assert_raise(TypeError) { @img.convolve(3, [1.0, 1.0, 1.0, 1.0, 'x', 1.0, 1.0, 1.0, 1.0]) }
- assert_raise(Magick::ImageMagickError) { @img.convolve(-1, [1.0, 1.0, 1.0, 1.0]) }
+ assert_raise(ArgumentError) { @img.convolve(-1, [1.0, 1.0, 1.0, 1.0]) }
end
def test_convolve_channel
assert_raise(ArgumentError) { @img.convolve_channel }
+ assert_raise(ArgumentError) { @img.convolve_channel(0) }
+ assert_raise(ArgumentError) { @img.convolve_channel(-1) }
assert_raise(ArgumentError) { @img.convolve_channel(3) }
kernel = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
order = 3
assert_nothing_raised do
res = @img.convolve_channel(order, kernel, Magick::RedChannel)
@@ -171,20 +236,13 @@
assert_nothing_raised do
res = @img.crop(0, 0, @img.columns / 2, @img.rows / 2)
assert_instance_of(Magick::Image, res)
assert_not_same(@img, res)
end
- gravity = [
- Magick::NorthEastGravity,
- Magick::EastGravity,
- Magick::SouthWestGravity,
- Magick::SouthGravity,
- Magick::SouthEastGravity
- ]
# 3-argument form
- gravity.each do |grav|
+ Magick::GravityType.values do |grav|
assert_nothing_raised { @img.crop(grav, @img.columns / 2, @img.rows / 2) }
end
assert_raise(TypeError) { @img.crop(2, @img.columns / 2, @img.rows / 2) }
assert_raise(TypeError) { @img.crop(Magick::NorthWestGravity, @img.columns / 2, @img.rows / 2, 2) }
@@ -194,11 +252,11 @@
assert_raise(TypeError) { @img.crop(0, 'x', @img.columns / 2, @img.rows / 2) }
assert_raise(TypeError) { @img.crop('x', 0, @img.columns / 2, @img.rows / 2) }
assert_raise(TypeError) { @img.crop(0, 0, @img.columns / 2, @img.rows / 2, 2) }
# 5-argument form
- gravity.each do |grav|
+ Magick::GravityType.values do |grav|
assert_nothing_raised { @img.crop(grav, 0, 0, @img.columns / 2, @img.rows / 2) }
end
assert_raise(ArgumentError) { @img.crop(Magick::NorthWestGravity, 0, 0, @img.columns / 2, @img.rows / 2, 2) }
end
@@ -237,10 +295,11 @@
end
def test_define
assert_nothing_raised { @img.define('deskew:auto-crop', 40) }
assert_nothing_raised { @img.undefine('deskew:auto-crop') }
+ assert_nothing_raised { @img.define('deskew:auto-crop', nil) }
end
def test_deskew
assert_nothing_raised do
res = @img.deskew
@@ -264,15 +323,11 @@
end
# ensure methods detect destroyed images
def test_destroy
methods = Magick::Image.instance_methods(false).sort
- methods -= if RUBY_VERSION[/^1\.9|^2/]
- %i[__display__ destroy! destroyed? inspect cur_image marshal_load]
- else
- %w[__display__ destroy! destroyed? inspect cur_image marshal_load]
- end
+ methods -= %i[__display__ destroy! destroyed? inspect cur_image marshal_load]
assert_equal(false, @img.destroyed?)
@img.destroy!
assert_equal(true, @img.destroyed?)
assert_raises(Magick::DestroyedImageError) { @img.check_destroyed }
@@ -286,12 +341,10 @@
elsif method == 'difference'
other = Magick::Image.new(20, 20)
assert_raises(Magick::DestroyedImageError) { @img.difference(other) }
elsif method == 'channel_entropy' && IM_VERSION < Gem::Version.new('6.9')
assert_raises(NotImplementedError) { @img.channel_entropy }
- elsif %w[morphology morphology_channel].include?(method)
- warn "skipped testing `#destroy` against `##{method}`"
elsif method == 'get_iptc_dataset'
assert_raises(Magick::DestroyedImageError) { @img.get_iptc_dataset('x') }
elsif method == 'profile!'
assert_raises(Magick::DestroyedImageError) { @img.profile!('x', 'y') }
elsif /=\Z/.match(method)
@@ -394,10 +447,11 @@
assert_nothing_raised { @img.dissolve(src, 0.50, 0.10, 10) }
assert_nothing_raised { @img.dissolve(src, 0.50, 0.10, Magick::NorthEastGravity) }
assert_nothing_raised { @img.dissolve(src, 0.50, 0.10, Magick::NorthEastGravity, 10) }
assert_nothing_raised { @img.dissolve(src, 0.50, 0.10, Magick::NorthEastGravity, 10, 10) }
+ assert_raise(ArgumentError) { @img.dissolve }
assert_raise(ArgumentError) { @img.dissolve(src, 'x') }
assert_raise(ArgumentError) { @img.dissolve(src, 0.50, 'x') }
assert_raise(TypeError) { @img.dissolve(src, 0.50, Magick::NorthEastGravity, 'x') }
assert_raise(TypeError) { @img.dissolve(src, 0.50, Magick::NorthEastGravity, 10, 'x') }
@@ -410,24 +464,26 @@
assert_nothing_raised { @img.distort(Magick::AffineDistortion, [2, 60, 2, 60, 32, 60, 32, 60, 2, 30, 17, 35]) }
assert_nothing_raised { @img.distort(Magick::AffineProjectionDistortion, [1, 0, 0, 1, 0, 0]) }
assert_nothing_raised { @img.distort(Magick::BilinearDistortion, [7, 40, 4, 30, 4, 124, 4, 123, 85, 122, 100, 123, 85, 2, 100, 30]) }
assert_nothing_raised { @img.distort(Magick::PerspectiveDistortion, [7, 40, 4, 30, 4, 124, 4, 123, 85, 122, 100, 123, 85, 2, 100, 30]) }
assert_nothing_raised { @img.distort(Magick::ScaleRotateTranslateDistortion, [28, 24, 0.4, 0.8 - 110, 37.5, 60]) }
+ assert_nothing_raised { @img.distort(Magick::ScaleRotateTranslateDistortion, [28, 24, 0.4, 0.8 - 110, 37.5, 60], true) }
assert_raise(ArgumentError) { @img.distort }
assert_raise(ArgumentError) { @img.distort(Magick::AffineDistortion) }
assert_raise(TypeError) { @img.distort(1, [1]) }
+ assert_raise(TypeError) { @img.distort(Magick::AffineDistortion, [2, 60, 2, 60, 32, 60, 32, 60, 2, 30, 17, 'x']) }
end
def test_distortion_channel
assert_nothing_raised do
metric = @img.distortion_channel(@img, Magick::MeanAbsoluteErrorMetric)
assert_instance_of(Float, metric)
assert_equal(0.0, metric)
end
assert_nothing_raised { @img.distortion_channel(@img, Magick::MeanSquaredErrorMetric) }
assert_nothing_raised { @img.distortion_channel(@img, Magick::PeakAbsoluteErrorMetric) }
- assert_nothing_raised { @img.distortion_channel(@img, Magick::PeakSignalToNoiseRatioMetric) }
+ assert_nothing_raised { @img.distortion_channel(@img, Magick::PeakSignalToNoiseRatioErrorMetric) }
assert_nothing_raised { @img.distortion_channel(@img, Magick::RootMeanSquaredErrorMetric) }
assert_nothing_raised { @img.distortion_channel(@img, Magick::MeanSquaredErrorMetric, Magick::RedChannel, Magick:: BlueChannel) }
assert_nothing_raised { @img.distortion_channel(@img, Magick::NormalizedCrossCorrelationErrorMetric) }
assert_nothing_raised { @img.distortion_channel(@img, Magick::FuzzErrorMetric) }
assert_raise(TypeError) { @img.distortion_channel(@img, 2) }
@@ -438,10 +494,22 @@
img = Magick::Image.new(20, 20)
img.destroy!
assert_raise(Magick::DestroyedImageError) { @img.distortion_channel(img, Magick::MeanSquaredErrorMetric) }
end
+ def test__dump
+ img = Magick::Image.read(IMAGES_DIR + '/Button_0.gif').first
+ assert_instance_of(String, img._dump(10))
+ end
+
+ def test__load
+ img = Magick::Image.read(IMAGES_DIR + '/Button_0.gif').first
+ res = img._dump(10)
+
+ assert_instance_of(Magick::Image, Magick::Image._load(res))
+ end
+
def test_dup
assert_nothing_raised do
ditto = @img.dup
assert_equal(@img, ditto)
end
@@ -618,12 +686,15 @@
assert_not_same(@img, res)
assert_equal(40, res.columns)
assert_equal(40, res.rows)
assert_nothing_raised { @img.extent(40, 40, 5) }
assert_nothing_raised { @img.extent(40, 40, 5, 5) }
+ assert_raises(ArgumentError) { @img.extent(-40) }
assert_raises(ArgumentError) { @img.extent(-40, 40) }
assert_raises(ArgumentError) { @img.extent(40, -40) }
+ assert_raises(ArgumentError) { @img.extent(40, 40, 5, 5, 0) }
+ assert_raises(ArgumentError) { @img.extent(0, 0, 5, 5) }
assert_raises(TypeError) { @img.extent('x', 40) }
assert_raises(TypeError) { @img.extent(40, 'x') }
assert_raises(TypeError) { @img.extent(40, 40, 'x') }
assert_raises(TypeError) { @img.extent(40, 40, 5, 'x') }
end
@@ -712,10 +783,11 @@
assert_nothing_raised { @img.frame(50, 50, 25, 25, 6, 6) }
assert_nothing_raised { @img.frame(50, 50, 25, 25, 6, 6, 'red') }
red = Magick::Pixel.new(Magick::QuantumRange)
assert_nothing_raised { @img.frame(50, 50, 25, 25, 6, 6, red) }
assert_raise(TypeError) { @img.frame(50, 50, 25, 25, 6, 6, 2) }
+ assert_raise(ArgumentError) { @img.frame(50, 50, 25, 25, 6, 6, red, 2) }
end
def test_fx
assert_nothing_raised { @img.fx('1/2') }
assert_nothing_raised { @img.fx('1/2', Magick::BlueChannel) }
@@ -860,10 +932,11 @@
assert_nothing_raised do
res = @img.implode(0.5)
assert_instance_of(Magick::Image, res)
assert_not_same(@img, res)
end
+ assert_raise(ArgumentError) { @img.implode(0.5, 0.5) }
end
def test_import_pixels
pixels = @img.export_pixels(0, 0, @img.columns, 1, 'RGB')
assert_nothing_raised do
@@ -915,10 +988,16 @@
assert_equal(img2, img1)
# Ensure that level2 uses new arg order
img1 = @img.level2(10, 200, 2)
assert_equal(img2, img1)
+
+ assert_nothing_raised { @img.level2 }
+ assert_nothing_raised { @img.level2(10) }
+ assert_nothing_raised { @img.level2(10, 10) }
+ assert_nothing_raised { @img.level2(10, 10, 10) }
+ assert_raise(ArgumentError) { @img.level2(10, 10, 10, 10) }
end
def test_level_channel
assert_raise(ArgumentError) { @img.level_channel }
assert_nothing_raised do
@@ -936,45 +1015,44 @@
assert_raise(TypeError) { @img.level_channel(Magick::RedChannel, 'x') }
assert_raise(TypeError) { @img.level_channel(Magick::RedChannel, 0.0, 'x') }
assert_raise(TypeError) { @img.level_channel(Magick::RedChannel, 0.0, 1.0, 'x') }
end
- def level_colors
+ def test_level_colors
res = nil
assert_nothing_raised do
res = @img.level_colors
end
assert_instance_of(Magick::Image, res)
assert_not_same(@img, res)
assert_nothing_raised { @img.level_colors('black') }
- assert_nothing_raised { @img.level_colors('black', Pixel.new(0, 0, 0)) }
- assert_nothing_raised { @img.level_colors(Pixel.new(0, 0, 0), Pixel.new(Magick::QuantumRange, Magick::QuantumRange, Magick::QuantumRange)) }
+ assert_nothing_raised { @img.level_colors('black', Magick::Pixel.new(0, 0, 0)) }
+ assert_nothing_raised { @img.level_colors(Magick::Pixel.new(0, 0, 0), Magick::Pixel.new(Magick::QuantumRange, Magick::QuantumRange, Magick::QuantumRange)) }
assert_nothing_raised { @img.level_colors('black', 'white') }
assert_nothing_raised { @img.level_colors('black', 'white', false) }
- # too many arguments
- assert_raises(ArgumentError) { @img.level_colors('black', 'white', false, 1) }
- # not a pixel or a string
- assert_raises(ArgumentError) { @img.level_colors([]) }
- # not a color name
+
+ assert_raises(TypeError) { @img.level_colors('black', 'white', false, 1) }
+ assert_raises(TypeError) { @img.level_colors([]) }
assert_raises(ArgumentError) { @img.level_colors('xxx') }
end
- def levelize_channel
+ def test_levelize_channel
res = nil
assert_nothing_raised do
res = @img.levelize_channel(0, Magick::QuantumRange)
end
assert_instance_of(Magick::Image, res)
assert_not_same(@img, res)
+ assert_nothing_raised { @img.levelize_channel(0) }
+ assert_nothing_raised { @img.levelize_channel(0, Magick::QuantumRange) }
assert_nothing_raised { @img.levelize_channel(0, Magick::QuantumRange, 0.5) }
assert_nothing_raised { @img.levelize_channel(0, Magick::QuantumRange, 0.5, Magick::RedChannel) }
assert_nothing_raised { @img.levelize_channel(0, Magick::QuantumRange, 0.5, Magick::RedChannel, Magick::BlueChannel) }
- # too many arguments
- assert_raise(ArgumentError) { @img.levelize_channel(0, Magick::QuantumRange, 0.5, 1, Magick::RedChannel) }
- # not enough arguments
+
+ assert_raise(TypeError) { @img.levelize_channel(0, Magick::QuantumRange, 0.5, 1, Magick::RedChannel) }
assert_raise(ArgumentError) { @img.levelize_channel }
end
# def test_liquid_rescale
# begin
@@ -1042,10 +1120,11 @@
assert_not_nil(res)
assert_not_same(cimg, res)
assert_equal(20, res.columns)
assert_equal(20, res.rows)
+ assert_raise(ArgumentError) { @img.mask(cimg, 'x') }
# mask expects an Image and calls `cur_image'
assert_raise(NoMethodError) { @img.mask = 2 }
img = @img.copy.freeze
assert_raise(FreezeError) { img.mask cimg }
@@ -1070,12 +1149,20 @@
res = @img.matte_floodfill(@img.columns / 2, @img.rows / 2)
assert_instance_of(Magick::Image, res)
assert_not_same(@img, res)
end
assert_nothing_raised { @img.matte_floodfill(@img.columns, @img.rows) }
+
+ Magick::PaintMethod.values do |method|
+ next if [Magick::FillToBorderMethod, Magick::FloodfillMethod].include?(method)
+
+ assert_raise(ArgumentError) { @img.matte_flood_fill('blue', Magick::TransparentAlpha, @img.columns, @img.rows, method) }
+ end
assert_raise(ArgumentError) { @img.matte_floodfill(@img.columns + 1, @img.rows) }
assert_raise(ArgumentError) { @img.matte_floodfill(@img.columns, @img.rows + 1) }
+ assert_nothing_raised { @img.matte_flood_fill('blue', @img.columns, @img.rows, Magick::FloodfillMethod, alpha: Magick::TransparentAlpha) }
+ assert_raise(ArgumentError) { @img.matte_flood_fill('blue', @img.columns, @img.rows, Magick::FloodfillMethod, wrong: Magick::TransparentAlpha) }
end
def test_matte_replace
assert_nothing_raised do
res = @img.matte_replace(@img.columns / 2, @img.rows / 2)
@@ -1120,10 +1207,11 @@
assert_not_same(@img, res)
end
assert_nothing_raised { @img.modulate(0.5) }
assert_nothing_raised { @img.modulate(0.5, 0.5) }
assert_nothing_raised { @img.modulate(0.5, 0.5, 0.5) }
+ assert_raise(ArgumentError) { @img.modulate(0.0, 0.5, 0.5) }
assert_raise(ArgumentError) { @img.modulate(0.5, 0.5, 0.5, 0.5) }
assert_raise(TypeError) { @img.modulate('x', 0.5, 0.5) }
assert_raise(TypeError) { @img.modulate(0.5, 'x', 0.5) }
assert_raise(TypeError) { @img.modulate(0.5, 0.5, 'x') }
end
@@ -1223,27 +1311,29 @@
end
assert_raise(TypeError) { @img.opaque_channel('red', 'blue', true, 50, 50) }
assert_raise(TypeError) { @img.opaque_channel('red', 'blue', true, []) }
assert_raise(ArgumentError) { @img.opaque_channel('red') }
+ assert_raise(ArgumentError) { @img.opaque_channel('red', 'blue', true, -0.1) }
assert_raise(TypeError) { @img.opaque_channel('red', []) }
end
def test_opaque?
assert_nothing_raised do
assert_block { @img.opaque? }
end
- @img.opacity = Magick::TransparentOpacity
+ @img.alpha(Magick::TransparentAlphaChannel)
assert_block { !@img.opaque? }
end
def test_ordered_dither
assert_nothing_raised do
res = @img.ordered_dither
assert_instance_of(Magick::Image, res)
assert_not_same(@img, res)
end
+ assert_nothing_raised { @img.ordered_dither('3x3') }
assert_nothing_raised { @img.ordered_dither(2) }
assert_nothing_raised { @img.ordered_dither(3) }
assert_nothing_raised { @img.ordered_dither(4) }
assert_raise(ArgumentError) { @img.ordered_dither(5) }
assert_raise(ArgumentError) { @img.ordered_dither(2, 1) }
@@ -1254,12 +1344,19 @@
assert_nothing_raised { res = @img.paint_transparent('red') }
assert_not_nil(res)
assert_instance_of(Magick::Image, res)
assert_not_same(res, @img)
assert_nothing_raised { @img.paint_transparent('red', Magick::TransparentOpacity) }
+ assert_nothing_raised { @img.paint_transparent('red', alpha: Magick::TransparentAlpha) }
+ assert_raise(ArgumentError) { @img.paint_transparent('red', wrong: Magick::TransparentAlpha) }
assert_nothing_raised { @img.paint_transparent('red', Magick::TransparentOpacity, true) }
+ assert_nothing_raised { @img.paint_transparent('red', true, alpha: Magick::TransparentAlpha) }
+ assert_raise(ArgumentError) { @img.paint_transparent('red', true, wrong: Magick::TransparentAlpha) }
+ assert_raise(ArgumentError) { @img.paint_transparent('red', true, alpha: Magick::TransparentAlpha, extra: Magick::TransparentAlpha) }
assert_nothing_raised { @img.paint_transparent('red', Magick::TransparentOpacity, true, 50) }
+ assert_nothing_raised { @img.paint_transparent('red', true, 50, alpha: Magick::TransparentAlpha) }
+ assert_raise(ArgumentError) { @img.paint_transparent('red', true, 50, wrong: Magick::TransparentAlpha) }
# Too many arguments
assert_raise(ArgumentError) { @img.paint_transparent('red', Magick::TransparentOpacity, true, 50, 50) }
# Not enough
assert_raise(ArgumentError) { @img.paint_transparent }
@@ -1292,17 +1389,24 @@
blue = Magick::Pixel.new(0, 0, Magick::QuantumRange)
assert_nothing_raised { @img.pixel_color(0, 0, blue) }
# If args are out-of-bounds return the background color
img = Magick::Image.new(10, 10) { self.background_color = 'blue' }
assert_equal('blue', img.pixel_color(50, 50).to_color)
+
+ assert_nothing_raised do
+ @img.class_type = Magick::PseudoClass
+ res = @img.pixel_color(0, 0, 'red')
+ assert_equal('blue', res.to_color)
+ end
end
def test_polaroid
assert_nothing_raised { @img.polaroid }
assert_nothing_raised { @img.polaroid(5) }
assert_instance_of(Magick::Image, @img.polaroid)
assert_raises(TypeError) { @img.polaroid('x') }
+ assert_raises(ArgumentError) { @img.polaroid(5, 'x') }
end
def test_posterize
assert_nothing_raised do
res = @img.posterize
@@ -1316,7 +1420,7 @@
end
if $PROGRAM_NAME == __FILE__
IMAGES_DIR = '../doc/ex/images'
FILES = Dir[IMAGES_DIR + '/Button_*.gif']
- Test::Unit::UI::Console::TestRunner.run(Image2UT) unless RUBY_VERSION[/^1\.9|^2/]
+ Test::Unit::UI::Console::TestRunner.run(Image2UT)
end