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