test/Image2.rb in rmagick-2.15.3 vs test/Image2.rb in rmagick-2.15.4

- old
+ new

@@ -5,961 +5,961 @@ require 'test/unit/ui/console/testrunner' unless RUBY_VERSION[/^1\.9|^2/] # TODO: improve exif tests - need a benchmark image with EXIF data class Image2_UT < Test::Unit::TestCase - FreezeError = RUBY_VERSION[/^1\.9|^2/] ? RuntimeError : TypeError + FreezeError = RUBY_VERSION[/^1\.9|^2/] ? RuntimeError : TypeError - def setup - @img = Magick::Image.new(20, 20) - end + def setup + @img = Magick::Image.new(20, 20) + end - def test_composite! - img1 = Magick::Image.read(IMAGES_DIR+'/Button_0.gif').first - img2 = Magick::Image.read(IMAGES_DIR+'/Button_1.gif').first - assert_nothing_raised do - res = img1.composite!(img2, Magick::NorthWestGravity, Magick::OverCompositeOp) - assert_same(img1, res) - end - img1.freeze - assert_raise(FreezeError) { img1.composite!(img2, Magick::NorthWestGravity, Magick::OverCompositeOp) } + def test_composite! + img1 = Magick::Image.read(IMAGES_DIR+'/Button_0.gif').first + img2 = Magick::Image.read(IMAGES_DIR+'/Button_1.gif').first + assert_nothing_raised do + res = img1.composite!(img2, Magick::NorthWestGravity, Magick::OverCompositeOp) + assert_same(img1, res) 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) - img1 = Magick::Image.read(IMAGES_DIR+'/Button_0.gif').first - img2 = Magick::Image.read(IMAGES_DIR+'/Button_1.gif').first - assert_nothing_raised do - res = img1.composite_affine(img2, affine) - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end + def test_composite_affine + affine = Magick::AffineMatrix.new(1, 0, 1, 0, 0, 0) + img1 = Magick::Image.read(IMAGES_DIR+'/Button_0.gif').first + img2 = Magick::Image.read(IMAGES_DIR+'/Button_1.gif').first + assert_nothing_raised do + res = img1.composite_affine(img2, affine) + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + 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) } - assert_instance_of(Magick::Image, res) - assert_not_same(bg, res) - assert_not_same(fg, res) - assert_nothing_raised { res = bg.composite_mathematics(fg, 1, 0, 0, 0, 0.0, 0.0) } - assert_nothing_raised { res = bg.composite_mathematics(fg, 1, 0, 0, 0, Magick::CenterGravity, 0.0, 0.0) } + 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) } + assert_instance_of(Magick::Image, res) + assert_not_same(bg, res) + assert_not_same(fg, res) + assert_nothing_raised { res = bg.composite_mathematics(fg, 1, 0, 0, 0, 0.0, 0.0) } + assert_nothing_raised { res = bg.composite_mathematics(fg, 1, 0, 0, 0, Magick::CenterGravity, 0.0, 0.0) } - # too few arguments - assert_raise(ArgumentError) { bg.composite_mathematics(fg, 1, 0, 0, 0) } - # too many arguments - assert_raise(ArgumentError) { bg.composite_mathematics(fg, 1, 0, 0, 0, Magick::CenterGravity, 0.0, 0.0, 'x') } + # too few arguments + assert_raise(ArgumentError) { bg.composite_mathematics(fg, 1, 0, 0, 0) } + # too many arguments + assert_raise(ArgumentError) { bg.composite_mathematics(fg, 1, 0, 0, 0, Magick::CenterGravity, 0.0, 0.0, 'x') } + end + + def test_composite_tiled + bg = Magick::Image.new(200,200) + fg = Magick::Image.new(50,100) { self.background_color = 'black' } + res = nil + assert_nothing_raised do + res = bg.composite_tiled(fg) end + assert_instance_of(Magick::Image, res) + assert_not_same(bg, res) + assert_not_same(fg, res) + assert_nothing_raised { bg.composite_tiled!(fg) } + 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) } - def test_composite_tiled - bg = Magick::Image.new(200,200) - fg = Magick::Image.new(50,100) { self.background_color = 'black' } - res = nil - assert_nothing_raised do - res = bg.composite_tiled(fg) - end - assert_instance_of(Magick::Image, res) - assert_not_same(bg, res) - assert_not_same(fg, res) - assert_nothing_raised { bg.composite_tiled!(fg) } - 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) } + fg.destroy! + assert_raise(Magick::DestroyedImageError) { bg.composite_tiled(fg) } + end - fg.destroy! - assert_raise(Magick::DestroyedImageError) { bg.composite_tiled(fg) } - end + def test_compress_colormap! + # DirectClass images are converted to PseudoClass + assert_equal(Magick::DirectClass, @img.class_type) + assert_nothing_raised { @img.compress_colormap! } + assert_equal(Magick::PseudoClass, @img.class_type) + img = Magick::Image.read(IMAGES_DIR+'/Button_0.gif').first + assert_equal(Magick::PseudoClass, @img.class_type) + assert_nothing_raised { @img.compress_colormap! } + end - def test_compress_colormap! - # DirectClass images are converted to PseudoClass - assert_equal(Magick::DirectClass, @img.class_type) - assert_nothing_raised { @img.compress_colormap! } - assert_equal(Magick::PseudoClass, @img.class_type) - img = Magick::Image.read(IMAGES_DIR+'/Button_0.gif').first - assert_equal(Magick::PseudoClass, @img.class_type) - assert_nothing_raised { @img.compress_colormap! } + def test_contrast + assert_nothing_raised do + res = @img.contrast + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + assert_nothing_raised { @img.contrast(true) } + assert_raise(ArgumentError) { @img.contrast(true, 2) } + end - def test_contrast - assert_nothing_raised do - res = @img.contrast - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - assert_nothing_raised { @img.contrast(true) } - assert_raise(ArgumentError) { @img.contrast(true, 2) } + def test_contrast_stretch_channel + assert_nothing_raised do + res = @img.contrast_stretch_channel(25) + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + assert_nothing_raised { @img.contrast_stretch_channel(25, 50) } + assert_nothing_raised { @img.contrast_stretch_channel('10%') } + assert_nothing_raised { @img.contrast_stretch_channel('10%', '50%') } + assert_nothing_raised { @img.contrast_stretch_channel(25, 50, Magick::RedChannel) } + assert_nothing_raised { @img.contrast_stretch_channel(25, 50, Magick::RedChannel, Magick::GreenChannel) } + assert_raise(TypeError) { @img.contrast_stretch_channel(25, 50, 'x') } + 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_contrast_stretch_channel - assert_nothing_raised do - res = @img.contrast_stretch_channel(25) - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - assert_nothing_raised { @img.contrast_stretch_channel(25, 50) } - assert_nothing_raised { @img.contrast_stretch_channel('10%') } - assert_nothing_raised { @img.contrast_stretch_channel('10%', '50%') } - assert_nothing_raised { @img.contrast_stretch_channel(25, 50, Magick::RedChannel) } - assert_nothing_raised { @img.contrast_stretch_channel(25, 50, Magick::RedChannel, Magick::GreenChannel) } - assert_raise(TypeError) { @img.contrast_stretch_channel(25, 50, 'x') } - assert_raise(ArgumentError) { @img.contrast_stretch_channel } - assert_raise(ArgumentError) { @img.contrast_stretch_channel('x') } - assert_raise(ArgumentError) { @img.contrast_stretch_channel(25, 'x') } + def test_convolve + 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(order, kernel) + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + assert_raise(ArgumentError) { @img.convolve } + 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]) } + end - def test_convolve - 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(order, kernel) - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - assert_raise(ArgumentError) { @img.convolve } - 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]) } + def test_convolve_channel + assert_raise(ArgumentError) { @img.convolve_channel } + 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) + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end - def test_convolve_channel - assert_raise(ArgumentError) { @img.convolve_channel } - 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) - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end + assert_nothing_raised { @img.convolve_channel(order, kernel, Magick::RedChannel, Magick:: BlueChannel) } + assert_raise(TypeError) { @img.convolve_channel(order, kernel, Magick::RedChannel, 2) } + end - assert_nothing_raised { @img.convolve_channel(order, kernel, Magick::RedChannel, Magick:: BlueChannel) } - assert_raise(TypeError) { @img.convolve_channel(order, kernel, Magick::RedChannel, 2) } + def test_copy + assert_nothing_raised do + ditto = @img.copy + assert_equal(@img, ditto) end + ditto = @img.copy + assert_equal(@img.tainted?, ditto.tainted?) + @img.taint + ditto = @img.copy + assert_equal(@img.tainted?, ditto.tainted?) + end - def test_copy - assert_nothing_raised do - ditto = @img.copy - assert_equal(@img, ditto) - end - ditto = @img.copy - assert_equal(@img.tainted?, ditto.tainted?) - @img.taint - ditto = @img.copy - assert_equal(@img.tainted?, ditto.tainted?) + def test_crop + assert_raise(ArgumentError) { @img.crop } + assert_raise(ArgumentError) { @img.crop(0, 0) } + 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] - def test_crop - assert_raise(ArgumentError) { @img.crop } - assert_raise(ArgumentError) { @img.crop(0, 0) } - 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| + 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) } - # 3-argument form - gravity.each 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) } + # 4-argument form + assert_raise(TypeError) { @img.crop(0, 0, @img.columns/2, 'x') } + assert_raise(TypeError) { @img.crop(0, 0, 'x', @img.rows/2) } + 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) } - # 4-argument form - assert_raise(TypeError) { @img.crop(0, 0, @img.columns/2, 'x') } - assert_raise(TypeError) { @img.crop(0, 0, 'x', @img.rows/2) } - 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| + assert_nothing_raised { @img.crop(grav, 0, 0, @img.columns/2, @img.rows/2) } + end - # 5-argument form - gravity.each 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 - assert_raise(ArgumentError) { @img.crop(Magick::NorthWestGravity, 0, 0, @img.columns/2, @img.rows/2, 2) } + def test_crop! + assert_nothing_raised do + res = @img.crop!(0, 0, @img.columns/2, @img.rows/2) + assert_same(@img, res) end + end - def test_crop! - assert_nothing_raised do - res = @img.crop!(0, 0, @img.columns/2, @img.rows/2) - assert_same(@img, res) - end + def test_cycle_colormap + assert_nothing_raised do + res = @img.cycle_colormap(5) + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) + assert_equal(Magick::PseudoClass, res.class_type) end + end - def test_cycle_colormap - assert_nothing_raised do - res = @img.cycle_colormap(5) - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - assert_equal(Magick::PseudoClass, res.class_type) - end + def test_decipher # tests encipher, too. + res = res2 = nil + assert_nothing_raised do + res = @img.encipher 'passphrase' + res2 = res.decipher 'passphrase' end + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) + assert_equal(@img.columns, res.columns) + assert_equal(@img.rows, res.rows) + assert_instance_of(Magick::Image, res2) + assert_not_same(@img, res2) + assert_equal(@img.columns, res2.columns) + assert_equal(@img.rows, res2.rows) + assert_equal(@img, res2) + end - def test_decipher # tests encipher, too. - res = res2 = nil - assert_nothing_raised do - res = @img.encipher 'passphrase' - res2 = res.decipher 'passphrase' - end - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - assert_equal(@img.columns, res.columns) - assert_equal(@img.rows, res.rows) - assert_instance_of(Magick::Image, res2) - assert_not_same(@img, res2) - assert_equal(@img.columns, res2.columns) - assert_equal(@img.rows, res2.rows) - assert_equal(@img, res2) - end + def test_define + assert_nothing_raised { @img.define('deskew:auto-crop', 40) } + assert_nothing_raised { @img.undefine('deskew:auto-crop') } + end - def test_define - assert_nothing_raised { @img.define('deskew:auto-crop', 40) } - assert_nothing_raised { @img.undefine('deskew:auto-crop') } + def test_deskew + assert_nothing_raised do + res = @img.deskew + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end - def test_deskew - assert_nothing_raised do - res = @img.deskew - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end + assert_nothing_raised { @img.deskew(0.10) } + assert_nothing_raised { @img.deskew('95%') } + assert_raise(ArgumentError) { @img.deskew('x') } + assert_raise(TypeError) {@img.deskew(0.40, 'x') } + assert_raise(ArgumentError) {@img.deskew(0.40, 20, [1]) } + end - assert_nothing_raised { @img.deskew(0.10) } - assert_nothing_raised { @img.deskew('95%') } - assert_raise(ArgumentError) { @img.deskew('x') } - assert_raise(TypeError) {@img.deskew(0.40, 'x') } - assert_raise(ArgumentError) {@img.deskew(0.40, 20, [1]) } + def test_despeckle + assert_nothing_raised do + res = @img.despeckle + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + end - def test_despeckle - assert_nothing_raised do - res = @img.despeckle - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end + # ensure methods detect destroyed images + def test_destroy + methods = Magick::Image.instance_methods(false).sort + if RUBY_VERSION[/^1\.9|^2/] + methods -= [:__display__, :destroy!, :destroyed?, :inspect, :cur_image, :marshal_load] + else + methods -= %w{ __display__ destroy! destroyed? inspect cur_image marshal_load} end - # ensure methods detect destroyed images - def test_destroy - methods = Magick::Image.instance_methods(false).sort - if RUBY_VERSION[/^1\.9|^2/] - methods -= [:__display__, :destroy!, :destroyed?, :inspect, :cur_image, :marshal_load] - else - methods -= %w{ __display__ destroy! destroyed? inspect cur_image marshal_load} - end + assert_equal(false, @img.destroyed?) + @img.destroy! + assert_equal(true, @img.destroyed?) + assert_raises(Magick::DestroyedImageError) { @img.check_destroyed } - assert_equal(false, @img.destroyed?) - @img.destroy! - assert_equal(true, @img.destroyed?) - assert_raises(Magick::DestroyedImageError) { @img.check_destroyed } + methods.each do |method| + arity = @img.method(method).arity + method = method.to_s - methods.each do |method| - arity = @img.method(method).arity - method = method.to_s - - case - when method == '[]=' - assert_raises(Magick::DestroyedImageError) { @img['foo'] = 1 } - when method == 'difference' - other = Magick::Image.new(20,20) - assert_raises(Magick::DestroyedImageError) { @img.difference(other) } - when method == 'get_iptc_dataset' - assert_raises(Magick::DestroyedImageError) { @img.get_iptc_dataset('x') } - when method == 'profile!' - assert_raises(Magick::DestroyedImageError) { @img.profile!('x', 'y') } - when /=\Z/.match(method) - assert_raises(Magick::DestroyedImageError) { @img.send(method, 1) } - when arity == 0 - assert_raises(Magick::DestroyedImageError) { @img.send(method) } - when arity < 0 - args = (1..(-arity)).to_a - assert_raises(Magick::DestroyedImageError) { @img.send(method, *args) } - when arity > 0 - args = (1..(arity)).to_a - assert_raises(Magick::DestroyedImageError) { @img.send(method, *args) } - else - # Don't know how to test! - flunk("don't know how to test method #{method}") - end - end + case + when method == '[]=' + assert_raises(Magick::DestroyedImageError) { @img['foo'] = 1 } + when method == 'difference' + other = Magick::Image.new(20,20) + assert_raises(Magick::DestroyedImageError) { @img.difference(other) } + when method == 'get_iptc_dataset' + assert_raises(Magick::DestroyedImageError) { @img.get_iptc_dataset('x') } + when method == 'profile!' + assert_raises(Magick::DestroyedImageError) { @img.profile!('x', 'y') } + when /=\Z/.match(method) + assert_raises(Magick::DestroyedImageError) { @img.send(method, 1) } + when arity == 0 + assert_raises(Magick::DestroyedImageError) { @img.send(method) } + when arity < 0 + args = (1..(-arity)).to_a + assert_raises(Magick::DestroyedImageError) { @img.send(method, *args) } + when arity > 0 + args = (1..(arity)).to_a + assert_raises(Magick::DestroyedImageError) { @img.send(method, *args) } + else + # Don't know how to test! + flunk("don't know how to test method #{method}") end + end + end - # ensure destroy! works - def test_destroy2 - images = {} - GC.disable + # ensure destroy! works + def test_destroy2 + images = {} + GC.disable - Magick.trace_proc = proc do |which, id, addr, method| - m = id.split(/ /) - name = File.basename m[0] - format = m[1] - size = m[2] - geometry = m[3] - image_class = m[4] + Magick.trace_proc = proc do |which, id, addr, method| + m = id.split(/ /) + name = File.basename m[0] + format = m[1] + size = m[2] + geometry = m[3] + image_class = m[4] - assert(which == :c || which == :d, "unexpected value for which: #{which}") - assert_equal(:destroy!, method) if which == :d + assert(which == :c || which == :d, "unexpected value for which: #{which}") + assert_equal(:destroy!, method) if which == :d - if which == :c - assert(!images.has_key?(addr), 'duplicate image addresses') - images[addr] = name - else - assert(images.has_key?(addr), 'destroying image that was not created') - assert_equal(name, images[addr]) - end - end - - unmapped = Magick::ImageList.new(IMAGES_DIR+'/Hot_Air_Balloons.jpg', IMAGES_DIR+'/Violin.jpg', IMAGES_DIR+'/Polynesia.jpg') - map = Magick::ImageList.new 'netscape:' - mapped = unmapped.map map, false - unmapped.each {|i| i.destroy!} - map.destroy! - mapped.each {|i| i.destroy!} - ensure - GC.enable - Magick.trace_proc = nil + if which == :c + assert(!images.has_key?(addr), 'duplicate image addresses') + images[addr] = name + else + assert(images.has_key?(addr), 'destroying image that was not created') + assert_equal(name, images[addr]) end + end - def test_difference - img1 = Magick::Image.read(IMAGES_DIR+'/Button_0.gif').first - img2 = Magick::Image.read(IMAGES_DIR+'/Button_1.gif').first - assert_nothing_raised do - res = img1.difference(img2) - assert_instance_of(Array, res) - assert_equal(3, res.length) - assert_instance_of(Float, res[0]) - assert_instance_of(Float, res[1]) - assert_instance_of(Float, res[2]) - end + unmapped = Magick::ImageList.new(IMAGES_DIR+'/Hot_Air_Balloons.jpg', IMAGES_DIR+'/Violin.jpg', IMAGES_DIR+'/Polynesia.jpg') + map = Magick::ImageList.new 'netscape:' + mapped = unmapped.map map, false + unmapped.each {|i| i.destroy!} + map.destroy! + mapped.each {|i| i.destroy!} + ensure + GC.enable + Magick.trace_proc = nil + end - assert_raise(NoMethodError) { img1.difference(2) } - img2.destroy! - assert_raise(Magick::DestroyedImageError) { img1.difference(img2) } + def test_difference + img1 = Magick::Image.read(IMAGES_DIR+'/Button_0.gif').first + img2 = Magick::Image.read(IMAGES_DIR+'/Button_1.gif').first + assert_nothing_raised do + res = img1.difference(img2) + assert_instance_of(Array, res) + assert_equal(3, res.length) + assert_instance_of(Float, res[0]) + assert_instance_of(Float, res[1]) + assert_instance_of(Float, res[2]) end - def test_displace - @img2 = Magick::Image.new(20,20) {self.background_color = 'black'} - assert_nothing_raised { @img.displace(@img2, 25) } - res = @img.displace(@img2, 25) - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - assert_nothing_raised { @img.displace(@img2, 25, 25) } - assert_nothing_raised { @img.displace(@img2, 25, 25, 10) } - assert_nothing_raised { @img.displace(@img2, 25, 25, 10, 10) } - assert_nothing_raised { @img.displace(@img2, 25, 25, Magick::CenterGravity) } - assert_nothing_raised { @img.displace(@img2, 25, 25, Magick::CenterGravity, 10) } - assert_nothing_raised { @img.displace(@img2, 25, 25, Magick::CenterGravity, 10, 10) } - assert_raise(ArgumentError) { @img.displace } - assert_raise(TypeError) { @img.displace(@img2, 'x') } - assert_raise(TypeError) { @img.displace(@img2, 25, []) } - assert_raise(TypeError) { @img.displace(@img2, 25, 25, 'x') } - assert_raise(TypeError) { @img.displace(@img2, 25, 25, Magick::CenterGravity, 'x') } - assert_raise(TypeError) { @img.displace(@img2, 25, 25, Magick::CenterGravity, 10, []) } + assert_raise(NoMethodError) { img1.difference(2) } + img2.destroy! + assert_raise(Magick::DestroyedImageError) { img1.difference(img2) } + end - @img2.destroy! - assert_raise(Magick::DestroyedImageError) { @img.displace(@img2, 25, 25) } - end + def test_displace + @img2 = Magick::Image.new(20,20) {self.background_color = 'black'} + assert_nothing_raised { @img.displace(@img2, 25) } + res = @img.displace(@img2, 25) + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) + assert_nothing_raised { @img.displace(@img2, 25, 25) } + assert_nothing_raised { @img.displace(@img2, 25, 25, 10) } + assert_nothing_raised { @img.displace(@img2, 25, 25, 10, 10) } + assert_nothing_raised { @img.displace(@img2, 25, 25, Magick::CenterGravity) } + assert_nothing_raised { @img.displace(@img2, 25, 25, Magick::CenterGravity, 10) } + assert_nothing_raised { @img.displace(@img2, 25, 25, Magick::CenterGravity, 10, 10) } + assert_raise(ArgumentError) { @img.displace } + assert_raise(TypeError) { @img.displace(@img2, 'x') } + assert_raise(TypeError) { @img.displace(@img2, 25, []) } + assert_raise(TypeError) { @img.displace(@img2, 25, 25, 'x') } + assert_raise(TypeError) { @img.displace(@img2, 25, 25, Magick::CenterGravity, 'x') } + assert_raise(TypeError) { @img.displace(@img2, 25, 25, Magick::CenterGravity, 10, []) } - def test_dissolve - src = Magick::Image.new(@img.columns, @img.rows) - src_list = Magick::ImageList.new - src_list << src.copy - assert_nothing_raised { @img.dissolve(src, 0.50) } - assert_nothing_raised { @img.dissolve(src_list, 0.50) } - assert_nothing_raised { @img.dissolve(src, '50%') } - assert_nothing_raised { @img.dissolve(src, 0.50, 0.10) } - 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) } + @img2.destroy! + assert_raise(Magick::DestroyedImageError) { @img.displace(@img2, 25, 25) } + end - 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') } + def test_dissolve + src = Magick::Image.new(@img.columns, @img.rows) + src_list = Magick::ImageList.new + src_list << src.copy + assert_nothing_raised { @img.dissolve(src, 0.50) } + assert_nothing_raised { @img.dissolve(src_list, 0.50) } + assert_nothing_raised { @img.dissolve(src, '50%') } + assert_nothing_raised { @img.dissolve(src, 0.50, 0.10) } + 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) } - src.destroy! - assert_raise(Magick::DestroyedImageError) { @img.dissolve(src, 0.50) } - end + 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') } - def test_distort - @img = Magick::Image.new(200, 200) - 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_raise(ArgumentError) { @img.distort } - assert_raise(ArgumentError) { @img.distort(Magick::AffineDistortion) } - assert_raise(TypeError) { @img.distort(1, [1]) } - end + src.destroy! + assert_raise(Magick::DestroyedImageError) { @img.dissolve(src, 0.50) } + 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::RootMeanSquaredErrorMetric) } - assert_nothing_raised { @img.distortion_channel(@img, Magick::MeanSquaredErrorMetric, Magick::RedChannel, Magick:: BlueChannel) } - assert_raise(TypeError) { @img.distortion_channel(@img, 2) } - assert_raise(TypeError) { @img.distortion_channel(@img, Magick::RootMeanSquaredErrorMetric, 2) } - assert_raise(ArgumentError) { @img.distortion_channel } - assert_raise(ArgumentError) { @img.distortion_channel(@img) } + def test_distort + @img = Magick::Image.new(200, 200) + 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_raise(ArgumentError) { @img.distort } + assert_raise(ArgumentError) { @img.distort(Magick::AffineDistortion) } + assert_raise(TypeError) { @img.distort(1, [1]) } + end - img = Magick::Image.new(20,20) - img.destroy! - assert_raise(Magick::DestroyedImageError) { @img.distortion_channel(img, Magick::MeanSquaredErrorMetric) } + 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::RootMeanSquaredErrorMetric) } + assert_nothing_raised { @img.distortion_channel(@img, Magick::MeanSquaredErrorMetric, Magick::RedChannel, Magick:: BlueChannel) } + assert_raise(TypeError) { @img.distortion_channel(@img, 2) } + assert_raise(TypeError) { @img.distortion_channel(@img, Magick::RootMeanSquaredErrorMetric, 2) } + assert_raise(ArgumentError) { @img.distortion_channel } + assert_raise(ArgumentError) { @img.distortion_channel(@img) } - def test_dup - assert_nothing_raised do - ditto = @img.dup - assert_equal(@img, ditto) - end - ditto = @img.dup - assert_equal(@img.tainted?, ditto.tainted?) - @img.taint - ditto = @img.dup - assert_equal(@img.tainted?, ditto.tainted?) + img = Magick::Image.new(20,20) + img.destroy! + assert_raise(Magick::DestroyedImageError) { @img.distortion_channel(img, Magick::MeanSquaredErrorMetric) } + end + + def test_dup + assert_nothing_raised do + ditto = @img.dup + assert_equal(@img, ditto) end + ditto = @img.dup + assert_equal(@img.tainted?, ditto.tainted?) + @img.taint + ditto = @img.dup + assert_equal(@img.tainted?, ditto.tainted?) + end - def test_each_profile - @img.iptc_profile = 'test profile' - assert_nothing_raised do - @img.each_profile do |name, value| - assert_equal('iptc', name) - # As of 6.3.1 - if IM_VERSION < Gem::Version.new('6.6.4') || (IM_VERSION == Gem::Version.new('6.6.4') && IM_REVISION < Gem::Version.new('5')) - assert_equal("8BIM\004\004\000\000\000\000\001\340test profile", value) - else - assert_equal('test profile', value) - end - end + def test_each_profile + @img.iptc_profile = 'test profile' + assert_nothing_raised do + @img.each_profile do |name, value| + assert_equal('iptc', name) + # As of 6.3.1 + if IM_VERSION < Gem::Version.new('6.6.4') || (IM_VERSION == Gem::Version.new('6.6.4') && IM_REVISION < Gem::Version.new('5')) + assert_equal("8BIM\004\004\000\000\000\000\001\340test profile", value) + else + assert_equal('test profile', value) end end + end + end - def test_edge - assert_nothing_raised do - res = @img.edge - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - assert_nothing_raised { @img.edge(2.0) } - assert_raise(ArgumentError) { @img.edge(2.0, 2) } - assert_raise(TypeError) { @img.edge('x') } + def test_edge + assert_nothing_raised do + res = @img.edge + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + assert_nothing_raised { @img.edge(2.0) } + assert_raise(ArgumentError) { @img.edge(2.0, 2) } + assert_raise(TypeError) { @img.edge('x') } + end - def test_emboss - assert_nothing_raised do - res = @img.emboss - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - assert_nothing_raised { @img.emboss(1.0) } - assert_nothing_raised { @img.emboss(1.0, 0.5) } - assert_raise(ArgumentError) { @img.emboss(1.0, 0.5, 2) } - assert_raise(TypeError) { @img.emboss(1.0, 'x') } - assert_raise(TypeError) { @img.emboss('x', 1.0) } + def test_emboss + assert_nothing_raised do + res = @img.emboss + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + assert_nothing_raised { @img.emboss(1.0) } + assert_nothing_raised { @img.emboss(1.0, 0.5) } + assert_raise(ArgumentError) { @img.emboss(1.0, 0.5, 2) } + assert_raise(TypeError) { @img.emboss(1.0, 'x') } + assert_raise(TypeError) { @img.emboss('x', 1.0) } + end - def test_enhance - assert_nothing_raised do - res = @img.enhance - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end + def test_enhance + assert_nothing_raised do + res = @img.enhance + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + end - def test_equalize - assert_nothing_raised do - res = @img.equalize - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end + def test_equalize + assert_nothing_raised do + res = @img.equalize + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + end - def test_equalize_channel - assert_nothing_raised do - res = @img.equalize_channel - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - assert_nothing_raised { @img.equalize_channel } - assert_nothing_raised { @img.equalize_channel(Magick::RedChannel) } - assert_nothing_raised { @img.equalize_channel(Magick::RedChannel, Magick::BlueChannel) } - assert_raise(TypeError) { @img.equalize_channel(Magick::RedChannel, 2) } + def test_equalize_channel + assert_nothing_raised do + res = @img.equalize_channel + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + assert_nothing_raised { @img.equalize_channel } + assert_nothing_raised { @img.equalize_channel(Magick::RedChannel) } + assert_nothing_raised { @img.equalize_channel(Magick::RedChannel, Magick::BlueChannel) } + assert_raise(TypeError) { @img.equalize_channel(Magick::RedChannel, 2) } + end - def test_erase! - assert_nothing_raised do - res = @img.erase! - assert_same(@img, res) - end + def test_erase! + assert_nothing_raised do + res = @img.erase! + assert_same(@img, res) end + end - def test_excerpt - res = nil - img = Magick::Image.new(200, 200) - assert_nothing_raised { res = @img.excerpt(20,20,50,100) } - assert_not_same(img, res) - assert_equal(50, res.columns) - assert_equal(100, res.rows) + def test_excerpt + res = nil + img = Magick::Image.new(200, 200) + assert_nothing_raised { res = @img.excerpt(20,20,50,100) } + assert_not_same(img, res) + assert_equal(50, res.columns) + assert_equal(100, res.rows) - assert_nothing_raised { img.excerpt!(20,20,50,100) } - assert_equal(50, img.columns) - assert_equal(100, img.rows) + assert_nothing_raised { img.excerpt!(20,20,50,100) } + assert_equal(50, img.columns) + assert_equal(100, img.rows) + end + + def test_export_pixels + assert_nothing_raised do + res = @img.export_pixels + assert_instance_of(Array, res) + assert_equal(@img.columns*@img.rows*'RGB'.length, res.length) + res.each do |p| + assert_kind_of(Integer, p) end + end + assert_nothing_raised { res = @img.export_pixels(0) } + assert_nothing_raised { res = @img.export_pixels(0, 0) } + assert_nothing_raised { res = @img.export_pixels(0, 0, 10) } + assert_nothing_raised { res = @img.export_pixels(0, 0, 10, 10) } + assert_nothing_raised do + res = @img.export_pixels(0, 0, 10, 10, 'RGBA') + assert_equal(10*10*'RGBA'.length, res.length) + end + assert_nothing_raised do + res = @img.export_pixels(0, 0, 10, 10, 'I') + assert_equal(10*10*'I'.length, res.length) + end - def test_export_pixels - assert_nothing_raised do - res = @img.export_pixels - assert_instance_of(Array, res) - assert_equal(@img.columns*@img.rows*'RGB'.length, res.length) - res.each do |p| - assert_kind_of(Integer, p) - end - end - assert_nothing_raised { res = @img.export_pixels(0) } - assert_nothing_raised { res = @img.export_pixels(0, 0) } - assert_nothing_raised { res = @img.export_pixels(0, 0, 10) } - assert_nothing_raised { res = @img.export_pixels(0, 0, 10, 10) } - assert_nothing_raised do - res = @img.export_pixels(0, 0, 10, 10, 'RGBA') - assert_equal(10*10*'RGBA'.length, res.length) - end - assert_nothing_raised do - res = @img.export_pixels(0, 0, 10, 10, 'I') - assert_equal(10*10*'I'.length, res.length) - end + # too many arguments + assert_raise(ArgumentError) { @img.export_pixels(0, 0, 10, 10, 'I', 2) } + end - # too many arguments - assert_raise(ArgumentError) { @img.export_pixels(0, 0, 10, 10, 'I', 2) } + def test_export_pixels_to_str + assert_nothing_raised do + res = @img.export_pixels_to_str + assert_instance_of(String, res) + assert_equal(@img.columns*@img.rows*'RGB'.length, res.length) end + assert_nothing_raised { @img.export_pixels_to_str(0) } + assert_nothing_raised { @img.export_pixels_to_str(0, 0) } + assert_nothing_raised { @img.export_pixels_to_str(0, 0, 10) } + assert_nothing_raised { @img.export_pixels_to_str(0, 0, 10, 10) } + assert_nothing_raised do + res = @img.export_pixels_to_str(0, 0, 10, 10, 'RGBA') + assert_equal(10*10*'RGBA'.length, res.length) + end + assert_nothing_raised do + res = @img.export_pixels_to_str(0, 0, 10, 10, 'I') + assert_equal(10*10*'I'.length, res.length) + end - def test_export_pixels_to_str - assert_nothing_raised do - res = @img.export_pixels_to_str - assert_instance_of(String, res) - assert_equal(@img.columns*@img.rows*'RGB'.length, res.length) - end - assert_nothing_raised { @img.export_pixels_to_str(0) } - assert_nothing_raised { @img.export_pixels_to_str(0, 0) } - assert_nothing_raised { @img.export_pixels_to_str(0, 0, 10) } - assert_nothing_raised { @img.export_pixels_to_str(0, 0, 10, 10) } - assert_nothing_raised do - res = @img.export_pixels_to_str(0, 0, 10, 10, 'RGBA') - assert_equal(10*10*'RGBA'.length, res.length) - end - assert_nothing_raised do - res = @img.export_pixels_to_str(0, 0, 10, 10, 'I') - assert_equal(10*10*'I'.length, res.length) - end + assert_nothing_raised do + res = @img.export_pixels_to_str(0, 0, 10, 10, 'I', Magick::CharPixel) + assert_equal(10*10*1, res.length) + end + assert_nothing_raised do + res = @img.export_pixels_to_str(0, 0, 10, 10, 'I', Magick::ShortPixel) + assert_equal(10*10*2, res.length) + end + assert_nothing_raised do + res = @img.export_pixels_to_str(0, 0, 10, 10, 'I', Magick::IntegerPixel) + assert_equal(10*10*4, res.length) + end + assert_nothing_raised do + res = @img.export_pixels_to_str(0, 0, 10, 10, 'I', Magick::LongPixel) + assert_equal(10*10*[1].pack('L!').length, res.length) + end + assert_nothing_raised do + res = @img.export_pixels_to_str(0, 0, 10, 10, 'I', Magick::FloatPixel) + assert_equal(10*10*4, res.length) + end + assert_nothing_raised do + res = @img.export_pixels_to_str(0, 0, 10, 10, 'I', Magick::DoublePixel) + assert_equal(10*10*8, res.length) + end + assert_nothing_raised { @img.export_pixels_to_str(0, 0, 10, 10, 'I', Magick::QuantumPixel) } - assert_nothing_raised do - res = @img.export_pixels_to_str(0, 0, 10, 10, 'I', Magick::CharPixel) - assert_equal(10*10*1, res.length) - end - assert_nothing_raised do - res = @img.export_pixels_to_str(0, 0, 10, 10, 'I', Magick::ShortPixel) - assert_equal(10*10*2, res.length) - end - assert_nothing_raised do - res = @img.export_pixels_to_str(0, 0, 10, 10, 'I', Magick::IntegerPixel) - assert_equal(10*10*4, res.length) - end - assert_nothing_raised do - res = @img.export_pixels_to_str(0, 0, 10, 10, 'I', Magick::LongPixel) - assert_equal(10*10*[1].pack('L!').length, res.length) - end - assert_nothing_raised do - res = @img.export_pixels_to_str(0, 0, 10, 10, 'I', Magick::FloatPixel) - assert_equal(10*10*4, res.length) - end - assert_nothing_raised do - res = @img.export_pixels_to_str(0, 0, 10, 10, 'I', Magick::DoublePixel) - assert_equal(10*10*8, res.length) - end - assert_nothing_raised { @img.export_pixels_to_str(0, 0, 10, 10, 'I', Magick::QuantumPixel) } + # too many arguments + assert_raise(ArgumentError) { @img.export_pixels_to_str(0, 0, 10, 10, 'I', Magick::QuantumPixel, 1) } + # last arg s/b StorageType + assert_raise(TypeError) { @img.export_pixels_to_str(0, 0, 10, 10, 'I', 2) } + end - # too many arguments - assert_raise(ArgumentError) { @img.export_pixels_to_str(0, 0, 10, 10, 'I', Magick::QuantumPixel, 1) } - # last arg s/b StorageType - assert_raise(TypeError) { @img.export_pixels_to_str(0, 0, 10, 10, 'I', 2) } + def test_extent + assert_nothing_raised { @img.extent(40, 40) } + res = @img.extent(40, 40) + assert_instance_of(Magick::Image, res) + 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, 40) } + assert_raises(ArgumentError) { @img.extent(40, -40) } + 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 + + def test_find_similar_region + girl = Magick::Image.read(IMAGES_DIR+'/Flower_Hat.jpg').first + region = girl.crop(10, 10, 50, 50) + assert_nothing_raised do + x, y = girl.find_similar_region(region) + assert_not_nil(x) + assert_not_nil(y) + assert_equal(10, x) + assert_equal(10, y) end + assert_nothing_raised do + x, y = girl.find_similar_region(region, 0) + assert_equal(10, x) + assert_equal(10, y) + end + assert_nothing_raised do + x, y = girl.find_similar_region(region, 0, 0) + assert_equal(10, x) + assert_equal(10, y) + end - def test_extent - assert_nothing_raised { @img.extent(40, 40) } - res = @img.extent(40, 40) - assert_instance_of(Magick::Image, res) - 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, 40) } - assert_raises(ArgumentError) { @img.extent(40, -40) } - 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') } + list = Magick::ImageList.new + list << region + assert_nothing_raised do + x, y = girl.find_similar_region(list, 0, 0) + assert_equal(10, x) + assert_equal(10, y) end - def test_find_similar_region - girl = Magick::Image.read(IMAGES_DIR+'/Flower_Hat.jpg').first - region = girl.crop(10, 10, 50, 50) - assert_nothing_raised do - x, y = girl.find_similar_region(region) - assert_not_nil(x) - assert_not_nil(y) - assert_equal(10, x) - assert_equal(10, y) - end - assert_nothing_raised do - x, y = girl.find_similar_region(region, 0) - assert_equal(10, x) - assert_equal(10, y) - end - assert_nothing_raised do - x, y = girl.find_similar_region(region, 0, 0) - assert_equal(10, x) - assert_equal(10, y) - end + x = girl.find_similar_region(@img) + assert_nil(x) - list = Magick::ImageList.new - list << region - assert_nothing_raised do - x, y = girl.find_similar_region(list, 0, 0) - assert_equal(10, x) - assert_equal(10, y) - end + assert_raise(ArgumentError) { girl.find_similar_region(region, 10, 10, 10) } + assert_raise(TypeError) { girl.find_similar_region(region, 10, 'x') } + assert_raise(TypeError) { girl.find_similar_region(region, 'x') } - x = girl.find_similar_region(@img) - assert_nil(x) + region.destroy! + assert_raise(Magick::DestroyedImageError) { girl.find_similar_region(region) } + end - assert_raise(ArgumentError) { girl.find_similar_region(region, 10, 10, 10) } - assert_raise(TypeError) { girl.find_similar_region(region, 10, 'x') } - assert_raise(TypeError) { girl.find_similar_region(region, 'x') } - - region.destroy! - assert_raise(Magick::DestroyedImageError) { girl.find_similar_region(region) } + def test_flip + assert_nothing_raised do + res = @img.flip + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + end - def test_flip - assert_nothing_raised do - res = @img.flip - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end + def test_flip! + assert_nothing_raised do + res = @img.flip! + assert_same(@img, res) end + end - def test_flip! - assert_nothing_raised do - res = @img.flip! - assert_same(@img, res) - end + def test_flop + assert_nothing_raised do + res = @img.flop + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + end - def test_flop - assert_nothing_raised do - res = @img.flop - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end + def test_flop! + assert_nothing_raised do + res = @img.flop! + assert_same(@img, res) end + end - def test_flop! - assert_nothing_raised do - res = @img.flop! - assert_same(@img, res) - end + def test_frame + assert_nothing_raised do + res = @img.frame + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + assert_nothing_raised { @img.frame(50) } + assert_nothing_raised { @img.frame(50, 50) } + assert_nothing_raised { @img.frame(50, 50, 25) } + assert_nothing_raised { @img.frame(50, 50, 25, 25) } + assert_nothing_raised { @img.frame(50, 50, 25, 25, 6) } + 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) } + end - def test_frame - assert_nothing_raised do - res = @img.frame - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - assert_nothing_raised { @img.frame(50) } - assert_nothing_raised { @img.frame(50, 50) } - assert_nothing_raised { @img.frame(50, 50, 25) } - assert_nothing_raised { @img.frame(50, 50, 25, 25) } - assert_nothing_raised { @img.frame(50, 50, 25, 25, 6) } - 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) } + def test_gamma_channel + assert_nothing_raised do + res = @img.gamma_channel(0.8) + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + assert_raise(ArgumentError) { @img.gamma_channel } + assert_nothing_raised { @img.gamma_channel(0.8, Magick::RedChannel) } + assert_nothing_raised { @img.gamma_channel(0.8, Magick::RedChannel, Magick::BlueChannel) } + assert_raise(TypeError) { @img.gamma_channel(0.8, Magick::RedChannel, 2) } + end - def test_gamma_channel - assert_nothing_raised do - res = @img.gamma_channel(0.8) - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - assert_raise(ArgumentError) { @img.gamma_channel } - assert_nothing_raised { @img.gamma_channel(0.8, Magick::RedChannel) } - assert_nothing_raised { @img.gamma_channel(0.8, Magick::RedChannel, Magick::BlueChannel) } - assert_raise(TypeError) { @img.gamma_channel(0.8, Magick::RedChannel, 2) } - end + def test_function_channel + img = Magick::Image.read('gradient:') {self.size = '20x600'} + img = img.first + img.rotate!(90) + assert_nothing_raised { img.function_channel Magick::PolynomialFunction, 0.33 } + assert_nothing_raised { img.function_channel Magick::PolynomialFunction, 4, -1.5 } + assert_nothing_raised { img.function_channel Magick::PolynomialFunction, 4, -4, 1 } + assert_nothing_raised { img.function_channel Magick::PolynomialFunction, -25, 53, -36, 8.3, 0.2 } - def test_function_channel - img = Magick::Image.read('gradient:') {self.size = '20x600'} - img = img.first - img.rotate!(90) - assert_nothing_raised { img.function_channel Magick::PolynomialFunction, 0.33 } - assert_nothing_raised { img.function_channel Magick::PolynomialFunction, 4, -1.5 } - assert_nothing_raised { img.function_channel Magick::PolynomialFunction, 4, -4, 1 } - assert_nothing_raised { img.function_channel Magick::PolynomialFunction, -25, 53, -36, 8.3, 0.2 } + assert_nothing_raised { img.function_channel Magick::SinusoidFunction, 1 } + assert_nothing_raised { img.function_channel Magick::SinusoidFunction, 1, 90 } + assert_nothing_raised { img.function_channel Magick::SinusoidFunction, 5, 90, 0.25, 0.75 } - assert_nothing_raised { img.function_channel Magick::SinusoidFunction, 1 } - assert_nothing_raised { img.function_channel Magick::SinusoidFunction, 1, 90 } - assert_nothing_raised { img.function_channel Magick::SinusoidFunction, 5, 90, 0.25, 0.75 } + assert_nothing_raised { img.function_channel Magick::ArcsinFunction, 1 } + assert_nothing_raised { img.function_channel Magick::ArcsinFunction, 0.5 } + assert_nothing_raised { img.function_channel Magick::ArcsinFunction, 0.4, 0.7 } + assert_nothing_raised { img.function_channel Magick::ArcsinFunction, 0.5, 0.5, 0.5, 0.5 } - assert_nothing_raised { img.function_channel Magick::ArcsinFunction, 1 } - assert_nothing_raised { img.function_channel Magick::ArcsinFunction, 0.5 } - assert_nothing_raised { img.function_channel Magick::ArcsinFunction, 0.4, 0.7 } - assert_nothing_raised { img.function_channel Magick::ArcsinFunction, 0.5, 0.5, 0.5, 0.5 } + assert_nothing_raised { img.function_channel Magick::ArctanFunction, 1 } + assert_nothing_raised { img.function_channel Magick::ArctanFunction, 10, 0.7 } + assert_nothing_raised { img.function_channel Magick::ArctanFunction, 5, 0.7, 1.2 } + assert_nothing_raised { img.function_channel Magick::ArctanFunction, 15, 0.7, 0.5, 0.75 } - assert_nothing_raised { img.function_channel Magick::ArctanFunction, 1 } - assert_nothing_raised { img.function_channel Magick::ArctanFunction, 10, 0.7 } - assert_nothing_raised { img.function_channel Magick::ArctanFunction, 5, 0.7, 1.2 } - assert_nothing_raised { img.function_channel Magick::ArctanFunction, 15, 0.7, 0.5, 0.75 } + # with channel args + assert_nothing_raised { img.function_channel Magick::PolynomialFunction, 0.33, Magick::RedChannel } + assert_nothing_raised { img.function_channel Magick::SinusoidFunction, 1, Magick::RedChannel, Magick::BlueChannel } - # with channel args - assert_nothing_raised { img.function_channel Magick::PolynomialFunction, 0.33, Magick::RedChannel } - assert_nothing_raised { img.function_channel Magick::SinusoidFunction, 1, Magick::RedChannel, Magick::BlueChannel } + # invalid args + assert_raise(ArgumentError) { img.function_channel } + assert_raise(TypeError) { img.function_channel 1 } + assert_raise(ArgumentError) { img.function_channel Magick::PolynomialFunction } + assert_raise(TypeError) { img.function_channel Magick::PolynomialFunction, [] } + assert_raise(ArgumentError) { img.function_channel Magick::SinusoidFunction, 5, 90, 0.25, 0.75, 0.1 } + assert_raise(ArgumentError) { img.function_channel Magick::ArcsinFunction, 0.5, 0.5, 0.5, 0.5, 0.1 } + assert_raise(ArgumentError) { img.function_channel Magick::ArctanFunction, 15, 0.7, 0.5, 0.75, 0.1 } + end - # invalid args - assert_raise(ArgumentError) { img.function_channel } - assert_raise(TypeError) { img.function_channel 1 } - assert_raise(ArgumentError) { img.function_channel Magick::PolynomialFunction } - assert_raise(TypeError) { img.function_channel Magick::PolynomialFunction, [] } - assert_raise(ArgumentError) { img.function_channel Magick::SinusoidFunction, 5, 90, 0.25, 0.75, 0.1 } - assert_raise(ArgumentError) { img.function_channel Magick::ArcsinFunction, 0.5, 0.5, 0.5, 0.5, 0.1 } - assert_raise(ArgumentError) { img.function_channel Magick::ArctanFunction, 15, 0.7, 0.5, 0.75, 0.1 } + def test_gramma_correct + assert_raise(ArgumentError) { @img.gamma_correct } + # All 4 arguments can't default to 1.0 + assert_raise(ArgumentError) { @img.gamma_correct(1.0) } + assert_nothing_raised do + res = @img.gamma_correct(0.8) + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + assert_nothing_raised { @img.gamma_correct(0.8, 0.9) } + assert_nothing_raised { @img.gamma_correct(0.8, 0.9, 1.0) } + assert_nothing_raised { @img.gamma_correct(0.8, 0.9, 1.0, 1.1) } + # too many arguments + assert_raise(ArgumentError) { @img.gamma_correct(0.8, 0.9, 1.0, 1.1, 2) } + end - def test_gramma_correct - assert_raise(ArgumentError) { @img.gamma_correct } - # All 4 arguments can't default to 1.0 - assert_raise(ArgumentError) { @img.gamma_correct(1.0) } - assert_nothing_raised do - res = @img.gamma_correct(0.8) - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - assert_nothing_raised { @img.gamma_correct(0.8, 0.9) } - assert_nothing_raised { @img.gamma_correct(0.8, 0.9, 1.0) } - assert_nothing_raised { @img.gamma_correct(0.8, 0.9, 1.0, 1.1) } - # too many arguments - assert_raise(ArgumentError) { @img.gamma_correct(0.8, 0.9, 1.0, 1.1, 2) } + def test_gaussian_blur + assert_nothing_raised do + res = @img.gaussian_blur + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + assert_nothing_raised { @img.gaussian_blur(0.0) } + assert_nothing_raised { @img.gaussian_blur(0.0, 3.0) } + # sigma must be != 0.0 + assert_raise(ArgumentError) { @img.gaussian_blur(1.0, 0.0) } + assert_raise(ArgumentError) { @img.gaussian_blur(1.0, 3.0, 2) } + end - def test_gaussian_blur - assert_nothing_raised do - res = @img.gaussian_blur - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - assert_nothing_raised { @img.gaussian_blur(0.0) } - assert_nothing_raised { @img.gaussian_blur(0.0, 3.0) } - # sigma must be != 0.0 - assert_raise(ArgumentError) { @img.gaussian_blur(1.0, 0.0) } - assert_raise(ArgumentError) { @img.gaussian_blur(1.0, 3.0, 2) } + def test_gaussian_blur_channel + assert_nothing_raised do + res = @img.gaussian_blur_channel + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + assert_nothing_raised { @img.gaussian_blur_channel(0.0) } + assert_nothing_raised { @img.gaussian_blur_channel(0.0, 3.0) } + assert_nothing_raised { @img.gaussian_blur_channel(0.0, 3.0, Magick::RedChannel) } + assert_nothing_raised { @img.gaussian_blur_channel(0.0, 3.0, Magick::RedChannel, Magick::BlueChannel) } + assert_raise(TypeError) { @img.gaussian_blur_channel(0.0, 3.0, Magick::RedChannel, 2) } + end - def test_gaussian_blur_channel - assert_nothing_raised do - res = @img.gaussian_blur_channel - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - assert_nothing_raised { @img.gaussian_blur_channel(0.0) } - assert_nothing_raised { @img.gaussian_blur_channel(0.0, 3.0) } - assert_nothing_raised { @img.gaussian_blur_channel(0.0, 3.0, Magick::RedChannel) } - assert_nothing_raised { @img.gaussian_blur_channel(0.0, 3.0, Magick::RedChannel, Magick::BlueChannel) } - assert_raise(TypeError) { @img.gaussian_blur_channel(0.0, 3.0, Magick::RedChannel, 2) } + def test_get_exif_by_entry + assert_nothing_raised do + res = @img.get_exif_by_entry + assert_instance_of(Array, res) end + end - def test_get_exif_by_entry - assert_nothing_raised do - res = @img.get_exif_by_entry - assert_instance_of(Array, res) - end + def test_get_exif_by_number + assert_nothing_raised do + res = @img.get_exif_by_number + assert_instance_of(Hash, res) end + end - def test_get_exif_by_number - assert_nothing_raised do - res = @img.get_exif_by_number - assert_instance_of(Hash, res) - end + def test_get_pixels + assert_nothing_raised do + pixels = @img.get_pixels(0, 0, @img.columns, 1) + assert_instance_of(Array, pixels) + assert_equal(@img.columns, pixels.length) + assert_block do + pixels.all? { |p| p.is_a? Magick::Pixel } end - - def test_get_pixels - assert_nothing_raised do - pixels = @img.get_pixels(0, 0, @img.columns, 1) - assert_instance_of(Array, pixels) - assert_equal(@img.columns, pixels.length) - assert_block do - pixels.all? { |p| p.is_a? Magick::Pixel } - end - end - assert_raise(RangeError) { @img.get_pixels(0, 0, -1, 1) } - assert_raise(RangeError) { @img.get_pixels(0, 0, @img.columns, -1) } - assert_raise(RangeError) { @img.get_pixels(0, 0, @img.columns+1, 1) } - assert_raise(RangeError) { @img.get_pixels(0, 0, @img.columns, @img.rows+1) } end + assert_raise(RangeError) { @img.get_pixels(0, 0, -1, 1) } + assert_raise(RangeError) { @img.get_pixels(0, 0, @img.columns, -1) } + assert_raise(RangeError) { @img.get_pixels(0, 0, @img.columns+1, 1) } + assert_raise(RangeError) { @img.get_pixels(0, 0, @img.columns, @img.rows+1) } + end - def test_gray? - gray = Magick::Image.new(20, 20) { self.background_color = 'gray50' } - assert(gray.gray?) - red = Magick::Image.new(20, 20) { self.background_color = 'red' } - assert(!red.gray?) - end + def test_gray? + gray = Magick::Image.new(20, 20) { self.background_color = 'gray50' } + assert(gray.gray?) + red = Magick::Image.new(20, 20) { self.background_color = 'red' } + assert(!red.gray?) + end - def test_histogram? - assert_nothing_raised { @img.histogram? } - assert(@img.histogram?) + def test_histogram? + assert_nothing_raised { @img.histogram? } + assert(@img.histogram?) + end + + def test_implode + assert_nothing_raised do + res = @img.implode(0.5) + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + end - def test_implode - assert_nothing_raised do - res = @img.implode(0.5) - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end + def test_import_pixels + pixels = @img.export_pixels(0, 0, @img.columns, 1, 'RGB') + assert_nothing_raised do + res = @img.import_pixels(0, 0, @img.columns, 1, 'RGB', pixels) + assert_same(@img, res) end + assert_raise(ArgumentError) { @img.import_pixels } + assert_raise(ArgumentError) { @img.import_pixels(0) } + assert_raise(ArgumentError) { @img.import_pixels(0, 0) } + assert_raise(ArgumentError) { @img.import_pixels(0, 0, @img.columns) } + assert_raise(ArgumentError) { @img.import_pixels(0, 0, @img.columns, 1) } + assert_raise(ArgumentError) { @img.import_pixels(0, 0, @img.columns, 1, 'RGB') } + assert_raise(TypeError) { @img.import_pixels('x', 0, @img.columns, 1, 'RGB', pixels) } + assert_raise(TypeError) { @img.import_pixels(0, 'x', @img.columns, 1, 'RGB', pixels) } + assert_raise(TypeError) { @img.import_pixels(0, 0, 'x', 1, 'RGB', pixels) } + assert_raise(TypeError) { @img.import_pixels(0, 0, @img.columns, 'x', 'RGB', pixels) } + assert_raise(TypeError) { @img.import_pixels(0, 0, @img.columns, 1, [2], pixels) } + assert_raise(ArgumentError) { @img.import_pixels(-1, 0, @img.columns, 1, 'RGB', pixels) } + assert_raise(ArgumentError) { @img.import_pixels(0, -1, @img.columns, 1, 'RGB', pixels) } + assert_raise(ArgumentError) { @img.import_pixels(0, 0, -1, 1, 'RGB', pixels) } + assert_raise(ArgumentError) { @img.import_pixels(0, 0, @img.columns, -1, 'RGB', pixels) } - def test_import_pixels - pixels = @img.export_pixels(0, 0, @img.columns, 1, 'RGB') - assert_nothing_raised do - res = @img.import_pixels(0, 0, @img.columns, 1, 'RGB', pixels) - assert_same(@img, res) - end - assert_raise(ArgumentError) { @img.import_pixels } - assert_raise(ArgumentError) { @img.import_pixels(0) } - assert_raise(ArgumentError) { @img.import_pixels(0, 0) } - assert_raise(ArgumentError) { @img.import_pixels(0, 0, @img.columns) } - assert_raise(ArgumentError) { @img.import_pixels(0, 0, @img.columns, 1) } - assert_raise(ArgumentError) { @img.import_pixels(0, 0, @img.columns, 1, 'RGB') } - assert_raise(TypeError) { @img.import_pixels('x', 0, @img.columns, 1, 'RGB', pixels) } - assert_raise(TypeError) { @img.import_pixels(0, 'x', @img.columns, 1, 'RGB', pixels) } - assert_raise(TypeError) { @img.import_pixels(0, 0, 'x', 1, 'RGB', pixels) } - assert_raise(TypeError) { @img.import_pixels(0, 0, @img.columns, 'x', 'RGB', pixels) } - assert_raise(TypeError) { @img.import_pixels(0, 0, @img.columns, 1, [2], pixels) } - assert_raise(ArgumentError) { @img.import_pixels(-1, 0, @img.columns, 1, 'RGB', pixels) } - assert_raise(ArgumentError) { @img.import_pixels(0, -1, @img.columns, 1, 'RGB', pixels) } - assert_raise(ArgumentError) { @img.import_pixels(0, 0, -1, 1, 'RGB', pixels) } - assert_raise(ArgumentError) { @img.import_pixels(0, 0, @img.columns, -1, 'RGB', pixels) } + # pixel array is too small + assert_raise(ArgumentError) { @img.import_pixels(0, 0, @img.columns, 2, 'RGB', pixels) } + # pixel array doesn't contain a multiple of the map length + pixels.shift + assert_raise(ArgumentError) { @img.import_pixels(0, 0, @img.columns, 1, 'RGB', pixels) } + end - # pixel array is too small - assert_raise(ArgumentError) { @img.import_pixels(0, 0, @img.columns, 2, 'RGB', pixels) } - # pixel array doesn't contain a multiple of the map length - pixels.shift - assert_raise(ArgumentError) { @img.import_pixels(0, 0, @img.columns, 1, 'RGB', pixels) } + def test_level + assert_nothing_raised do + res = @img.level + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + assert_nothing_raised { @img.level(0.0) } + assert_nothing_raised { @img.level(0.0, 1.0) } + assert_nothing_raised { @img.level(0.0, 1.0, Magick::QuantumRange) } + assert_raise(ArgumentError) { @img.level(0.0, 1.0, Magick::QuantumRange, 2) } + assert_raise(ArgumentError) { @img.level('x') } + assert_raise(ArgumentError) { @img.level(0.0, 'x') } + assert_raise(ArgumentError) { @img.level(0.0, 1.0, 'x') } + end - def test_level - assert_nothing_raised do - res = @img.level - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - assert_nothing_raised { @img.level(0.0) } - assert_nothing_raised { @img.level(0.0, 1.0) } - assert_nothing_raised { @img.level(0.0, 1.0, Magick::QuantumRange) } - assert_raise(ArgumentError) { @img.level(0.0, 1.0, Magick::QuantumRange, 2) } - assert_raise(ArgumentError) { @img.level('x') } - assert_raise(ArgumentError) { @img.level(0.0, 'x') } - assert_raise(ArgumentError) { @img.level(0.0, 1.0, 'x') } - end + # Ensure that #level properly swaps old-style arg list + def test_level2 + img1 = @img.level(10, 2, 200) + img2 = @img.level(10, 200, 2) + assert_equal(img2, img1) - # Ensure that #level properly swaps old-style arg list - def test_level2 - img1 = @img.level(10, 2, 200) - img2 = @img.level(10, 200, 2) - assert_equal(img2, img1) + # Ensure that level2 uses new arg order + img1 = @img.level2(10, 200, 2) + assert_equal(img2, img1) + end - # Ensure that level2 uses new arg order - img1 = @img.level2(10, 200, 2) - assert_equal(img2, img1) + def test_level_channel + assert_raise(ArgumentError) { @img.level_channel } + assert_nothing_raised do + res = @img.level_channel(Magick::RedChannel) + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end - def test_level_channel - assert_raise(ArgumentError) { @img.level_channel } - assert_nothing_raised do - res = @img.level_channel(Magick::RedChannel) - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end + assert_nothing_raised { @img.level_channel(Magick::RedChannel, 0.0) } + assert_nothing_raised { @img.level_channel(Magick::RedChannel, 0.0, 1.0) } + assert_nothing_raised { @img.level_channel(Magick::RedChannel, 0.0, 1.0, Magick::QuantumRange) } - assert_nothing_raised { @img.level_channel(Magick::RedChannel, 0.0) } - assert_nothing_raised { @img.level_channel(Magick::RedChannel, 0.0, 1.0) } - assert_nothing_raised { @img.level_channel(Magick::RedChannel, 0.0, 1.0, Magick::QuantumRange) } + assert_raise(ArgumentError) { @img.level_channel(Magick::RedChannel, 0.0, 1.0, Magick::QuantumRange, 2) } + assert_raise(TypeError) { @img.level_channel(2) } + 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 - assert_raise(ArgumentError) { @img.level_channel(Magick::RedChannel, 0.0, 1.0, Magick::QuantumRange, 2) } - assert_raise(TypeError) { @img.level_channel(2) } - 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') } + def level_colors + res = nil + assert_nothing_raised do + res = @img.level_colors end + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) - def 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', '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(ArgumentError) { @img.level_colors('xxx') } + end - 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', '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(ArgumentError) { @img.level_colors('xxx') } + def 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) - def 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, 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(ArgumentError) { @img.levelize_channel } + end - 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(ArgumentError) { @img.levelize_channel } - end - # def test_liquid_rescale # begin # @img.liquid_rescale(15,15) # rescue NotImplementedError # puts "liquid_rescale not implemented." @@ -979,323 +979,323 @@ # assert_raise(TypeError) { @img.liquid_rescale(15, []) } # assert_raise(TypeError) { @img.liquid_rescale(15, 15, []) } # assert_raise(TypeError) { @img.liquid_rescale(15, 15, 0, []) } # end - def test_magnify - assert_nothing_raised do - res = @img.magnify - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - - res = @img.magnify! - assert_same(@img, res) + def test_magnify + assert_nothing_raised do + res = @img.magnify + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end - def test_map - map = Magick::Image.read('netscape:').first - assert_nothing_raised do - res = @img.map(map) - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - assert_nothing_raised { @img.map(map, true) } - assert_raise(NoMethodError) { @img.map(2) } - assert_raise(ArgumentError) { @img.map(map, true, 2) } - assert_raise(ArgumentError) { @img.map } - map.destroy! - assert_raise(Magick::DestroyedImageError) { @img.map(map, true) } - end + res = @img.magnify! + assert_same(@img, res) + end - def test_marshal - img = Magick::Image.read(IMAGES_DIR+'/Button_0.gif').first - d = nil - img2 = nil - assert_nothing_raised { d = Marshal.dump(img) } - assert_nothing_raised { img2 = Marshal.load(d) } - assert_equal(img, img2) + def test_map + map = Magick::Image.read('netscape:').first + assert_nothing_raised do + res = @img.map(map) + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + assert_nothing_raised { @img.map(map, true) } + assert_raise(NoMethodError) { @img.map(2) } + assert_raise(ArgumentError) { @img.map(map, true, 2) } + assert_raise(ArgumentError) { @img.map } + map.destroy! + assert_raise(Magick::DestroyedImageError) { @img.map(map, true) } + end - def test_mask - cimg = Magick::Image.new(10,10) - assert_nothing_raised { @img.mask(cimg) } - res = nil - assert_nothing_raised { res = @img.mask } - assert_not_nil(res) - assert_not_same(cimg, res) - assert_equal(20, res.columns) - assert_equal(20, res.rows) + def test_marshal + img = Magick::Image.read(IMAGES_DIR+'/Button_0.gif').first + d = nil + img2 = nil + assert_nothing_raised { d = Marshal.dump(img) } + assert_nothing_raised { img2 = Marshal.load(d) } + assert_equal(img, img2) + end - # mask expects an Image and calls `cur_image' - assert_raise(NoMethodError) { @img.mask = 2 } + def test_mask + cimg = Magick::Image.new(10,10) + assert_nothing_raised { @img.mask(cimg) } + res = nil + assert_nothing_raised { res = @img.mask } + assert_not_nil(res) + assert_not_same(cimg, res) + assert_equal(20, res.columns) + assert_equal(20, res.rows) - img = @img.copy.freeze - assert_raise(FreezeError) { img.mask cimg } + # mask expects an Image and calls `cur_image' + assert_raise(NoMethodError) { @img.mask = 2 } - @img.destroy! - assert_raise(Magick::DestroyedImageError) { @img.mask cimg } + img = @img.copy.freeze + assert_raise(FreezeError) { img.mask cimg } + + @img.destroy! + assert_raise(Magick::DestroyedImageError) { @img.mask cimg } + end + + def test_matte_fill_to_border + assert_nothing_raised do + res = @img.matte_fill_to_border(@img.columns/2, @img.rows/2) + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + assert_nothing_raised { @img.matte_fill_to_border(@img.columns, @img.rows) } + assert_raise(ArgumentError) { @img.matte_fill_to_border(@img.columns+1, @img.rows) } + assert_raise(ArgumentError) { @img.matte_fill_to_border(@img.columns, @img.rows+1) } + end - def test_matte_fill_to_border - assert_nothing_raised do - res = @img.matte_fill_to_border(@img.columns/2, @img.rows/2) - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - assert_nothing_raised { @img.matte_fill_to_border(@img.columns, @img.rows) } - assert_raise(ArgumentError) { @img.matte_fill_to_border(@img.columns+1, @img.rows) } - assert_raise(ArgumentError) { @img.matte_fill_to_border(@img.columns, @img.rows+1) } + def test_matte_floodfill + assert_nothing_raised do + 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) } + assert_raise(ArgumentError) { @img.matte_floodfill(@img.columns+1, @img.rows) } + assert_raise(ArgumentError) { @img.matte_floodfill(@img.columns, @img.rows+1) } + end - def test_matte_floodfill - assert_nothing_raised do - 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) } - assert_raise(ArgumentError) { @img.matte_floodfill(@img.columns+1, @img.rows) } - assert_raise(ArgumentError) { @img.matte_floodfill(@img.columns, @img.rows+1) } + def test_matte_replace + assert_nothing_raised do + res = @img.matte_replace(@img.columns/2, @img.rows/2) + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + end - def test_matte_replace - assert_nothing_raised do - res = @img.matte_replace(@img.columns/2, @img.rows/2) - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end + def test_matte_reset! + assert_nothing_raised do + res = @img.matte_reset! + assert_same(@img, res) end + end - def test_matte_reset! - assert_nothing_raised do - res = @img.matte_reset! - assert_same(@img, res) - end + def test_median_filter + assert_nothing_raised do + res = @img.median_filter + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + assert_nothing_raised { @img.median_filter(0.5) } + assert_raise(ArgumentError) { @img.median_filter(0.5, 'x') } + assert_raise(TypeError) { @img.median_filter('x') } + end - def test_median_filter - assert_nothing_raised do - res = @img.median_filter - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - assert_nothing_raised { @img.median_filter(0.5) } - assert_raise(ArgumentError) { @img.median_filter(0.5, 'x') } - assert_raise(TypeError) { @img.median_filter('x') } + def test_minify + assert_nothing_raised do + res = @img.minify + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end - def test_minify - assert_nothing_raised do - res = @img.minify - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end + res = @img.minify! + assert_same(@img, res) + end - res = @img.minify! - assert_same(@img, res) + def test_modulate + assert_nothing_raised do + res = @img.modulate + assert_instance_of(Magick::Image, res) + 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.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 - def test_modulate - assert_nothing_raised do - res = @img.modulate - assert_instance_of(Magick::Image, res) - 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.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 - - def test_monochrome? + def test_monochrome? # assert_block { @img.monochrome? } - @img.pixel_color(0,0, 'red') - assert_block { ! @img.monochrome? } + @img.pixel_color(0,0, 'red') + assert_block { ! @img.monochrome? } + end + + def test_motion_blur + assert_nothing_raised do + res = @img.motion_blur(1.0, 7.0, 180) + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + assert_raise(ArgumentError) { @img.motion_blur(1.0, 0.0, 180) } + assert_nothing_raised { @img.motion_blur(1.0, -1.0, 180) } + end - def test_motion_blur - assert_nothing_raised do - res = @img.motion_blur(1.0, 7.0, 180) - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - assert_raise(ArgumentError) { @img.motion_blur(1.0, 0.0, 180) } - assert_nothing_raised { @img.motion_blur(1.0, -1.0, 180) } + def test_negate + assert_nothing_raised do + res = @img.negate + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + assert_nothing_raised { @img.negate(true) } + assert_raise(ArgumentError) { @img.negate(true, 2) } + end - def test_negate - assert_nothing_raised do - res = @img.negate - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - assert_nothing_raised { @img.negate(true) } - assert_raise(ArgumentError) { @img.negate(true, 2) } + def test_negate_channel + assert_nothing_raised do + res = @img.negate_channel + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + assert_nothing_raised { @img.negate_channel(true) } + assert_nothing_raised { @img.negate_channel(true, Magick::RedChannel) } + assert_nothing_raised { @img.negate_channel(true, Magick::RedChannel, Magick::BlueChannel) } + assert_raise(TypeError) { @img.negate_channel(true, Magick::RedChannel, 2) } + end - def test_negate_channel - assert_nothing_raised do - res = @img.negate_channel - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - assert_nothing_raised { @img.negate_channel(true) } - assert_nothing_raised { @img.negate_channel(true, Magick::RedChannel) } - assert_nothing_raised { @img.negate_channel(true, Magick::RedChannel, Magick::BlueChannel) } - assert_raise(TypeError) { @img.negate_channel(true, Magick::RedChannel, 2) } + def test_normalize + assert_nothing_raised do + res = @img.normalize + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + end - def test_normalize - assert_nothing_raised do - res = @img.normalize - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end + def test_normalize_channel + assert_nothing_raised do + res = @img.normalize_channel + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + assert_nothing_raised { @img.normalize_channel(Magick::RedChannel) } + assert_nothing_raised { @img.normalize_channel(Magick::RedChannel, Magick::BlueChannel) } + assert_raise(TypeError) { @img.normalize_channel(Magick::RedChannel, 2) } + end - def test_normalize_channel - assert_nothing_raised do - res = @img.normalize_channel - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - assert_nothing_raised { @img.normalize_channel(Magick::RedChannel) } - assert_nothing_raised { @img.normalize_channel(Magick::RedChannel, Magick::BlueChannel) } - assert_raise(TypeError) { @img.normalize_channel(Magick::RedChannel, 2) } + def test_oil_paint + assert_nothing_raised do + res = @img.oil_paint + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + assert_nothing_raised { @img.oil_paint(2.0) } + assert_raise(ArgumentError) { @img.oil_paint(2.0, 1.0) } + end - def test_oil_paint - assert_nothing_raised do - res = @img.oil_paint - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - assert_nothing_raised { @img.oil_paint(2.0) } - assert_raise(ArgumentError) { @img.oil_paint(2.0, 1.0) } + def test_opaque + assert_nothing_raised do + res = @img.opaque('white', 'red') + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end + red = Magick::Pixel.new(Magick::QuantumRange) + blue = Magick::Pixel.new(0, 0, Magick::QuantumRange) + assert_nothing_raised { @img.opaque(red, blue) } + assert_raise(TypeError) { @img.opaque(red, 2) } + assert_raise(TypeError) { @img.opaque(2, blue) } + end - def test_opaque - assert_nothing_raised do - res = @img.opaque('white', 'red') - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - red = Magick::Pixel.new(Magick::QuantumRange) - blue = Magick::Pixel.new(0, 0, Magick::QuantumRange) - assert_nothing_raised { @img.opaque(red, blue) } - assert_raise(TypeError) { @img.opaque(red, 2) } - assert_raise(TypeError) { @img.opaque(2, blue) } + def test_opaque_channel + res = nil + assert_nothing_raised { res = @img.opaque_channel('white', 'red') } + assert_not_nil(res) + assert_instance_of(Magick::Image, res) + assert_not_same(res, @img) + assert_nothing_raised { @img.opaque_channel('red', 'blue', true) } + assert_nothing_raised { @img.opaque_channel('red', 'blue', true, 50) } + assert_nothing_raised { @img.opaque_channel('red', 'blue', true, 50, Magick::RedChannel) } + assert_nothing_raised { @img.opaque_channel('red', 'blue', true, 50, Magick::RedChannel, Magick::GreenChannel) } + assert_nothing_raised do + @img.opaque_channel('red', 'blue', true, 50, Magick::RedChannel, Magick::GreenChannel, Magick::BlueChannel) end - def test_opaque_channel - res = nil - assert_nothing_raised { res = @img.opaque_channel('white', 'red') } - assert_not_nil(res) - assert_instance_of(Magick::Image, res) - assert_not_same(res, @img) - assert_nothing_raised { @img.opaque_channel('red', 'blue', true) } - assert_nothing_raised { @img.opaque_channel('red', 'blue', true, 50) } - assert_nothing_raised { @img.opaque_channel('red', 'blue', true, 50, Magick::RedChannel) } - assert_nothing_raised { @img.opaque_channel('red', 'blue', true, 50, Magick::RedChannel, Magick::GreenChannel) } - assert_nothing_raised do - @img.opaque_channel('red', 'blue', true, 50, Magick::RedChannel, Magick::GreenChannel, Magick::BlueChannel) - 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(TypeError) { @img.opaque_channel('red', []) } + 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(TypeError) { @img.opaque_channel('red', []) } + def test_opaque? + assert_nothing_raised do + assert_block { @img.opaque? } end + @img.opacity = Magick::TransparentOpacity + assert_block { ! @img.opaque? } + end - def test_opaque? - assert_nothing_raised do - assert_block { @img.opaque? } - end - @img.opacity = Magick::TransparentOpacity - assert_block { ! @img.opaque? } + 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(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) } + 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(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) } - end + def test_paint_transparent + res = nil + 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', Magick::TransparentOpacity, true) } + assert_nothing_raised { @img.paint_transparent('red', Magick::TransparentOpacity, true, 50) } - def test_paint_transparent - res = nil - 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', Magick::TransparentOpacity, true) } - assert_nothing_raised { @img.paint_transparent('red', Magick::TransparentOpacity, true, 50) } + # Too many arguments + assert_raise(ArgumentError) { @img.paint_transparent('red', Magick::TransparentOpacity, true, 50, 50) } + # Not enough + assert_raise(ArgumentError) { @img.paint_transparent } + assert_raise(TypeError) { @img.paint_transparent('red', Magick::TransparentOpacity, true, []) } + assert_raise(TypeError) { @img.paint_transparent('red', 'blue') } + assert_raise(TypeError) { @img.paint_transparent(50) } + end - # Too many arguments - assert_raise(ArgumentError) { @img.paint_transparent('red', Magick::TransparentOpacity, true, 50, 50) } - # Not enough - assert_raise(ArgumentError) { @img.paint_transparent } - assert_raise(TypeError) { @img.paint_transparent('red', Magick::TransparentOpacity, true, []) } - assert_raise(TypeError) { @img.paint_transparent('red', 'blue') } - assert_raise(TypeError) { @img.paint_transparent(50) } + def test_palette? + img = Magick::Image.read(IMAGES_DIR+'/Flower_Hat.jpg').first + assert_nothing_raised do + assert_block { !img.palette? } end + img = Magick::Image.read(IMAGES_DIR+'/Button_0.gif').first + assert_block { img.palette? } + end - def test_palette? - img = Magick::Image.read(IMAGES_DIR+'/Flower_Hat.jpg').first - assert_nothing_raised do - assert_block { !img.palette? } - end - img = Magick::Image.read(IMAGES_DIR+'/Button_0.gif').first - assert_block { img.palette? } + def test_pixel_color + assert_nothing_raised do + res = @img.pixel_color(0,0) + assert_instance_of(Magick::Pixel, res) end + res = @img.pixel_color(0,0) + assert_equal(@img.background_color, res.to_color) + res = @img.pixel_color(0, 0, 'red') + assert_equal('white', res.to_color) + res = @img.pixel_color(0, 0) + assert_equal('red', res.to_color) - def test_pixel_color - assert_nothing_raised do - res = @img.pixel_color(0,0) - assert_instance_of(Magick::Pixel, res) - end - res = @img.pixel_color(0,0) - assert_equal(@img.background_color, res.to_color) - res = @img.pixel_color(0, 0, 'red') - assert_equal('white', res.to_color) - res = @img.pixel_color(0, 0) - assert_equal('red', res.to_color) + 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) + end - 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) - 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') } + 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') } + def test_posterize + assert_nothing_raised do + res = @img.posterize + assert_instance_of(Magick::Image, res) + assert_not_same(@img, res) end - - def test_posterize - assert_nothing_raised do - res = @img.posterize - assert_instance_of(Magick::Image, res) - assert_not_same(@img, res) - end - assert_nothing_raised { @img.posterize(5) } - assert_nothing_raised { @img.posterize(5, true) } - assert_raise(ArgumentError) { @img.posterize(5, true, 'x') } - end + assert_nothing_raised { @img.posterize(5) } + assert_nothing_raised { @img.posterize(5, true) } + assert_raise(ArgumentError) { @img.posterize(5, true, 'x') } + end end if __FILE__ == $PROGRAM_NAME IMAGES_DIR = '../doc/ex/images' FILES = Dir[IMAGES_DIR+'/Button_*.gif']