rmagick 3.1.0 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rmagick might be problematic. Click here for more details.

Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/.appveyor.yml +4 -4
  3. data/.circleci/config.yml +1 -1
  4. data/.gitignore +1 -0
  5. data/.rubocop_todo.yml +6 -0
  6. data/.travis.yml +26 -8
  7. data/CHANGELOG.md +104 -0
  8. data/before_install_linux.sh +19 -10
  9. data/benchmarks/memory/README.md +50 -0
  10. data/benchmarks/memory/image_new.rb +8 -0
  11. data/benchmarks/memory/rmagick.gnuplot +16 -0
  12. data/doc/ex/coalesce.rb +2 -2
  13. data/doc/ex/drawcomp.rb +3 -3
  14. data/doc/ex/get_pixels.rb +1 -1
  15. data/doc/ex/images/Coffee.png +0 -0
  16. data/doc/ex/images/No.png +0 -0
  17. data/doc/ex/images/Snake.png +0 -0
  18. data/doc/ex/implode.rb +2 -2
  19. data/doc/ex/mask.rb +1 -1
  20. data/doc/ex/matte_fill_to_border.rb +1 -1
  21. data/doc/ex/matte_floodfill.rb +1 -1
  22. data/doc/ex/matte_replace.rb +1 -1
  23. data/doc/ex/stegano.rb +1 -1
  24. data/examples/constitute.rb +1 -1
  25. data/examples/crop_with_gravity.rb +1 -1
  26. data/examples/demo.rb +4 -4
  27. data/examples/find_similar_region.rb +1 -1
  28. data/examples/histogram.rb +3 -3
  29. data/examples/identify.rb +46 -46
  30. data/examples/image_opacity.rb +2 -2
  31. data/examples/vignette.rb +3 -3
  32. data/ext/RMagick/extconf.rb +19 -15
  33. data/ext/RMagick/rmagick.c +1 -2
  34. data/ext/RMagick/rmagick.h +59 -30
  35. data/ext/RMagick/rmdraw.c +62 -274
  36. data/ext/RMagick/rmenum.c +121 -665
  37. data/ext/RMagick/rmfill.c +7 -7
  38. data/ext/RMagick/rmilist.c +91 -7
  39. data/ext/RMagick/rmimage.c +568 -379
  40. data/ext/RMagick/rminfo.c +152 -110
  41. data/ext/RMagick/rmkinfo.c +17 -1
  42. data/ext/RMagick/rmmain.c +75 -74
  43. data/ext/RMagick/rmmontage.c +33 -33
  44. data/ext/RMagick/rmpixel.c +75 -14
  45. data/ext/RMagick/rmstruct.c +5 -5
  46. data/ext/RMagick/rmutil.c +3 -13
  47. data/lib/obsolete.rb +66 -0
  48. data/lib/rmagick/version.rb +1 -1
  49. data/lib/rmagick_internal.rb +54 -41
  50. data/spec/rmagick/image/composite_spec.rb +5 -76
  51. data/spec/rmagick/image/properties_spec.rb +1 -1
  52. data/test/Draw.rb +52 -115
  53. data/test/Enum.rb +153 -1
  54. data/test/Fill.rb +1 -1
  55. data/test/Image1.rb +97 -43
  56. data/test/Image2.rb +140 -36
  57. data/test/Image3.rb +110 -120
  58. data/test/ImageList1.rb +46 -11
  59. data/test/ImageList2.rb +11 -21
  60. data/test/Image_attributes.rb +81 -127
  61. data/test/Import_Export.rb +2 -2
  62. data/test/Info.rb +5 -1
  63. data/test/KernelInfo.rb +67 -0
  64. data/test/Magick.rb +17 -35
  65. data/test/Pixel.rb +193 -24
  66. data/test/PolaroidOptions.rb +1 -1
  67. data/test/Preview.rb +3 -35
  68. data/test/Struct.rb +45 -0
  69. data/test/appearance/Montage.rb +26 -0
  70. data/test/appearance/appearance_assertion.rb +13 -0
  71. data/test/appearance/expected/montage_border_color.jpg +0 -0
  72. data/test/lib/Obsolete.rb +30 -0
  73. data/test/lib/internal/Draw.rb +823 -0
  74. data/test/lib/internal/Geometry.rb +98 -0
  75. data/test/lib/internal/Magick.rb +40 -0
  76. data/test/test_all_basic.rb +16 -17
  77. metadata +27 -5
  78. data/doc/ex/images/Coffee.wmf +0 -0
  79. data/doc/ex/images/No.wmf +0 -0
  80. data/doc/ex/images/Snake.wmf +0 -0
@@ -3,7 +3,7 @@
3
3
  require 'fileutils'
4
4
  require 'rmagick'
5
5
  require 'test/unit'
6
- require 'test/unit/ui/console/testrunner' unless RUBY_VERSION[/^1\.9|^2/]
6
+ require 'test/unit/ui/console/testrunner'
7
7
 
8
8
  class ImageList2UT < Test::Unit::TestCase
9
9
  def setup
@@ -153,10 +153,10 @@ class ImageList2UT < Test::Unit::TestCase
153
153
  montage = nil
154
154
  assert_nothing_thrown do
155
155
  montage = ilist.montage do
156
- self.background_color = 'black'
157
156
  self.background_color = Magick::Pixel.new(Magick::QuantumRange, 0, 0)
158
- self.border_color = 'red'
157
+ self.background_color = 'blue'
159
158
  self.border_color = Magick::Pixel.new(0, 0, 0)
159
+ self.border_color = 'red'
160
160
  self.border_width = 2
161
161
  self.compose = Magick::OverCompositeOp
162
162
  self.filename = 'test.png'
@@ -180,6 +180,10 @@ class ImageList2UT < Test::Unit::TestCase
180
180
  end
181
181
  assert_instance_of(Magick::ImageList, montage)
182
182
  assert_equal(@ilist, ilist)
183
+
184
+ montage_image = montage.first
185
+ assert_equal('blue', montage_image.background_color)
186
+ assert_equal('red', montage_image.border_color)
183
187
  end
184
188
 
185
189
  # test illegal option arguments
@@ -278,24 +282,10 @@ class ImageList2UT < Test::Unit::TestCase
278
282
  end
279
283
 
280
284
  def test_optimize_layers
281
- layer_methods = [
282
- Magick::CoalesceLayer,
283
- Magick::DisposeLayer,
284
- Magick::OptimizeTransLayer,
285
- Magick::RemoveDupsLayer,
286
- Magick::RemoveZeroLayer,
287
- Magick::OptimizeImageLayer,
288
- Magick::OptimizeLayer,
289
- Magick::OptimizePlusLayer,
290
- Magick::CompareAnyLayer,
291
- Magick::CompareClearLayer,
292
- Magick::CompareOverlayLayer,
293
- Magick::MosaicLayer,
294
- Magick::FlattenLayer,
295
- Magick::MergeLayer
296
- ]
297
285
  @ilist.read(IMAGES_DIR + '/Button_0.gif', IMAGES_DIR + '/Button_1.gif')
298
- layer_methods.each do |method|
286
+ Magick::LayerMethod.values do |method|
287
+ next if [Magick::UndefinedLayer, Magick::CompositeLayer, Magick::TrimBoundsLayer].include?(method)
288
+
299
289
  assert_nothing_raised do
300
290
  res = @ilist.optimize_layers(method)
301
291
  assert_instance_of(Magick::ImageList, res)
@@ -412,5 +402,5 @@ end
412
402
  if $PROGRAM_NAME == __FILE__
413
403
  IMAGES_DIR = '../doc/ex/images'
414
404
  FLOWER_HAT = IMAGES_DIR + '/Flower_Hat.jpg'
415
- Test::Unit::UI::Console::TestRunner.run(ImageList2UT) unless RUBY_VERSION[/^1\.9|^2/]
405
+ Test::Unit::UI::Console::TestRunner.run(ImageList2UT)
416
406
  end
@@ -3,7 +3,7 @@
3
3
  require 'fileutils'
4
4
  require 'rmagick'
5
5
  require 'test/unit'
6
- require 'test/unit/ui/console/testrunner' unless RUBY_VERSION[/^1\.9|^2/]
6
+ require 'test/unit/ui/console/testrunner'
7
7
 
8
8
  # TODO
9
9
  # test frozen attributes!
@@ -158,6 +158,12 @@ class Image_Attributes_UT < Test::Unit::TestCase
158
158
  assert_nothing_raised { @img.class_type = Magick::PseudoClass }
159
159
  assert_equal(Magick::PseudoClass, @img.class_type)
160
160
  assert_raise(TypeError) { @img.class_type = 2 }
161
+
162
+ assert_nothing_raised do
163
+ @img.class_type = Magick::PseudoClass
164
+ @img.class_type = Magick::DirectClass
165
+ assert_equal(Magick::DirectClass, @img.class_type)
166
+ end
161
167
  end
162
168
 
163
169
  def test_color_profile
@@ -182,8 +188,10 @@ class Image_Attributes_UT < Test::Unit::TestCase
182
188
  assert_instance_of(Magick::ColorspaceType, @img.colorspace)
183
189
  assert_equal(Magick::SRGBColorspace, @img.colorspace)
184
190
  img = @img.copy
185
- assert_nothing_raised { img.colorspace = Magick::GRAYColorspace }
186
- assert_equal(Magick::GRAYColorspace, img.colorspace)
191
+
192
+ Magick::ColorspaceType.values do |colorspace|
193
+ assert_nothing_raised { img.colorspace = colorspace }
194
+ end
187
195
  assert_raise(TypeError) { @img.colorspace = 2 }
188
196
  Magick::ColorspaceType.values.each do |cs|
189
197
  assert_nothing_raised { img.colorspace = cs }
@@ -204,63 +212,9 @@ class Image_Attributes_UT < Test::Unit::TestCase
204
212
  assert_nothing_raised { @img.compose = Magick::UndefinedCompositeOp }
205
213
  assert_equal(Magick::UndefinedCompositeOp, @img.compose)
206
214
 
207
- assert_nothing_raised { @img.compose = Magick::NoCompositeOp }
208
- assert_nothing_raised { @img.compose = Magick::AddCompositeOp }
209
- assert_nothing_raised { @img.compose = Magick::AtopCompositeOp }
210
- assert_nothing_raised { @img.compose = Magick::BlendCompositeOp }
211
- assert_nothing_raised { @img.compose = Magick::BumpmapCompositeOp }
212
- assert_nothing_raised { @img.compose = Magick::ClearCompositeOp }
213
- assert_nothing_raised { @img.compose = Magick::ColorBurnCompositeOp }
214
- assert_nothing_raised { @img.compose = Magick::ColorDodgeCompositeOp }
215
- assert_nothing_raised { @img.compose = Magick::ColorizeCompositeOp }
216
- assert_nothing_raised { @img.compose = Magick::CopyBlackCompositeOp }
217
- assert_nothing_raised { @img.compose = Magick::CopyBlueCompositeOp }
218
- assert_nothing_raised { @img.compose = Magick::CopyCompositeOp }
219
- assert_nothing_raised { @img.compose = Magick::CopyCyanCompositeOp }
220
- assert_nothing_raised { @img.compose = Magick::CopyGreenCompositeOp }
221
- assert_nothing_raised { @img.compose = Magick::CopyMagentaCompositeOp }
222
- assert_nothing_raised { @img.compose = Magick::CopyOpacityCompositeOp }
223
- assert_nothing_raised { @img.compose = Magick::CopyRedCompositeOp }
224
- assert_nothing_raised { @img.compose = Magick::CopyYellowCompositeOp }
225
- assert_nothing_raised { @img.compose = Magick::DarkenCompositeOp }
226
- assert_nothing_raised { @img.compose = Magick::DstAtopCompositeOp }
227
- assert_nothing_raised { @img.compose = Magick::DstCompositeOp }
228
- assert_nothing_raised { @img.compose = Magick::DstInCompositeOp }
229
- assert_nothing_raised { @img.compose = Magick::DstOutCompositeOp }
230
- assert_nothing_raised { @img.compose = Magick::DstOverCompositeOp }
231
- assert_nothing_raised { @img.compose = Magick::DifferenceCompositeOp }
232
- assert_nothing_raised { @img.compose = Magick::DisplaceCompositeOp }
233
- assert_nothing_raised { @img.compose = Magick::DissolveCompositeOp }
234
- assert_nothing_raised { @img.compose = Magick::ExclusionCompositeOp }
235
- assert_nothing_raised { @img.compose = Magick::HardLightCompositeOp }
236
- assert_nothing_raised { @img.compose = Magick::HueCompositeOp }
237
- assert_nothing_raised { @img.compose = Magick::InCompositeOp }
238
- assert_nothing_raised { @img.compose = Magick::LightenCompositeOp }
239
- assert_nothing_raised { @img.compose = Magick::LuminizeCompositeOp }
240
- assert_nothing_raised { @img.compose = Magick::MinusCompositeOp }
241
- assert_nothing_raised { @img.compose = Magick::ModulateCompositeOp }
242
- assert_nothing_raised { @img.compose = Magick::MultiplyCompositeOp }
243
- assert_nothing_raised { @img.compose = Magick::OutCompositeOp }
244
- assert_nothing_raised { @img.compose = Magick::OverCompositeOp }
245
- assert_nothing_raised { @img.compose = Magick::OverlayCompositeOp }
246
- assert_nothing_raised { @img.compose = Magick::PlusCompositeOp }
247
- assert_nothing_raised { @img.compose = Magick::ReplaceCompositeOp }
248
- assert_nothing_raised { @img.compose = Magick::SaturateCompositeOp }
249
- assert_nothing_raised { @img.compose = Magick::ScreenCompositeOp }
250
- assert_nothing_raised { @img.compose = Magick::SoftLightCompositeOp }
251
- assert_nothing_raised { @img.compose = Magick::SrcAtopCompositeOp }
252
- assert_nothing_raised { @img.compose = Magick::SrcCompositeOp }
253
- assert_nothing_raised { @img.compose = Magick::SrcInCompositeOp }
254
- assert_nothing_raised { @img.compose = Magick::SrcOutCompositeOp }
255
- assert_nothing_raised { @img.compose = Magick::SrcOverCompositeOp }
256
- assert_nothing_raised { @img.compose = Magick::SubtractCompositeOp }
257
- assert_nothing_raised { @img.compose = Magick::ThresholdCompositeOp }
258
- assert_nothing_raised { @img.compose = Magick::XorCompositeOp }
259
- assert_nothing_raised { @img.compose = Magick::MathematicsCompositeOp }
260
- assert_nothing_raised { @img.compose = Magick::DivideSrcCompositeOp }
261
- assert_nothing_raised { @img.compose = Magick::MinusSrcCompositeOp }
262
- assert_nothing_raised { @img.compose = Magick::DarkenIntensityCompositeOp }
263
- assert_nothing_raised { @img.compose = Magick::LightenIntensityCompositeOp }
215
+ Magick::CompositeOperator.values do |composite|
216
+ assert_nothing_raised { @img.compose = composite }
217
+ end
264
218
  assert_raise(TypeError) { @img.compose = 2 }
265
219
  end
266
220
 
@@ -270,27 +224,10 @@ class Image_Attributes_UT < Test::Unit::TestCase
270
224
  assert_equal(Magick::UndefinedCompression, @img.compression)
271
225
  assert_nothing_raised { @img.compression = Magick::BZipCompression }
272
226
  assert_equal(Magick::BZipCompression, @img.compression)
273
- assert_nothing_raised { @img.compression = Magick::NoCompression }
274
- assert_nothing_raised { @img.compression = Magick::BZipCompression }
275
- assert_nothing_raised { @img.compression = Magick::B44Compression }
276
- assert_nothing_raised { @img.compression = Magick::B44ACompression }
277
- assert_nothing_raised { @img.compression = Magick::DXT1Compression }
278
- assert_nothing_raised { @img.compression = Magick::DXT3Compression }
279
- assert_nothing_raised { @img.compression = Magick::DXT5Compression }
280
- assert_nothing_raised { @img.compression = Magick::FaxCompression }
281
- assert_nothing_raised { @img.compression = Magick::Group4Compression }
282
- assert_nothing_raised { @img.compression = Magick::JPEGCompression }
283
- assert_nothing_raised { @img.compression = Magick::JPEG2000Compression }
284
- assert_nothing_raised { @img.compression = Magick::LosslessJPEGCompression }
285
- assert_nothing_raised { @img.compression = Magick::LZWCompression }
286
- assert_nothing_raised { @img.compression = Magick::PizCompression }
287
- assert_nothing_raised { @img.compression = Magick::Pxr24Compression }
288
- assert_nothing_raised { @img.compression = Magick::RLECompression }
289
- assert_nothing_raised { @img.compression = Magick::ZipCompression }
290
- assert_nothing_raised { @img.compression = Magick::ZipSCompression }
291
- assert_nothing_raised { @img.compression = Magick::LZMACompression }
292
- assert_nothing_raised { @img.compression = Magick::JBIG1Compression }
293
- assert_nothing_raised { @img.compression = Magick::JBIG2Compression }
227
+
228
+ Magick::CompressionType.values do |compression|
229
+ assert_nothing_raised { @img.compression = compression }
230
+ end
294
231
  assert_raise(TypeError) { @img.compression = 2 }
295
232
  end
296
233
 
@@ -307,6 +244,7 @@ class Image_Attributes_UT < Test::Unit::TestCase
307
244
  assert_nothing_raised { @img.density = '90x90' }
308
245
  assert_nothing_raised { @img.density = 'x90' }
309
246
  assert_nothing_raised { @img.density = '90' }
247
+ assert_nothing_raised { @img.density = Magick::Geometry.new(@img.columns / 2, @img.rows / 2, 5, 5) }
310
248
  assert_raise(TypeError) { @img.density = 2 }
311
249
  end
312
250
 
@@ -327,8 +265,10 @@ class Image_Attributes_UT < Test::Unit::TestCase
327
265
  assert_equal(Magick::UndefinedDispose, @img.dispose)
328
266
  assert_nothing_raised { @img.dispose = Magick::NoneDispose }
329
267
  assert_equal(Magick::NoneDispose, @img.dispose)
330
- assert_nothing_raised { @img.dispose = Magick::BackgroundDispose }
331
- assert_nothing_raised { @img.dispose = Magick::PreviousDispose }
268
+
269
+ Magick::DisposeType.values do |dispose|
270
+ assert_nothing_raised { @img.dispose = dispose }
271
+ end
332
272
  assert_raise(TypeError) { @img.dispose = 2 }
333
273
  end
334
274
 
@@ -367,33 +307,14 @@ class Image_Attributes_UT < Test::Unit::TestCase
367
307
 
368
308
  def test_filter
369
309
  assert_nothing_raised { @img.filter }
370
- assert_instance_of(Magick::FilterTypes, @img.filter)
310
+ assert_instance_of(Magick::FilterType, @img.filter)
371
311
  assert_equal(Magick::UndefinedFilter, @img.filter)
372
312
  assert_nothing_raised { @img.filter = Magick::PointFilter }
373
313
  assert_equal(Magick::PointFilter, @img.filter)
374
- assert_nothing_raised { @img.filter = Magick::BoxFilter }
375
- assert_nothing_raised { @img.filter = Magick::TriangleFilter }
376
- assert_nothing_raised { @img.filter = Magick::HermiteFilter }
377
- assert_nothing_raised { @img.filter = Magick::HanningFilter }
378
- assert_nothing_raised { @img.filter = Magick::HammingFilter }
379
- assert_nothing_raised { @img.filter = Magick::BlackmanFilter }
380
- assert_nothing_raised { @img.filter = Magick::GaussianFilter }
381
- assert_nothing_raised { @img.filter = Magick::QuadraticFilter }
382
- assert_nothing_raised { @img.filter = Magick::CubicFilter }
383
- assert_nothing_raised { @img.filter = Magick::CatromFilter }
384
- assert_nothing_raised { @img.filter = Magick::MitchellFilter }
385
- assert_nothing_raised { @img.filter = Magick::LanczosFilter }
386
- assert_nothing_raised { @img.filter = Magick::BesselFilter }
387
- assert_nothing_raised { @img.filter = Magick::SincFilter }
388
- assert_nothing_raised { @img.filter = Magick::JincFilter }
389
- assert_nothing_raised { @img.filter = Magick::SincFastFilter }
390
- assert_nothing_raised { @img.filter = Magick::LanczosSharpFilter }
391
- assert_nothing_raised { @img.filter = Magick::Lanczos2Filter }
392
- assert_nothing_raised { @img.filter = Magick::Lanczos2SharpFilter }
393
- assert_nothing_raised { @img.filter = Magick::RobidouxFilter }
394
- assert_nothing_raised { @img.filter = Magick::RobidouxSharpFilter }
395
- assert_nothing_raised { @img.filter = Magick::CosineFilter }
396
- assert_nothing_raised { @img.filter = Magick::SplineFilter }
314
+
315
+ Magick::FilterType.values do |filter|
316
+ assert_nothing_raised { @img.filter = filter }
317
+ end
397
318
  assert_raise(TypeError) { @img.filter = 2 }
398
319
  end
399
320
 
@@ -436,6 +357,7 @@ class Image_Attributes_UT < Test::Unit::TestCase
436
357
  def test_geometry
437
358
  assert_nothing_raised { @img.geometry }
438
359
  assert_nil(@img.geometry)
360
+ assert_nothing_raised { @img.geometry = nil }
439
361
  assert_nothing_raised { @img.geometry = '90x90' }
440
362
  assert_equal('90x90', @img.geometry)
441
363
  assert_nothing_raised { @img.geometry = Magick::Geometry.new(100, 80) }
@@ -443,9 +365,24 @@ class Image_Attributes_UT < Test::Unit::TestCase
443
365
  assert_raise(TypeError) { @img.geometry = [] }
444
366
  end
445
367
 
368
+ def test_gravity
369
+ assert_instance_of(Magick::GravityType, @img.gravity)
370
+
371
+ Magick::GravityType.values do |gravity|
372
+ assert_nothing_raised { @img.gravity = gravity }
373
+ end
374
+ assert_raise(TypeError) { @img.gravity = nil }
375
+ assert_raise(TypeError) { @img.gravity = Magick::PointFilter }
376
+ end
377
+
446
378
  def test_image_type
447
- assert_nothing_raised { @img.image_type }
448
379
  assert_instance_of(Magick::ImageType, @img.image_type)
380
+
381
+ Magick::ImageType.values do |image_type|
382
+ assert_nothing_raised { @img.image_type = image_type }
383
+ end
384
+ assert_raise(TypeError) { @img.image_type = nil }
385
+ assert_raise(TypeError) { @img.image_type = Magick::PointFilter }
449
386
  end
450
387
 
451
388
  def test_interlace_type
@@ -454,8 +391,10 @@ class Image_Attributes_UT < Test::Unit::TestCase
454
391
  assert_equal(Magick::NoInterlace, @img.interlace)
455
392
  assert_nothing_raised { @img.interlace = Magick::LineInterlace }
456
393
  assert_equal(Magick::LineInterlace, @img.interlace)
457
- assert_nothing_raised { @img.interlace = Magick::PlaneInterlace }
458
- assert_nothing_raised { @img.interlace = Magick::PartitionInterlace }
394
+
395
+ Magick::InterlaceType.values do |interlace|
396
+ assert_nothing_raised { @img.interlace = interlace }
397
+ end
459
398
  assert_raise(TypeError) { @img.interlace = 2 }
460
399
  end
461
400
 
@@ -538,14 +477,13 @@ class Image_Attributes_UT < Test::Unit::TestCase
538
477
  assert_nothing_raised { @img.orientation }
539
478
  assert_instance_of(Magick::OrientationType, @img.orientation)
540
479
  assert_equal(Magick::UndefinedOrientation, @img.orientation)
541
- assert_nothing_raised { @img.orientation = Magick::UndefinedOrientation }
542
480
  assert_nothing_raised { @img.orientation = Magick::TopLeftOrientation }
543
- assert_nothing_raised { @img.orientation = Magick::TopRightOrientation }
544
- assert_nothing_raised { @img.orientation = Magick::BottomRightOrientation }
545
- assert_nothing_raised { @img.orientation = Magick::LeftTopOrientation }
546
- assert_nothing_raised { @img.orientation = Magick::RightTopOrientation }
547
- assert_nothing_raised { @img.orientation = Magick::RightBottomOrientation }
548
- assert_nothing_raised { @img.orientation = Magick::LeftBottomOrientation }
481
+ assert_equal(Magick::TopLeftOrientation, @img.orientation)
482
+
483
+ Magick::OrientationType.values do |orientation|
484
+ assert_nothing_raised { @img.orientation = orientation }
485
+ end
486
+ assert_raise(TypeError) { @img.orientation = 2 }
549
487
  end
550
488
 
551
489
  def test_page
@@ -564,6 +502,19 @@ class Image_Attributes_UT < Test::Unit::TestCase
564
502
  assert_raise(TypeError) { @img.page = 2 }
565
503
  end
566
504
 
505
+ def test_pixel_interpolation_method
506
+ assert_nothing_raised { @img.pixel_interpolation_method }
507
+ assert_instance_of(Magick::PixelInterpolateMethod, @img.pixel_interpolation_method)
508
+ assert_equal(Magick::UndefinedInterpolatePixel, @img.pixel_interpolation_method)
509
+ assert_nothing_raised { @img.pixel_interpolation_method = Magick::AverageInterpolatePixel }
510
+ assert_equal(Magick::AverageInterpolatePixel, @img.pixel_interpolation_method)
511
+
512
+ Magick::PixelInterpolateMethod.values do |interpolate_pixel_method|
513
+ assert_nothing_raised { @img.pixel_interpolation_method = interpolate_pixel_method }
514
+ end
515
+ assert_raise(TypeError) { @img.pixel_interpolation_method = 2 }
516
+ end
517
+
567
518
  def test_quality
568
519
  assert_nothing_raised { @hat.quality }
569
520
  assert_equal(75, @hat.quality)
@@ -580,10 +531,10 @@ class Image_Attributes_UT < Test::Unit::TestCase
580
531
  assert_nothing_raised { @img.rendering_intent }
581
532
  assert_instance_of(Magick::RenderingIntent, @img.rendering_intent)
582
533
  assert_equal(Magick::PerceptualIntent, @img.rendering_intent)
583
- assert_nothing_raised { @img.rendering_intent = Magick::SaturationIntent }
584
- assert_nothing_raised { @img.rendering_intent = Magick::PerceptualIntent }
585
- assert_nothing_raised { @img.rendering_intent = Magick::AbsoluteIntent }
586
- assert_nothing_raised { @img.rendering_intent = Magick::RelativeIntent }
534
+
535
+ Magick::RenderingIntent.values do |rendering_intent|
536
+ assert_nothing_raised { @img.rendering_intent = rendering_intent }
537
+ end
587
538
  assert_raise(TypeError) { @img.rendering_intent = 2 }
588
539
  end
589
540
 
@@ -634,7 +585,10 @@ class Image_Attributes_UT < Test::Unit::TestCase
634
585
  assert_equal(Magick::UndefinedResolution, @img.units)
635
586
  assert_nothing_raised { @img.units = Magick::PixelsPerInchResolution }
636
587
  assert_equal(Magick::PixelsPerInchResolution, @img.units)
637
- assert_nothing_raised { @img.units = Magick::PixelsPerCentimeterResolution }
588
+
589
+ Magick::ResolutionType.values do |resolution|
590
+ assert_nothing_raised { @img.units = resolution }
591
+ end
638
592
  assert_raise(TypeError) { @img.units = 2 }
639
593
  end
640
594
 
@@ -643,10 +597,10 @@ class Image_Attributes_UT < Test::Unit::TestCase
643
597
  assert_equal(Magick::UndefinedVirtualPixelMethod, @img.virtual_pixel_method)
644
598
  assert_nothing_raised { @img.virtual_pixel_method = Magick::EdgeVirtualPixelMethod }
645
599
  assert_equal(Magick::EdgeVirtualPixelMethod, @img.virtual_pixel_method)
646
- assert_nothing_raised { @img.virtual_pixel_method = Magick::MirrorVirtualPixelMethod }
647
- assert_nothing_raised { @img.virtual_pixel_method = Magick::TileVirtualPixelMethod }
648
- assert_nothing_raised { @img.virtual_pixel_method = Magick::TransparentVirtualPixelMethod }
649
- assert_nothing_raised { @img.virtual_pixel_method = Magick::BackgroundVirtualPixelMethod }
600
+
601
+ Magick::VirtualPixelMethod.values do |virtual_pixel_method|
602
+ assert_nothing_raised { @img.virtual_pixel_method = virtual_pixel_method }
603
+ end
650
604
  assert_raise(TypeError) { @img.virtual_pixel_method = 2 }
651
605
  end
652
606
 
@@ -708,5 +662,5 @@ end # class Image_Attributes_UT
708
662
 
709
663
  if $PROGRAM_NAME == __FILE__
710
664
  FLOWER_HAT = '../doc/ex/images/Flower_Hat.jpg'
711
- Test::Unit::UI::Console::TestRunner.run(ImageAttributesUT) unless RUBY_VERSION[/^1\.9|^2/]
665
+ Test::Unit::UI::Console::TestRunner.run(ImageAttributesUT)
712
666
  end
@@ -1,6 +1,6 @@
1
1
  require 'rmagick'
2
2
  require 'test/unit'
3
- require 'test/unit/ui/console/testrunner' unless RUBY_VERSION[/^1\.9|^2/]
3
+ require 'test/unit/ui/console/testrunner'
4
4
 
5
5
  class ImportExportUT < Test::Unit::TestCase
6
6
  def setup
@@ -111,5 +111,5 @@ end
111
111
 
112
112
  if $PROGRAM_NAME == __FILE__
113
113
  IMAGES_DIR = '../doc/ex/images'
114
- Test::Unit::UI::Console::TestRunner.run(ImportExportUT) unless RUBY_VERSION[/^1\.9|^2/]
114
+ Test::Unit::UI::Console::TestRunner.run(ImportExportUT)
115
115
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'rmagick'
4
4
  require 'test/unit'
5
- require 'test/unit/ui/console/testrunner' unless RUBY_VERSION[/^1\.9|^2/]
5
+ require 'test/unit/ui/console/testrunner'
6
6
 
7
7
  class InfoUT < Test::Unit::TestCase
8
8
  def setup
@@ -64,6 +64,8 @@ class InfoUT < Test::Unit::TestCase
64
64
  assert_equal('string', @info.authenticate)
65
65
  assert_nothing_raised { @info.authenticate = nil }
66
66
  assert_nil(@info.authenticate)
67
+ assert_nothing_raised { @info.authenticate = '' }
68
+ assert_equal('', @info.authenticate)
67
69
  end
68
70
 
69
71
  def test_background_color
@@ -436,5 +438,7 @@ class InfoUT < Test::Unit::TestCase
436
438
  assert_equal('string', @info.view)
437
439
  assert_nothing_raised { @info.view = nil }
438
440
  assert_nil(@info.view)
441
+ assert_nothing_raised { @info.view = '' }
442
+ assert_equal('', @info.view)
439
443
  end
440
444
  end
@@ -0,0 +1,67 @@
1
+ # !/usr/bin/env ruby -w
2
+
3
+ require 'rmagick'
4
+ require 'test/unit'
5
+ require 'test/unit/ui/console/testrunner'
6
+
7
+ class KernelInfoUT < Test::Unit::TestCase
8
+ setup do
9
+ @kernel = Magick::KernelInfo.new('Octagon')
10
+ end
11
+
12
+ def test_new
13
+ Magick::KernelInfoType.values do |kernel|
14
+ k = kernel.to_s.sub('Kernel', '')
15
+
16
+ if kernel == Magick::UserDefinedKernel
17
+ assert_raise(RuntimeError) { Magick::KernelInfo.new(k) }
18
+ else
19
+ assert_instance_of(Magick::KernelInfo, Magick::KernelInfo.new(k))
20
+ end
21
+ end
22
+ assert_raise(RuntimeError) { Magick::KernelInfo.new('') }
23
+ assert_raise(TypeError) { Magick::KernelInfo.new(42) }
24
+ end
25
+
26
+ def test_zero_nans
27
+ assert_nil(@kernel.zero_nans)
28
+ end
29
+
30
+ def test_unity_add
31
+ assert_nil(@kernel.unity_add(1.0))
32
+ assert_nil(@kernel.unity_add(12))
33
+ assert_raise(TypeError) { @kernel.unity_add('x') }
34
+ end
35
+
36
+ def test_show
37
+ assert_nil(@kernel.show)
38
+ end
39
+
40
+ def test_scale
41
+ Magick::GeometryFlags.values do |flag|
42
+ assert_nil(@kernel.scale(1.0, flag))
43
+ assert_nil(@kernel.scale(42, flag))
44
+ end
45
+ assert_raise(ArgumentError) { @kernel.scale(42, 'x') }
46
+ assert_raise(ArgumentError) { @kernel.scale(42, Magick::BoldWeight) }
47
+ end
48
+
49
+ def test_scale_geometry
50
+ assert_nil(@kernel.scale_geometry('-set option:convolve:scale 1.0'))
51
+ assert_raise(TypeError) { @kernel.scale_geometry(42) }
52
+ end
53
+
54
+ def test_clone
55
+ assert_instance_of(Magick::KernelInfo, @kernel.clone)
56
+ assert_not_same(@kernel, @kernel.clone)
57
+ end
58
+
59
+ def test_builtin
60
+ assert_instance_of(Magick::KernelInfo, Magick::KernelInfo.builtin(Magick::UnityKernel, ''))
61
+ assert_instance_of(Magick::KernelInfo, Magick::KernelInfo.builtin(Magick::GaussianKernel, 'Gaussian:10,5'))
62
+ assert_instance_of(Magick::KernelInfo, Magick::KernelInfo.builtin(Magick::LoGKernel, 'LoG:10,5'))
63
+ assert_instance_of(Magick::KernelInfo, Magick::KernelInfo.builtin(Magick::DoGKernel, 'DoG:10,5'))
64
+ assert_instance_of(Magick::KernelInfo, Magick::KernelInfo.builtin(Magick::BlurKernel, 'Blur:10,5,1'))
65
+ assert_instance_of(Magick::KernelInfo, Magick::KernelInfo.builtin(Magick::CometKernel, 'Comet:10,5,1'))
66
+ end
67
+ end