rmagick 2.13.1 → 2.13.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +21 -0
  3. data/.travis.yml +57 -0
  4. data/CONTRIBUTING.md +22 -0
  5. data/ChangeLog +49 -2
  6. data/Gemfile +7 -0
  7. data/LICENSE +20 -0
  8. data/README.textile +161 -0
  9. data/Rakefile +176 -0
  10. data/before_install_linux.sh +12 -0
  11. data/before_install_osx.sh +2 -0
  12. data/doc/.cvsignore +1 -0
  13. data/doc/comtasks.html +2 -2
  14. data/doc/constants.html +2 -2
  15. data/doc/draw.html +2 -2
  16. data/doc/ex/PreserveAspectRatio.rb +0 -0
  17. data/doc/ex/ViewBox.rb +0 -0
  18. data/doc/ex/adaptive_threshold.rb +0 -0
  19. data/doc/ex/add_noise.rb +0 -0
  20. data/doc/ex/affine.rb +0 -0
  21. data/doc/ex/affine_transform.rb +0 -0
  22. data/doc/ex/arc.rb +0 -0
  23. data/doc/ex/arcpath.rb +0 -0
  24. data/doc/ex/average.rb +0 -0
  25. data/doc/ex/axes.rb +0 -0
  26. data/doc/ex/bilevel_channel.rb +0 -0
  27. data/doc/ex/blur_image.rb +0 -0
  28. data/doc/ex/border.rb +0 -0
  29. data/doc/ex/bounding_box.rb +0 -0
  30. data/doc/ex/cbezier1.rb +0 -0
  31. data/doc/ex/cbezier2.rb +0 -0
  32. data/doc/ex/cbezier3.rb +0 -0
  33. data/doc/ex/cbezier4.rb +0 -0
  34. data/doc/ex/cbezier5.rb +0 -0
  35. data/doc/ex/cbezier6.rb +0 -0
  36. data/doc/ex/channel.rb +0 -0
  37. data/doc/ex/charcoal.rb +0 -0
  38. data/doc/ex/chop.rb +0 -0
  39. data/doc/ex/circle.rb +0 -0
  40. data/doc/ex/clip_path.rb +0 -0
  41. data/doc/ex/coalesce.rb +0 -0
  42. data/doc/ex/color_fill_to_border.rb +0 -0
  43. data/doc/ex/color_floodfill.rb +0 -0
  44. data/doc/ex/color_histogram.rb +0 -0
  45. data/doc/ex/color_reset.rb +0 -0
  46. data/doc/ex/colorize.rb +0 -0
  47. data/doc/ex/colors.rb +0 -0
  48. data/doc/ex/composite.rb +0 -0
  49. data/doc/ex/composite_layers.rb +0 -0
  50. data/doc/ex/contrast.rb +0 -0
  51. data/doc/ex/crop.rb +0 -0
  52. data/doc/ex/cycle_colormap.rb +0 -0
  53. data/doc/ex/drawcomp.rb +0 -0
  54. data/doc/ex/drop_shadow.rb +0 -0
  55. data/doc/ex/edge.rb +0 -0
  56. data/doc/ex/ellipse.rb +0 -0
  57. data/doc/ex/emboss.rb +0 -0
  58. data/doc/ex/enhance.rb +0 -0
  59. data/doc/ex/equalize.rb +0 -0
  60. data/doc/ex/evenodd.rb +0 -0
  61. data/doc/ex/flatten_images.rb +0 -0
  62. data/doc/ex/flip.rb +0 -0
  63. data/doc/ex/flop.rb +0 -0
  64. data/doc/ex/fonts.rb +0 -0
  65. data/doc/ex/frame.rb +0 -0
  66. data/doc/ex/gaussian_blur.rb +0 -0
  67. data/doc/ex/get_pixels.rb +0 -0
  68. data/doc/ex/gradientfill.rb +0 -0
  69. data/doc/ex/grav.rb +0 -0
  70. data/doc/ex/gravity.rb +0 -0
  71. data/doc/ex/hatchfill.rb +0 -0
  72. data/doc/ex/images/image_with_profile.jpg +0 -0
  73. data/doc/ex/images/logo400x83.gif +0 -0
  74. data/doc/ex/implode.rb +0 -0
  75. data/doc/ex/level.rb +0 -0
  76. data/doc/ex/line.rb +0 -0
  77. data/doc/ex/mask.rb +1 -1
  78. data/doc/ex/matte_fill_to_border.rb +0 -0
  79. data/doc/ex/matte_floodfill.rb +0 -0
  80. data/doc/ex/matte_replace.rb +0 -0
  81. data/doc/ex/median_filter.rb +0 -0
  82. data/doc/ex/modulate.rb +0 -0
  83. data/doc/ex/mono.rb +0 -0
  84. data/doc/ex/morph.rb +0 -0
  85. data/doc/ex/mosaic.rb +0 -0
  86. data/doc/ex/motion_blur.rb +0 -0
  87. data/doc/ex/negate.rb +0 -0
  88. data/doc/ex/nested_rvg.rb +0 -0
  89. data/doc/ex/nonzero.rb +0 -0
  90. data/doc/ex/normalize.rb +0 -0
  91. data/doc/ex/oil_paint.rb +0 -0
  92. data/doc/ex/opacity.rb +0 -0
  93. data/doc/ex/ordered_dither.rb +0 -0
  94. data/doc/ex/path.rb +0 -0
  95. data/doc/ex/pattern1.rb +0 -0
  96. data/doc/ex/pattern2.rb +0 -0
  97. data/doc/ex/polygon.rb +0 -0
  98. data/doc/ex/polyline.rb +0 -0
  99. data/doc/ex/preview.rb +0 -0
  100. data/doc/ex/qbezierpath.rb +0 -0
  101. data/doc/ex/quantize-m.rb +0 -0
  102. data/doc/ex/radial_blur.rb +0 -0
  103. data/doc/ex/raise.rb +0 -0
  104. data/doc/ex/rectangle.rb +0 -0
  105. data/doc/ex/reduce_noise.rb +0 -0
  106. data/doc/ex/roll.rb +0 -0
  107. data/doc/ex/rotate.rb +0 -0
  108. data/doc/ex/rotate_f.rb +0 -0
  109. data/doc/ex/roundrect.rb +0 -0
  110. data/doc/ex/rubyname.rb +0 -0
  111. data/doc/ex/rvg_linecap.rb +0 -0
  112. data/doc/ex/rvg_linejoin.rb +0 -0
  113. data/doc/ex/rvg_opacity.rb +0 -0
  114. data/doc/ex/rvg_stroke_dasharray.rb +0 -0
  115. data/doc/ex/segment.rb +0 -0
  116. data/doc/ex/shade.rb +0 -0
  117. data/doc/ex/shave.rb +0 -0
  118. data/doc/ex/shear.rb +0 -0
  119. data/doc/ex/sketch.rb +0 -0
  120. data/doc/ex/skewx.rb +0 -0
  121. data/doc/ex/skewy.rb +0 -0
  122. data/doc/ex/smile.rb +0 -0
  123. data/doc/ex/solarize.rb +0 -0
  124. data/doc/ex/spread.rb +0 -0
  125. data/doc/ex/stegano.rb +0 -0
  126. data/doc/ex/stroke_dasharray.rb +0 -0
  127. data/doc/ex/stroke_fill.rb +0 -0
  128. data/doc/ex/stroke_linecap.rb +0 -0
  129. data/doc/ex/stroke_linejoin.rb +0 -0
  130. data/doc/ex/stroke_width.rb +0 -0
  131. data/doc/ex/swirl.rb +0 -0
  132. data/doc/ex/text.rb +0 -0
  133. data/doc/ex/text_align.rb +0 -0
  134. data/doc/ex/text_antialias.rb +0 -0
  135. data/doc/ex/text_undercolor.rb +0 -0
  136. data/doc/ex/texture_fill_to_border.rb +0 -0
  137. data/doc/ex/texture_floodfill.rb +0 -0
  138. data/doc/ex/texturefill.rb +0 -0
  139. data/doc/ex/threshold.rb +0 -0
  140. data/doc/ex/to_blob.rb +0 -0
  141. data/doc/ex/translate.rb +0 -0
  142. data/doc/ex/transparent.rb +0 -0
  143. data/doc/ex/unsharp_mask.rb +0 -0
  144. data/doc/ex/wave.rb +0 -0
  145. data/doc/ilist.html +2 -2
  146. data/doc/image1.html +2 -2
  147. data/doc/image2.html +2 -2
  148. data/doc/image3.html +2 -2
  149. data/doc/imageattrs.html +2 -2
  150. data/doc/imusage.html +2 -2
  151. data/doc/index.html +3 -3
  152. data/doc/info.html +2 -2
  153. data/doc/magick.html +2 -2
  154. data/doc/optequiv.html +2 -2
  155. data/doc/rvg.html +2 -2
  156. data/doc/rvgclip.html +2 -2
  157. data/doc/rvggroup.html +2 -2
  158. data/doc/rvgimage.html +2 -2
  159. data/doc/rvgpattern.html +2 -2
  160. data/doc/rvgshape.html +2 -2
  161. data/doc/rvgstyle.html +2 -2
  162. data/doc/rvgtext.html +2 -2
  163. data/doc/rvgtspan.html +2 -2
  164. data/doc/rvgtut.html +2 -2
  165. data/doc/rvguse.html +2 -2
  166. data/doc/rvgxform.html +2 -2
  167. data/doc/struct.html +2 -2
  168. data/doc/usage.html +2 -2
  169. data/examples/crop_with_gravity.rb +0 -0
  170. data/examples/demo.rb +0 -0
  171. data/examples/describe.rb +0 -0
  172. data/examples/identify.rb +1 -1
  173. data/examples/rotating_text.rb +0 -0
  174. data/ext/RMagick/extconf.rb +62 -31
  175. data/ext/RMagick/rmagick.c +15 -15
  176. data/ext/RMagick/rmagick.h +9 -7
  177. data/ext/RMagick/rmdraw.c +12 -12
  178. data/ext/RMagick/rmenum.c +2 -2
  179. data/ext/RMagick/rmfill.c +25 -25
  180. data/ext/RMagick/rmilist.c +121 -104
  181. data/ext/RMagick/rmimage.c +743 -548
  182. data/ext/RMagick/rminfo.c +15 -15
  183. data/ext/RMagick/rmmain.c +27 -3
  184. data/ext/RMagick/rmpixel.c +25 -27
  185. data/ext/RMagick/rmstruct.c +1 -1
  186. data/ext/RMagick/rmutil.c +18 -18
  187. data/lib/RMagick.rb +1 -1962
  188. data/lib/rmagick/version.rb +5 -0
  189. data/lib/rmagick.rb +1 -0
  190. data/lib/rmagick_internal.rb +1964 -0
  191. data/rmagick.gemspec +21 -9
  192. data/test/Draw.rb +121 -0
  193. data/test/Image1.rb +763 -0
  194. data/test/Image2.rb +1312 -0
  195. data/test/Image3.rb +1033 -0
  196. data/test/ImageList1.rb +808 -0
  197. data/test/ImageList2.rb +389 -0
  198. data/test/Image_attributes.rb +700 -0
  199. data/test/Import_Export.rb +126 -0
  200. data/test/Info.rb +349 -0
  201. data/test/Magick.rb +324 -0
  202. data/test/Pixel.rb +119 -0
  203. data/test/Preview.rb +62 -0
  204. data/test/cmyk.icm +0 -0
  205. data/test/srgb.icm +0 -0
  206. data/test/test_all_basic.rb +34 -0
  207. data/test/tmpnam_test.rb +50 -0
  208. metadata +395 -352
  209. data/README-Mac-OSX.txt +0 -1
  210. data/README.html +0 -10
  211. data/build_tarball.rake +0 -215
  212. data/ext/RMagick/MANIFEST +0 -358
  213. data/metaconfig +0 -7
  214. data/post-clean.rb +0 -12
  215. data/post-install.rb +0 -50
  216. data/post-setup.rb +0 -254
  217. data/setup.rb +0 -1585
  218. data/uninstall.rb +0 -74
@@ -0,0 +1,700 @@
1
+ #! /usr/local/bin/ruby -w
2
+
3
+ require 'fileutils'
4
+ require 'RMagick'
5
+ require 'test/unit'
6
+ require 'test/unit/ui/console/testrunner' if !RUBY_VERSION[/^1\.9|^2/]
7
+
8
+ # TODO
9
+ # test frozen attributes!
10
+ # improve test_directory
11
+ # improve test_montage
12
+
13
+
14
+ class Image_Attributes_UT < Test::Unit::TestCase
15
+ FreezeError = RUBY_VERSION[/^1\.9|^2/] ? RuntimeError : TypeError
16
+
17
+ def setup
18
+ @img = Magick::Image.new(100, 100)
19
+ gc = Magick::Draw.new
20
+
21
+ gc.stroke_width(5)
22
+ gc.circle(50, 50, 80, 80)
23
+ gc.draw(@img)
24
+
25
+ @hat = Magick::Image.read(FLOWER_HAT).first
26
+ @p = Magick::Image.read(IMAGE_WITH_PROFILE).first.color_profile
27
+ end
28
+
29
+ # Test old alpha attribute. New alpha() behavior is tested in Image1.rb
30
+ def test_alpha
31
+ assert(@img.alpha)
32
+ assert_nothing_raised { @img.alpha = Magick::DeactivateAlphaChannel }
33
+ assert(!@img.alpha)
34
+ end
35
+
36
+ def test_background_color
37
+ assert_nothing_raised { @img.background_color }
38
+ assert_equal("white", @img.background_color)
39
+ assert_nothing_raised { @img.background_color = "#dfdfdf" }
40
+ #assert_equal("rgb(223,223,223)", @img.background_color)
41
+ assert_equal("#DFDFDFDFDFDF", @img.background_color)
42
+ assert_nothing_raised { @img.background_color = Magick::Pixel.new(Magick::QuantumRange, Magick::QuantumRange/2.0, Magick::QuantumRange/2.0) }
43
+ #assert_equal("rgb(100%,49.9992%,49.9992%)", @img.background_color)
44
+ assert_equal("#FFFF7FFF7FFF", @img.background_color)
45
+ assert_raise(TypeError) { @img.background_color = 2 }
46
+ end
47
+
48
+ def test_base_columns
49
+ assert_nothing_raised { @img.base_columns }
50
+ assert_equal(0, @img.base_columns)
51
+ assert_raise(NoMethodError) { @img.base_columns = 1 }
52
+ end
53
+
54
+ def test_base_filename
55
+ assert_nothing_raised { @img.base_filename }
56
+ assert_equal("", @img.base_filename)
57
+ assert_raise(NoMethodError) { @img.base_filename = "xxx" }
58
+ end
59
+
60
+ def test_base_rows
61
+ assert_nothing_raised { @img.base_rows }
62
+ assert_equal(0, @img.base_rows)
63
+ assert_raise(NoMethodError) { @img.base_rows = 1 }
64
+ end
65
+
66
+ def test_bias
67
+ assert_nothing_raised { @img.bias }
68
+ assert_equal(0.0, @img.bias)
69
+ assert_instance_of(Float, @img.bias)
70
+
71
+ assert_nothing_raised { @img.bias = 0.1 }
72
+ assert_in_delta(Magick::QuantumRange * 0.1, @img.bias, 0.1)
73
+
74
+ assert_nothing_raised { @img.bias = '10%' }
75
+ assert_in_delta(Magick::QuantumRange * 0.10, @img.bias, 0.1)
76
+
77
+ assert_raise(TypeError) { @img.bias = [] }
78
+ assert_raise(ArgumentError) { @img.bias = 'x' }
79
+ end
80
+
81
+ def test_black_point_compensation
82
+ assert_nothing_raised { @img.black_point_compensation = true }
83
+ assert(@img.black_point_compensation)
84
+ assert_nothing_raised { @img.black_point_compensation = false }
85
+ assert_equal(false, @img.black_point_compensation)
86
+ end
87
+
88
+ def test_blur
89
+ assert_nothing_raised { @img.blur }
90
+ assert_equal(1.0, @img.blur)
91
+ assert_nothing_raised { @img.blur = 2.0 }
92
+ assert_raise(TypeError) { @img.blur = 'x' }
93
+ end
94
+
95
+ def test_border_color
96
+ assert_nothing_raised { @img.border_color }
97
+ #assert_equal("rgb(223,223,223)", @img.border_color)
98
+ assert_equal("#DFDFDFDFDFDF", @img.border_color)
99
+ assert_nothing_raised { @img.border_color = "red" }
100
+ assert_equal("red", @img.border_color)
101
+ assert_nothing_raised { @img.border_color = Magick::Pixel.new(Magick::QuantumRange, Magick::QuantumRange/2, Magick::QuantumRange/2) }
102
+ #assert_equal("rgb(100%,49.9992%,49.9992%)", @img.border_color)
103
+ assert_equal("#FFFF7FFF7FFF", @img.border_color)
104
+ assert_raise(TypeError) { @img.border_color = 2 }
105
+ end
106
+
107
+ def test_bounding_box
108
+ assert_nothing_raised { @img.bounding_box }
109
+ box = @img.bounding_box
110
+ assert_equal(87, box.width)
111
+ assert_equal(87, box.height)
112
+ assert_equal(7, box.x)
113
+ assert_equal(7, box.y)
114
+ assert_raise(NoMethodError) { @img.bounding_box = 2 }
115
+ end
116
+
117
+ def test_chromaticity
118
+ chrom = @img.chromaticity
119
+ assert_nothing_raised { @img.chromaticity }
120
+ assert_instance_of(Magick::Chromaticity, chrom)
121
+ assert_equal(0, chrom.red_primary.x)
122
+ assert_equal(0, chrom.red_primary.y)
123
+ assert_equal(0, chrom.red_primary.z)
124
+ assert_equal(0, chrom.green_primary.x)
125
+ assert_equal(0, chrom.green_primary.y)
126
+ assert_equal(0, chrom.green_primary.z)
127
+ assert_equal(0, chrom.blue_primary.x)
128
+ assert_equal(0, chrom.blue_primary.y)
129
+ assert_equal(0, chrom.blue_primary.z)
130
+ assert_equal(0, chrom.white_point.x)
131
+ assert_equal(0, chrom.white_point.y)
132
+ assert_equal(0, chrom.white_point.z)
133
+ assert_nothing_raised { @img.chromaticity = chrom }
134
+ assert_raise(TypeError) { @img.chromaticity = 2 }
135
+ end
136
+
137
+ def test_class_type
138
+ assert_nothing_raised { @img.class_type }
139
+ assert_instance_of(Magick::ClassType, @img.class_type)
140
+ assert_equal(Magick::DirectClass, @img.class_type)
141
+ assert_nothing_raised { @img.class_type = Magick::PseudoClass }
142
+ assert_equal(Magick::PseudoClass, @img.class_type)
143
+ assert_raise(TypeError) { @img.class_type = 2 }
144
+ end
145
+
146
+ def test_color_profile
147
+ assert_nothing_raised { @img.color_profile }
148
+ assert_nil(@img.color_profile)
149
+ assert_nothing_raised { @img.color_profile = @p }
150
+ assert_equal(@p, @img.color_profile)
151
+ assert_raise(TypeError) { @img.color_profile = 2 }
152
+ end
153
+
154
+ def test_colors
155
+ assert_nothing_raised { @img.colors }
156
+ assert_equal(0, @img.colors)
157
+ img = @img.copy
158
+ img.class_type = Magick::PseudoClass
159
+ assert_equal(40, img.colors)
160
+ assert_raise(NoMethodError) { img.colors = 2 }
161
+ end
162
+
163
+ def test_colorspace
164
+ assert_nothing_raised { @img.colorspace }
165
+ assert_instance_of(Magick::ColorspaceType, @img.colorspace)
166
+ if IM_VERSION < Gem::Version.new("6.7.5") || (IM_VERSION == Gem::Version.new("6.7.5") && IM_REVISION < Gem::Version.new("5"))
167
+ assert_equal(Magick::RGBColorspace, @img.colorspace)
168
+ else
169
+ assert_equal(Magick::SRGBColorspace, @img.colorspace)
170
+ end
171
+ img = @img.copy
172
+ assert_nothing_raised { img.colorspace = Magick::GRAYColorspace }
173
+ assert_equal(Magick::GRAYColorspace, img.colorspace)
174
+ assert_raise(TypeError) { @img.colorspace = 2 }
175
+ Magick::ColorspaceType.values.each do |cs|
176
+ assert_nothing_raised { img.colorspace = cs }
177
+ end
178
+ end
179
+
180
+ def test_columns
181
+ assert_nothing_raised { @img.columns }
182
+ assert_equal(100, @img.columns)
183
+ assert_raise(NoMethodError) { @img.columns = 2 }
184
+ end
185
+
186
+ def test_compose
187
+ assert_nothing_raised { @img.compose }
188
+ assert_instance_of(Magick::CompositeOperator, @img.compose)
189
+ assert_equal(Magick::OverCompositeOp, @img.compose)
190
+ assert_raise(TypeError) { @img.compose = 2 }
191
+ assert_nothing_raised { @img.compose = Magick::UndefinedCompositeOp }
192
+ assert_equal(Magick::UndefinedCompositeOp, @img.compose)
193
+
194
+ assert_nothing_raised { @img.compose = Magick::NoCompositeOp }
195
+ assert_nothing_raised { @img.compose = Magick::AddCompositeOp }
196
+ assert_nothing_raised { @img.compose = Magick::AtopCompositeOp }
197
+ assert_nothing_raised { @img.compose = Magick::BlendCompositeOp }
198
+ assert_nothing_raised { @img.compose = Magick::BumpmapCompositeOp }
199
+ assert_nothing_raised { @img.compose = Magick::ClearCompositeOp }
200
+ assert_nothing_raised { @img.compose = Magick::ColorBurnCompositeOp }
201
+ assert_nothing_raised { @img.compose = Magick::ColorDodgeCompositeOp }
202
+ assert_nothing_raised { @img.compose = Magick::ColorizeCompositeOp }
203
+ assert_nothing_raised { @img.compose = Magick::CopyBlackCompositeOp }
204
+ assert_nothing_raised { @img.compose = Magick::CopyBlueCompositeOp }
205
+ assert_nothing_raised { @img.compose = Magick::CopyCompositeOp }
206
+ assert_nothing_raised { @img.compose = Magick::CopyCyanCompositeOp }
207
+ assert_nothing_raised { @img.compose = Magick::CopyGreenCompositeOp }
208
+ assert_nothing_raised { @img.compose = Magick::CopyMagentaCompositeOp }
209
+ assert_nothing_raised { @img.compose = Magick::CopyOpacityCompositeOp }
210
+ assert_nothing_raised { @img.compose = Magick::CopyRedCompositeOp }
211
+ assert_nothing_raised { @img.compose = Magick::CopyYellowCompositeOp }
212
+ assert_nothing_raised { @img.compose = Magick::DarkenCompositeOp }
213
+ assert_nothing_raised { @img.compose = Magick::DstAtopCompositeOp }
214
+ assert_nothing_raised { @img.compose = Magick::DstCompositeOp }
215
+ assert_nothing_raised { @img.compose = Magick::DstInCompositeOp }
216
+ assert_nothing_raised { @img.compose = Magick::DstOutCompositeOp }
217
+ assert_nothing_raised { @img.compose = Magick::DstOverCompositeOp }
218
+ assert_nothing_raised { @img.compose = Magick::DifferenceCompositeOp }
219
+ assert_nothing_raised { @img.compose = Magick::DisplaceCompositeOp }
220
+ assert_nothing_raised { @img.compose = Magick::DissolveCompositeOp }
221
+ assert_nothing_raised { @img.compose = Magick::ExclusionCompositeOp }
222
+ assert_nothing_raised { @img.compose = Magick::HardLightCompositeOp }
223
+ assert_nothing_raised { @img.compose = Magick::HueCompositeOp }
224
+ assert_nothing_raised { @img.compose = Magick::InCompositeOp }
225
+ assert_nothing_raised { @img.compose = Magick::LightenCompositeOp }
226
+ assert_nothing_raised { @img.compose = Magick::LuminizeCompositeOp }
227
+ assert_nothing_raised { @img.compose = Magick::MinusCompositeOp }
228
+ assert_nothing_raised { @img.compose = Magick::ModulateCompositeOp }
229
+ assert_nothing_raised { @img.compose = Magick::MultiplyCompositeOp }
230
+ assert_nothing_raised { @img.compose = Magick::OutCompositeOp }
231
+ assert_nothing_raised { @img.compose = Magick::OverCompositeOp }
232
+ assert_nothing_raised { @img.compose = Magick::OverlayCompositeOp }
233
+ assert_nothing_raised { @img.compose = Magick::PlusCompositeOp }
234
+ assert_nothing_raised { @img.compose = Magick::ReplaceCompositeOp }
235
+ assert_nothing_raised { @img.compose = Magick::SaturateCompositeOp }
236
+ assert_nothing_raised { @img.compose = Magick::ScreenCompositeOp }
237
+ assert_nothing_raised { @img.compose = Magick::SoftLightCompositeOp }
238
+ assert_nothing_raised { @img.compose = Magick::SrcAtopCompositeOp }
239
+ assert_nothing_raised { @img.compose = Magick::SrcCompositeOp }
240
+ assert_nothing_raised { @img.compose = Magick::SrcInCompositeOp }
241
+ assert_nothing_raised { @img.compose = Magick::SrcOutCompositeOp }
242
+ assert_nothing_raised { @img.compose = Magick::SrcOverCompositeOp }
243
+ assert_nothing_raised { @img.compose = Magick::SubtractCompositeOp }
244
+ assert_nothing_raised { @img.compose = Magick::ThresholdCompositeOp }
245
+ assert_nothing_raised { @img.compose = Magick::XorCompositeOp }
246
+ assert_raise(TypeError) { @img.compose = 2 }
247
+ end
248
+
249
+ def test_compression
250
+ assert_nothing_raised { @img.compression }
251
+ assert_instance_of(Magick::CompressionType, @img.compression)
252
+ assert_equal(Magick::UndefinedCompression, @img.compression)
253
+ assert_nothing_raised { @img.compression = Magick::BZipCompression }
254
+ assert_equal(Magick::BZipCompression, @img.compression)
255
+ assert_nothing_raised { @img.compression = Magick::NoCompression }
256
+ assert_nothing_raised { @img.compression = Magick::BZipCompression }
257
+ assert_nothing_raised { @img.compression = Magick::B44Compression }
258
+ assert_nothing_raised { @img.compression = Magick::B44ACompression }
259
+ assert_nothing_raised { @img.compression = Magick::DXT1Compression }
260
+ assert_nothing_raised { @img.compression = Magick::DXT3Compression }
261
+ assert_nothing_raised { @img.compression = Magick::DXT5Compression }
262
+ assert_nothing_raised { @img.compression = Magick::FaxCompression }
263
+ assert_nothing_raised { @img.compression = Magick::Group4Compression }
264
+ assert_nothing_raised { @img.compression = Magick::JPEGCompression }
265
+ assert_nothing_raised { @img.compression = Magick::JPEG2000Compression }
266
+ assert_nothing_raised { @img.compression = Magick::LosslessJPEGCompression }
267
+ assert_nothing_raised { @img.compression = Magick::LZWCompression }
268
+ assert_nothing_raised { @img.compression = Magick::PizCompression }
269
+ assert_nothing_raised { @img.compression = Magick::Pxr24Compression }
270
+ assert_nothing_raised { @img.compression = Magick::RLECompression }
271
+ assert_nothing_raised { @img.compression = Magick::ZipCompression }
272
+ assert_nothing_raised { @img.compression = Magick::ZipSCompression }
273
+ assert_raise(TypeError) { @img.compression = 2 }
274
+ end
275
+
276
+ def test_delay
277
+ assert_nothing_raised { @img.delay }
278
+ assert_equal(0, @img.delay)
279
+ assert_nothing_raised { @img.delay = 10 }
280
+ assert_equal(10, @img.delay)
281
+ assert_raise(TypeError) { @img.delay = 'x' }
282
+ end
283
+
284
+ def test_density
285
+ assert_nothing_raised { @img.density }
286
+ assert_nothing_raised { @img.density = '90x90' }
287
+ assert_nothing_raised { @img.density = 'x90' }
288
+ assert_nothing_raised { @img.density = '90' }
289
+ assert_raise(TypeError) { @img.density = 2 }
290
+ end
291
+
292
+ def test_depth
293
+ assert_equal(Magick::MAGICKCORE_QUANTUM_DEPTH, @img.depth)
294
+ assert_raise(NoMethodError) { @img.depth = 2 }
295
+ end
296
+
297
+ def test_directory
298
+ assert_nothing_raised { @img.directory }
299
+ assert_nil(@img.directory)
300
+ assert_raise(NoMethodError) { @img.directory = nil }
301
+ end
302
+
303
+ def test_dispose
304
+ assert_nothing_raised { @img.dispose }
305
+ assert_instance_of(Magick::DisposeType, @img.dispose)
306
+ assert_equal(Magick::UndefinedDispose, @img.dispose)
307
+ assert_nothing_raised { @img.dispose = Magick::NoneDispose }
308
+ assert_equal(Magick::NoneDispose, @img.dispose)
309
+ assert_nothing_raised { @img.dispose = Magick::BackgroundDispose }
310
+ assert_nothing_raised { @img.dispose = Magick::PreviousDispose }
311
+ assert_raise(TypeError) { @img.dispose = 2 }
312
+ end
313
+
314
+ def test_endian
315
+ assert_nothing_raised { @img.endian }
316
+ assert_instance_of(Magick::EndianType, @img.endian)
317
+ assert_equal(Magick::UndefinedEndian, @img.endian)
318
+ assert_nothing_raised { @img.endian = Magick::LSBEndian }
319
+ assert_equal(Magick::LSBEndian, @img.endian)
320
+ assert_nothing_raised { @img.endian = Magick::MSBEndian }
321
+ assert_raise(TypeError) { @img.endian = 2 }
322
+ end
323
+
324
+ def test_extract_info
325
+ assert_nothing_raised { @img.extract_info }
326
+ assert_instance_of(Magick::Rectangle, @img.extract_info)
327
+ ext = @img.extract_info
328
+ assert_equal(0, ext.x)
329
+ assert_equal(0, ext.y)
330
+ assert_equal(0, ext.width)
331
+ assert_equal(0, ext.height)
332
+ ext = Magick::Rectangle.new(1, 2, 3, 4)
333
+ assert_nothing_raised { @img.extract_info = ext }
334
+ assert_equal(1, ext.width)
335
+ assert_equal(2, ext.height)
336
+ assert_equal(3, ext.x)
337
+ assert_equal(4, ext.y)
338
+ assert_raise(TypeError) { @img.extract_info = 2 }
339
+ end
340
+
341
+ def test_filename
342
+ assert_nothing_raised { @img.filename }
343
+ assert_equal("", @img.filename)
344
+ assert_raises(NoMethodError) { @img.filename = 'xxx' }
345
+ end
346
+
347
+ def test_filter
348
+ assert_nothing_raised { @img.filter }
349
+ assert_instance_of(Magick::FilterTypes, @img.filter)
350
+ assert_equal(Magick::UndefinedFilter, @img.filter)
351
+ assert_nothing_raised { @img.filter = Magick::PointFilter }
352
+ assert_equal(Magick::PointFilter, @img.filter)
353
+ assert_nothing_raised { @img.filter = Magick::BoxFilter }
354
+ assert_nothing_raised { @img.filter = Magick::TriangleFilter }
355
+ assert_nothing_raised { @img.filter = Magick::HermiteFilter }
356
+ assert_nothing_raised { @img.filter = Magick::HanningFilter }
357
+ assert_nothing_raised { @img.filter = Magick::HammingFilter }
358
+ assert_nothing_raised { @img.filter = Magick::BlackmanFilter }
359
+ assert_nothing_raised { @img.filter = Magick::GaussianFilter }
360
+ assert_nothing_raised { @img.filter = Magick::QuadraticFilter }
361
+ assert_nothing_raised { @img.filter = Magick::CubicFilter }
362
+ assert_nothing_raised { @img.filter = Magick::CatromFilter }
363
+ assert_nothing_raised { @img.filter = Magick::MitchellFilter }
364
+ assert_nothing_raised { @img.filter = Magick::LanczosFilter }
365
+ assert_nothing_raised { @img.filter = Magick::BesselFilter }
366
+ assert_nothing_raised { @img.filter = Magick::SincFilter }
367
+ assert_raise(TypeError) { @img.filter = 2 }
368
+ end
369
+
370
+ def test_format
371
+ assert_nothing_raised { @img.format }
372
+ assert_nil(@img.format)
373
+ assert_nothing_raised { @img.format = 'GIF' }
374
+ assert_nothing_raised { @img.format = 'JPG' }
375
+ assert_nothing_raised { @img.format = 'TIFF' }
376
+ assert_nothing_raised { @img.format = 'MIFF' }
377
+ assert_nothing_raised { @img.format = 'MPEG' }
378
+ v = $VERBOSE
379
+ $VERBOSE = nil
380
+ assert_raise(ArgumentError) { @img.format = 'shit' }
381
+ $VERBOSE = v
382
+ assert_raise(TypeError) { @img.format = 2 }
383
+ end
384
+
385
+ def test_fuzz
386
+ assert_nothing_raised { @img.fuzz }
387
+ assert_instance_of(Float, @img.fuzz)
388
+ assert_equal(0.0, @img.fuzz)
389
+ assert_nothing_raised { @img.fuzz = 50 }
390
+ assert_equal(50.0, @img.fuzz)
391
+ assert_nothing_raised { @img.fuzz = '50%' }
392
+ assert_in_delta(Magick::QuantumRange * 0.50, @img.fuzz, 0.1)
393
+ assert_raise(TypeError) { @img.fuzz = [] }
394
+ assert_raise(ArgumentError) { @img.fuzz = 'xxx' }
395
+ end
396
+
397
+ def test_gamma
398
+ assert_nothing_raised { @img.gamma }
399
+ assert_instance_of(Float, @img.gamma)
400
+ if IM_VERSION < Gem::Version.new("6.7.5") || (IM_VERSION == Gem::Version.new("6.7.5") && IM_REVISION < Gem::Version.new("5"))
401
+ assert_equal(0.0, @img.gamma)
402
+ else
403
+ assert_equal(0.45454543828964233, @img.gamma)
404
+ end
405
+ assert_nothing_raised { @img.gamma = 2.0 }
406
+ assert_equal(2.0, @img.gamma)
407
+ assert_raise(TypeError) { @img.gamma = 'x' }
408
+ end
409
+
410
+ def test_geometry
411
+ assert_nothing_raised { @img.geometry }
412
+ assert_nil(@img.geometry)
413
+ assert_nothing_raised { @img.geometry = '90x90' }
414
+ assert_equal('90x90', @img.geometry)
415
+ assert_nothing_raised { @img.geometry = Magick::Geometry.new(100, 80) }
416
+ assert_equal('100x80', @img.geometry)
417
+ assert_raise(TypeError) { @img.geometry = [] }
418
+ end
419
+
420
+ def test_image_type
421
+ assert_nothing_raised { @img.image_type }
422
+ assert_instance_of(Magick::ImageType, @img.image_type)
423
+ assert_equal(Magick::GrayscaleMatteType, @img.image_type)
424
+ end
425
+
426
+ def test_interlace_type
427
+ assert_nothing_raised { @img.interlace }
428
+ assert_instance_of(Magick::InterlaceType, @img.interlace)
429
+ assert_equal(Magick::NoInterlace, @img.interlace)
430
+ assert_nothing_raised { @img.interlace = Magick::LineInterlace }
431
+ assert_equal(Magick::LineInterlace, @img.interlace)
432
+ assert_nothing_raised { @img.interlace = Magick::PlaneInterlace }
433
+ assert_nothing_raised { @img.interlace = Magick::PartitionInterlace }
434
+ assert_raise(TypeError) { @img.interlace = 2 }
435
+ end
436
+
437
+ def test_iptc_profile
438
+ assert_nothing_raised { @img.iptc_profile }
439
+ assert_nil(@img.iptc_profile)
440
+ assert_nothing_raised { @img.iptc_profile = 'xxx' }
441
+ assert_raise(TypeError) { @img.iptc_profile = 2 }
442
+ end
443
+
444
+ def test_matte
445
+ assert_nothing_raised { @img.matte }
446
+ assert(@img.matte)
447
+ assert_nothing_raised { @img.matte = false }
448
+ assert(!@img.matte)
449
+ end
450
+
451
+ def test_mean_error
452
+ assert_nothing_raised { @hat.mean_error_per_pixel }
453
+ assert_nothing_raised { @hat.normalized_mean_error }
454
+ assert_nothing_raised { @hat.normalized_maximum_error }
455
+ assert_equal(0.0, @hat.mean_error_per_pixel)
456
+ assert_equal(0.0, @hat.normalized_mean_error)
457
+ assert_equal(0.0, @hat.normalized_maximum_error)
458
+
459
+ hat = @hat.quantize(16, Magick::RGBColorspace, true, 0, true)
460
+
461
+ assert_not_equal(0.0, hat.mean_error_per_pixel)
462
+ assert_not_equal(0.0, hat.normalized_mean_error)
463
+ assert_not_equal(0.0, hat.normalized_maximum_error)
464
+ assert_raise(NoMethodError) { hat.mean_error_per_pixel = 1 }
465
+ assert_raise(NoMethodError) { hat.normalized_mean_error = 1 }
466
+ assert_raise(NoMethodError) { hat.normalized_maximum_error = 1 }
467
+ end
468
+
469
+ def test_mime_type
470
+ img = @img.copy
471
+ img.format = 'GIF'
472
+ assert_nothing_raised { img.mime_type }
473
+ assert_equal('image/gif', img.mime_type)
474
+ img.format = 'JPG'
475
+ assert_equal('image/jpeg', img.mime_type)
476
+ assert_raise(NoMethodError) { img.mime_type = 'image/jpeg' }
477
+ end
478
+
479
+ def test_monitor
480
+ assert_raise(NoMethodError) { @img.monitor }
481
+ monitor = Proc.new { |name, q, s| puts name }
482
+ assert_nothing_raised { @img.monitor = monitor }
483
+ assert_nothing_raised { @img.monitor = nil }
484
+ end
485
+
486
+ def test_montage
487
+ assert_nothing_raised { @img.montage }
488
+ assert_nil(@img.montage)
489
+ end
490
+
491
+ def test_number_colors
492
+ assert_nothing_raised { @hat.number_colors }
493
+ if IM_VERSION < Gem::Version.new("6.7.5") || (IM_VERSION == Gem::Version.new("6.7.5") && IM_REVISION < Gem::Version.new("5"))
494
+ assert_equal(27980, @hat.number_colors)
495
+ else
496
+ assert_equal(27942, @hat.number_colors)
497
+ end
498
+ assert_raise(NoMethodError) { @hat.number_colors = 2 }
499
+ end
500
+
501
+ def test_offset
502
+ assert_nothing_raised { @img.offset }
503
+ assert_equal(0, @img.offset)
504
+ assert_nothing_raised { @img.offset = 10 }
505
+ assert_equal(10, @img.offset)
506
+ assert_raise(TypeError) { @img.offset = 'x' }
507
+ end
508
+
509
+ def test_opacity
510
+ assert_raise(NoMethodError) { @img.opacity }
511
+ assert_nothing_raised { @img.opacity = 50 }
512
+ assert_raise(TypeError) { @img.opacity = 'x' }
513
+ end
514
+
515
+ def test_orientation
516
+ assert_nothing_raised { @img.orientation }
517
+ assert_instance_of(Magick::OrientationType, @img.orientation)
518
+ assert_equal(Magick::UndefinedOrientation, @img.orientation)
519
+ assert_nothing_raised { @img.orientation = Magick::UndefinedOrientation }
520
+ assert_nothing_raised { @img.orientation = Magick::TopLeftOrientation }
521
+ assert_nothing_raised { @img.orientation = Magick::TopRightOrientation }
522
+ assert_nothing_raised { @img.orientation = Magick::BottomRightOrientation }
523
+ assert_nothing_raised { @img.orientation = Magick::LeftTopOrientation }
524
+ assert_nothing_raised { @img.orientation = Magick::RightTopOrientation }
525
+ assert_nothing_raised { @img.orientation = Magick::RightBottomOrientation }
526
+ assert_nothing_raised { @img.orientation = Magick::LeftBottomOrientation }
527
+ end
528
+
529
+ def test_page
530
+ assert_nothing_raised { @img.page }
531
+ page = @img.page
532
+ assert_equal(0, page.width)
533
+ assert_equal(0, page.height)
534
+ assert_equal(0, page.x)
535
+ assert_equal(0, page.y)
536
+ page = Magick::Rectangle.new(1,2,3,4)
537
+ assert_nothing_raised { @img.page = page }
538
+ assert_equal(1, page.width)
539
+ assert_equal(2, page.height)
540
+ assert_equal(3, page.x)
541
+ assert_equal(4, page.y)
542
+ assert_raise(TypeError) { @img.page = 2 }
543
+ end
544
+
545
+ def test_quality
546
+ assert_nothing_raised { @hat.quality }
547
+ assert_equal(75, @hat.quality)
548
+ assert_raise(NoMethodError) { @img.quality = 80 }
549
+ end
550
+
551
+ def test_quantum_depth
552
+ assert_nothing_raised { @img.quantum_depth }
553
+ assert_equal(Magick::MAGICKCORE_QUANTUM_DEPTH, @img.quantum_depth)
554
+ assert_raise(NoMethodError) { @img.quantum_depth = 8 }
555
+ end
556
+
557
+ def test_rendering_intent
558
+ assert_nothing_raised { @img.rendering_intent }
559
+ assert_instance_of(Magick::RenderingIntent, @img.rendering_intent)
560
+ if IM_VERSION < Gem::Version.new("6.7.5") || (IM_VERSION == Gem::Version.new("6.7.5") && IM_REVISION < Gem::Version.new("5"))
561
+ assert_equal(Magick::UndefinedIntent, @img.rendering_intent)
562
+ else
563
+ assert_equal(Magick::PerceptualIntent, @img.rendering_intent)
564
+ end
565
+ assert_nothing_raised { @img.rendering_intent = Magick::SaturationIntent }
566
+ assert_nothing_raised { @img.rendering_intent = Magick::PerceptualIntent }
567
+ assert_nothing_raised { @img.rendering_intent = Magick::AbsoluteIntent }
568
+ assert_nothing_raised { @img.rendering_intent = Magick::RelativeIntent }
569
+ assert_raise(TypeError) { @img.rendering_intent = 2 }
570
+ end
571
+
572
+ def test_rows
573
+ assert_nothing_raised { @img.rows }
574
+ assert_equal(100, @img.rows)
575
+ assert_raise(NoMethodError) { @img.rows = 2 }
576
+ end
577
+
578
+ def test_scene
579
+ ilist = Magick::ImageList.new
580
+ ilist << @img
581
+ img = @img.copy
582
+ ilist << img
583
+ ilist.write('temp.gif')
584
+ FileUtils.rm('temp.gif')
585
+
586
+ assert_nothing_raised { img.scene }
587
+ assert_equal(0, @img.scene)
588
+ assert_equal(1, img.scene)
589
+ assert_raise(NoMethodError) { img.scene = 2 }
590
+ end
591
+
592
+ def test_start_loop
593
+ assert_nothing_raised { @img.start_loop }
594
+ assert(! @img.start_loop)
595
+ assert_nothing_raised { @img.start_loop = true }
596
+ assert(@img.start_loop)
597
+ end
598
+
599
+ def test_ticks_per_second
600
+ assert_nothing_raised { @img.ticks_per_second }
601
+ assert_equal(100, @img.ticks_per_second)
602
+ assert_nothing_raised { @img.ticks_per_second = 1000 }
603
+ assert_equal(1000, @img.ticks_per_second)
604
+ assert_raise(TypeError) { @img.ticks_per_second = 'x' }
605
+ end
606
+
607
+ def test_total_colors
608
+ assert_nothing_raised { @hat.total_colors }
609
+ if IM_VERSION < Gem::Version.new("6.7.5") || (IM_VERSION == Gem::Version.new("6.7.5") && IM_REVISION < Gem::Version.new("5"))
610
+ assert_equal(27980, @hat.total_colors)
611
+ else
612
+ assert_equal(27942, @hat.total_colors)
613
+ end
614
+ assert_raise(NoMethodError) { @img.total_colors = 2 }
615
+ end
616
+
617
+ def test_units
618
+ assert_nothing_raised { @img.units }
619
+ assert_instance_of(Magick::ResolutionType, @img.units)
620
+ assert_equal(Magick::UndefinedResolution, @img.units)
621
+ assert_nothing_raised { @img.units = Magick::PixelsPerInchResolution }
622
+ assert_equal(Magick::PixelsPerInchResolution, @img.units)
623
+ assert_nothing_raised { @img.units = Magick::PixelsPerCentimeterResolution }
624
+ assert_raise(TypeError) { @img.units = 2 }
625
+ end
626
+
627
+ def test_virtual_pixel_method
628
+ assert_nothing_raised { @img.virtual_pixel_method }
629
+ assert_equal(Magick::UndefinedVirtualPixelMethod, @img.virtual_pixel_method)
630
+ assert_nothing_raised { @img.virtual_pixel_method = Magick::EdgeVirtualPixelMethod }
631
+ assert_equal(Magick::EdgeVirtualPixelMethod, @img.virtual_pixel_method)
632
+ assert_nothing_raised { @img.virtual_pixel_method = Magick::MirrorVirtualPixelMethod }
633
+ assert_nothing_raised { @img.virtual_pixel_method = Magick::TileVirtualPixelMethod }
634
+ assert_nothing_raised { @img.virtual_pixel_method = Magick::TransparentVirtualPixelMethod }
635
+ assert_nothing_raised { @img.virtual_pixel_method = Magick::BackgroundVirtualPixelMethod }
636
+ assert_raise(TypeError) { @img.virtual_pixel_method = 2 }
637
+ end
638
+
639
+ def test_x_resolution
640
+ assert_nothing_raised { @img.x_resolution }
641
+ assert_nothing_raised { @img.x_resolution = 90 }
642
+ assert_equal(90.0, @img.x_resolution)
643
+ assert_raise(TypeError) { @img.x_resolution = 'x' }
644
+ end
645
+
646
+ def test_y_resolution
647
+ assert_nothing_raised { @img.y_resolution }
648
+ assert_nothing_raised { @img.y_resolution = 90 }
649
+ assert_equal(90.0, @img.y_resolution)
650
+ assert_raise(TypeError) { @img.y_resolution = 'x' }
651
+ end
652
+
653
+ def test_frozen
654
+ @img.freeze
655
+ assert_raise(FreezeError) { @img.background_color = 'xxx' }
656
+ assert_raise(FreezeError) { @img.blur = 50 }
657
+ assert_raise(FreezeError) { @img.border_color = 'xxx' }
658
+ rp = Magick::Point.new(1,1)
659
+ gp = Magick::Point.new(1,1)
660
+ bp = Magick::Point.new(1,1)
661
+ wp = Magick::Point.new(1,1)
662
+ assert_raise(FreezeError) { @img.chromaticity = Magick::Chromaticity.new(rp, gp, bp, wp) }
663
+ assert_raise(FreezeError) { @img.class_type = Magick::DirectClass }
664
+ assert_raise(FreezeError) { @img.color_profile = 'xxx' }
665
+ assert_raise(FreezeError) { @img.colorspace = Magick::RGBColorspace }
666
+ assert_raise(FreezeError) { @img.compose = Magick::OverCompositeOp }
667
+ assert_raise(FreezeError) { @img.compression = Magick::RLECompression }
668
+ assert_raise(FreezeError) { @img.delay = 2 }
669
+ assert_raise(FreezeError) { @img.density = '72.0x72.0' }
670
+ assert_raise(FreezeError) { @img.dispose = Magick::NoneDispose }
671
+ assert_raise(FreezeError) { @img.endian = Magick::MSBEndian }
672
+ assert_raise(FreezeError) { @img.extract_info = Magick::Rectangle.new(1,2,3,4) }
673
+ assert_raise(FreezeError) { @img.filter = Magick::PointFilter }
674
+ assert_raise(FreezeError) { @img.format = 'GIF' }
675
+ assert_raise(FreezeError) { @img.fuzz = 50.0 }
676
+ assert_raise(FreezeError) { @img.gamma = 2.0 }
677
+ assert_raise(FreezeError) { @img.geometry = '100x100' }
678
+ assert_raise(FreezeError) { @img.interlace = Magick::NoInterlace }
679
+ assert_raise(FreezeError) { @img.iptc_profile = 'xxx' }
680
+ assert_raise(FreezeError) { @img.mask = @img }
681
+ assert_raise(FreezeError) { @img.matte = true }
682
+ assert_raise(FreezeError) { @img.monitor = Proc.new { |name, q, s| puts name } }
683
+ assert_raise(FreezeError) { @img.offset = 100 }
684
+ assert_raise(FreezeError) { @img.opacity = 100 }
685
+ assert_raise(FreezeError) { @img.page = Magick::Rectangle.new(1,2,3,4) }
686
+ assert_raise(FreezeError) { @img.rendering_intent = Magick::SaturationIntent }
687
+ assert_raise(FreezeError) { @img.start_loop = true }
688
+ assert_raise(FreezeError) { @img.ticks_per_second = 1000 }
689
+ assert_raise(FreezeError) { @img.units = Magick::PixelsPerInchResolution }
690
+ assert_raise(FreezeError) { @img.x_resolution = 72.0 }
691
+ assert_raise(FreezeError) { @img.y_resolution = 72.0 }
692
+ end
693
+
694
+ end # class Image_Attributes_UT
695
+
696
+
697
+ if __FILE__ == $0
698
+ FLOWER_HAT = '../doc/ex/images/Flower_Hat.jpg'
699
+ Test::Unit::UI::Console::TestRunner.run(Image_Attributes_UT) if !RUBY_VERSION[/^1\.9|^2/]
700
+ end