rmagick 2.13.2 → 2.13.3.rc1

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 (185) hide show
  1. checksums.yaml +15 -0
  2. data/LICENSE +20 -0
  3. data/README +15 -0
  4. data/README.rc +231 -0
  5. data/build_tarball.rake +1 -1
  6. data/doc/comtasks.html +2 -2
  7. data/doc/constants.html +2 -2
  8. data/doc/draw.html +2 -2
  9. data/doc/ex/PreserveAspectRatio.rb +0 -0
  10. data/doc/ex/ViewBox.rb +0 -0
  11. data/doc/ex/adaptive_threshold.rb +0 -0
  12. data/doc/ex/add_noise.rb +0 -0
  13. data/doc/ex/affine.rb +0 -0
  14. data/doc/ex/affine_transform.rb +0 -0
  15. data/doc/ex/arc.rb +0 -0
  16. data/doc/ex/arcpath.rb +0 -0
  17. data/doc/ex/average.rb +0 -0
  18. data/doc/ex/axes.rb +0 -0
  19. data/doc/ex/bilevel_channel.rb +0 -0
  20. data/doc/ex/blur_image.rb +0 -0
  21. data/doc/ex/border.rb +0 -0
  22. data/doc/ex/bounding_box.rb +0 -0
  23. data/doc/ex/cbezier1.rb +0 -0
  24. data/doc/ex/cbezier2.rb +0 -0
  25. data/doc/ex/cbezier3.rb +0 -0
  26. data/doc/ex/cbezier4.rb +0 -0
  27. data/doc/ex/cbezier5.rb +0 -0
  28. data/doc/ex/cbezier6.rb +0 -0
  29. data/doc/ex/channel.rb +0 -0
  30. data/doc/ex/charcoal.rb +0 -0
  31. data/doc/ex/chop.rb +0 -0
  32. data/doc/ex/circle.rb +0 -0
  33. data/doc/ex/clip_path.rb +0 -0
  34. data/doc/ex/coalesce.rb +0 -0
  35. data/doc/ex/color_fill_to_border.rb +0 -0
  36. data/doc/ex/color_floodfill.rb +0 -0
  37. data/doc/ex/color_histogram.rb +0 -0
  38. data/doc/ex/color_reset.rb +0 -0
  39. data/doc/ex/colorize.rb +0 -0
  40. data/doc/ex/colors.rb +0 -0
  41. data/doc/ex/composite.rb +0 -0
  42. data/doc/ex/composite_layers.rb +0 -0
  43. data/doc/ex/contrast.rb +0 -0
  44. data/doc/ex/crop.rb +0 -0
  45. data/doc/ex/cycle_colormap.rb +0 -0
  46. data/doc/ex/drawcomp.rb +0 -0
  47. data/doc/ex/drop_shadow.rb +0 -0
  48. data/doc/ex/edge.rb +0 -0
  49. data/doc/ex/ellipse.rb +0 -0
  50. data/doc/ex/emboss.rb +0 -0
  51. data/doc/ex/enhance.rb +0 -0
  52. data/doc/ex/equalize.rb +0 -0
  53. data/doc/ex/evenodd.rb +0 -0
  54. data/doc/ex/flatten_images.rb +0 -0
  55. data/doc/ex/flip.rb +0 -0
  56. data/doc/ex/flop.rb +0 -0
  57. data/doc/ex/fonts.rb +0 -0
  58. data/doc/ex/frame.rb +0 -0
  59. data/doc/ex/gaussian_blur.rb +0 -0
  60. data/doc/ex/get_pixels.rb +0 -0
  61. data/doc/ex/gradientfill.rb +0 -0
  62. data/doc/ex/grav.rb +0 -0
  63. data/doc/ex/gravity.rb +0 -0
  64. data/doc/ex/hatchfill.rb +0 -0
  65. data/doc/ex/images/logo400x83.gif +0 -0
  66. data/doc/ex/implode.rb +0 -0
  67. data/doc/ex/level.rb +0 -0
  68. data/doc/ex/line.rb +0 -0
  69. data/doc/ex/matte_fill_to_border.rb +0 -0
  70. data/doc/ex/matte_floodfill.rb +0 -0
  71. data/doc/ex/matte_replace.rb +0 -0
  72. data/doc/ex/median_filter.rb +0 -0
  73. data/doc/ex/modulate.rb +0 -0
  74. data/doc/ex/mono.rb +0 -0
  75. data/doc/ex/morph.rb +0 -0
  76. data/doc/ex/mosaic.rb +0 -0
  77. data/doc/ex/motion_blur.rb +0 -0
  78. data/doc/ex/negate.rb +0 -0
  79. data/doc/ex/nested_rvg.rb +0 -0
  80. data/doc/ex/nonzero.rb +0 -0
  81. data/doc/ex/normalize.rb +0 -0
  82. data/doc/ex/oil_paint.rb +0 -0
  83. data/doc/ex/opacity.rb +0 -0
  84. data/doc/ex/ordered_dither.rb +0 -0
  85. data/doc/ex/path.rb +0 -0
  86. data/doc/ex/pattern1.rb +0 -0
  87. data/doc/ex/pattern2.rb +0 -0
  88. data/doc/ex/polygon.rb +0 -0
  89. data/doc/ex/polyline.rb +0 -0
  90. data/doc/ex/preview.rb +0 -0
  91. data/doc/ex/qbezierpath.rb +0 -0
  92. data/doc/ex/quantize-m.rb +0 -0
  93. data/doc/ex/radial_blur.rb +0 -0
  94. data/doc/ex/raise.rb +0 -0
  95. data/doc/ex/rectangle.rb +0 -0
  96. data/doc/ex/reduce_noise.rb +0 -0
  97. data/doc/ex/roll.rb +0 -0
  98. data/doc/ex/rotate.rb +0 -0
  99. data/doc/ex/rotate_f.rb +0 -0
  100. data/doc/ex/roundrect.rb +0 -0
  101. data/doc/ex/rubyname.rb +0 -0
  102. data/doc/ex/rvg_linecap.rb +0 -0
  103. data/doc/ex/rvg_linejoin.rb +0 -0
  104. data/doc/ex/rvg_opacity.rb +0 -0
  105. data/doc/ex/rvg_stroke_dasharray.rb +0 -0
  106. data/doc/ex/segment.rb +0 -0
  107. data/doc/ex/shade.rb +0 -0
  108. data/doc/ex/shave.rb +0 -0
  109. data/doc/ex/shear.rb +0 -0
  110. data/doc/ex/sketch.rb +0 -0
  111. data/doc/ex/skewx.rb +0 -0
  112. data/doc/ex/skewy.rb +0 -0
  113. data/doc/ex/smile.rb +0 -0
  114. data/doc/ex/solarize.rb +0 -0
  115. data/doc/ex/spread.rb +0 -0
  116. data/doc/ex/stegano.rb +0 -0
  117. data/doc/ex/stroke_dasharray.rb +0 -0
  118. data/doc/ex/stroke_fill.rb +0 -0
  119. data/doc/ex/stroke_linecap.rb +0 -0
  120. data/doc/ex/stroke_linejoin.rb +0 -0
  121. data/doc/ex/stroke_width.rb +0 -0
  122. data/doc/ex/swirl.rb +0 -0
  123. data/doc/ex/text.rb +0 -0
  124. data/doc/ex/text_align.rb +0 -0
  125. data/doc/ex/text_antialias.rb +0 -0
  126. data/doc/ex/text_undercolor.rb +0 -0
  127. data/doc/ex/texture_fill_to_border.rb +0 -0
  128. data/doc/ex/texture_floodfill.rb +0 -0
  129. data/doc/ex/texturefill.rb +0 -0
  130. data/doc/ex/threshold.rb +0 -0
  131. data/doc/ex/to_blob.rb +0 -0
  132. data/doc/ex/translate.rb +0 -0
  133. data/doc/ex/transparent.rb +0 -0
  134. data/doc/ex/unsharp_mask.rb +0 -0
  135. data/doc/ex/wave.rb +0 -0
  136. data/doc/ilist.html +2 -2
  137. data/doc/image1.html +2 -2
  138. data/doc/image2.html +2 -2
  139. data/doc/image3.html +2 -2
  140. data/doc/imageattrs.html +2 -2
  141. data/doc/imusage.html +2 -2
  142. data/doc/index.html +3 -3
  143. data/doc/info.html +2 -2
  144. data/doc/magick.html +2 -2
  145. data/doc/optequiv.html +2 -2
  146. data/doc/rvg.html +2 -2
  147. data/doc/rvgclip.html +2 -2
  148. data/doc/rvggroup.html +2 -2
  149. data/doc/rvgimage.html +2 -2
  150. data/doc/rvgpattern.html +2 -2
  151. data/doc/rvgshape.html +2 -2
  152. data/doc/rvgstyle.html +2 -2
  153. data/doc/rvgtext.html +2 -2
  154. data/doc/rvgtspan.html +2 -2
  155. data/doc/rvgtut.html +2 -2
  156. data/doc/rvguse.html +2 -2
  157. data/doc/rvgxform.html +2 -2
  158. data/doc/struct.html +2 -2
  159. data/doc/usage.html +2 -2
  160. data/examples/crop_with_gravity.rb +0 -0
  161. data/examples/demo.rb +0 -0
  162. data/examples/describe.rb +0 -0
  163. data/examples/rotating_text.rb +0 -0
  164. data/ext/RMagick/extconf.rb +1 -9
  165. data/ext/RMagick/rmimage.c +1 -1
  166. data/lib/rvg/to_c.rb +103 -0
  167. data/rmagick.gemspec +5 -3
  168. data/test/Draw.rb +121 -0
  169. data/test/Image1.rb +763 -0
  170. data/test/Image2.rb +1308 -0
  171. data/test/Image3.rb +1002 -0
  172. data/test/ImageList1.rb +808 -0
  173. data/test/ImageList2.rb +389 -0
  174. data/test/Image_attributes.rb +683 -0
  175. data/test/Import_Export.rb +116 -0
  176. data/test/Info.rb +349 -0
  177. data/test/Magick.rb +364 -0
  178. data/test/Pixel.rb +120 -0
  179. data/test/Preview.rb +62 -0
  180. data/test/all_basic.rb +42 -0
  181. data/test/cmyk.icm +0 -0
  182. data/test/srgb.icm +0 -0
  183. metadata +339 -320
  184. data/README.html +0 -10
  185. data/ext/RMagick/MANIFEST +0 -358
@@ -0,0 +1,116 @@
1
+ require 'RMagick'
2
+ require 'test/unit'
3
+ require 'test/unit/ui/console/testrunner' if !RUBY_VERSION[/^1\.9|^2/]
4
+
5
+
6
+ class Import_Export_UT < Test::Unit::TestCase
7
+
8
+ def setup
9
+ @test = Magick::Image.read(File.join(IMAGES_DIR, 'Flower_Hat.jpg')).first
10
+ end
11
+
12
+ def import_pixels(pixels, type)
13
+ img = Magick::Image.new(@test.columns, @test.rows)
14
+ res = img.import_pixels(0, 0, @test.columns, @test.rows, "RGB", pixels, type)
15
+ _, diff = img.compare_channel(@test, Magick::MeanAbsoluteErrorMetric)
16
+ #_.display
17
+ diff
18
+ end
19
+
20
+ def import(pixels, type, expected = 0.0)
21
+ diff = import_pixels(pixels, type)
22
+ #puts "Type=#{type} diff=#{diff}"
23
+ assert_in_delta(expected, diff, 0.1)
24
+ end
25
+
26
+ def fimport(pixels, type)
27
+ diff = import_pixels(pixels, type)
28
+ #puts "Type=#{type} diff=#{diff}"
29
+ assert_in_delta(0.0, diff, 50.0)
30
+ end
31
+
32
+ def test_import_export_float
33
+ pixels = @test.export_pixels(0, 0, @test.columns, @test.rows, "RGB")
34
+ fpixels = pixels.collect {|p| p.to_f / Magick::QuantumRange}
35
+ p = fpixels.pack("F*")
36
+ fimport(p, Magick::FloatPixel)
37
+
38
+ p = fpixels.pack("D*")
39
+ fimport(p, Magick::DoublePixel)
40
+ end
41
+
42
+ def test_import_export
43
+ pixels = @test.export_pixels(0, 0, @test.columns, @test.rows, "RGB")
44
+
45
+ case Magick::QuantumDepth
46
+ when 8
47
+ p = pixels.pack("C*")
48
+ import(p, Magick::CharPixel)
49
+ import(p, Magick::QuantumPixel)
50
+
51
+ spixels = pixels.collect {|px| px * 257}
52
+ p = spixels.pack("S*")
53
+ import(p, Magick::ShortPixel)
54
+
55
+ ipixels = pixels.collect {|px| px * 16843009}
56
+ p = ipixels.pack("I*")
57
+ import(p, Magick::IntegerPixel)
58
+ import(p, Magick::LongPixel)
59
+
60
+ when 16
61
+ cpixels = pixels.collect {|px| px / 257}
62
+ p = cpixels.pack("C*")
63
+ import(p, Magick::CharPixel)
64
+
65
+ p = pixels.pack("S*")
66
+ import(p, Magick::ShortPixel)
67
+ import(p, Magick::QuantumPixel)
68
+
69
+ ipixels = pixels.collect {|px| px * 65537}
70
+ p = ipixels.pack("I*")
71
+ # Diff s/b 0.0 but never is.
72
+ #import(p, Magick::IntegerPixel, 430.7834)
73
+ #import(p, Magick::LongPixel, 430.7834)
74
+
75
+ when 32
76
+ cpixels = pixels.collect {|px| px / 16843009}
77
+ p = cpixels.pack("C*")
78
+ import(p, Magick::CharPixel)
79
+
80
+ spixels = pixels.collect {|px| px / 65537}
81
+ p = spixels.pack("S*")
82
+ import(p, Magick::ShortPixel)
83
+
84
+ p = pixels.pack("I*")
85
+ import(p, Magick::IntegerPixel)
86
+ import(p, Magick::LongPixel)
87
+ import(p, Magick::QuantumPixel)
88
+
89
+ when 64
90
+ cpixels = pixels.collect {|px| px / 72340172838076673}
91
+ p = cpixels.pack("C*")
92
+ import(p, Magick::CharPixel)
93
+
94
+ spixels = pixels.collect {|px| px / 281479271743489}
95
+ p = spixels.pack("S*")
96
+ import(p, Magick::ShortPixel)
97
+
98
+ ipixels = pixels.collect {|px| px / 4294967297 }
99
+ p = ipixels.pack("I*")
100
+ import(p, Magick::IntegerPixel)
101
+ import(p, Magick::LongPixel)
102
+
103
+ p = pixels.pack("Q*")
104
+ import(p, Magick::QuantumPixel)
105
+
106
+ end
107
+ end
108
+
109
+ end
110
+
111
+
112
+ if __FILE__ == $0
113
+ IMAGES_DIR = '../doc/ex/images'
114
+ Test::Unit::UI::Console::TestRunner.run(Import_Export_UT) if !RUBY_VERSION[/^1\.9|^2/]
115
+ end
116
+
@@ -0,0 +1,349 @@
1
+
2
+ #! /usr/local/bin/ruby -w
3
+
4
+ require 'RMagick'
5
+ require 'test/unit'
6
+ require 'test/unit/ui/console/testrunner' if !RUBY_VERSION[/^1\.9|^2/]
7
+
8
+
9
+ class Info_UT < Test::Unit::TestCase
10
+
11
+ def setup
12
+ @info = Magick::Image::Info.new
13
+ end
14
+
15
+ def test_options
16
+
17
+ # 1-argument form
18
+ assert_nothing_raised { @info['fill'] }
19
+ assert_nil(@info['fill'])
20
+
21
+ assert_nothing_raised { @info['fill'] = 'red' }
22
+ assert_equal("red", @info['fill'])
23
+
24
+ assert_nothing_raised { @info['fill'] = nil }
25
+ assert_nil(@info['fill'])
26
+
27
+ # 2-argument form
28
+ assert_nothing_raised { @info['tiff', 'bits-per-sample'] = 2 }
29
+ assert_equal("2", @info['tiff', 'bits-per-sample'])
30
+
31
+ # define and undefine
32
+ assert_nothing_raised { @info.define('tiff', 'bits-per-sample', 4) }
33
+ assert_equal("4", @info['tiff', 'bits-per-sample'])
34
+
35
+ assert_nothing_raised { @info.undefine('tiff', 'bits-per-sample') }
36
+ assert_nil(@info['tiff', 'bits-per-sample'])
37
+ end
38
+
39
+ def test_antialias
40
+ assert @info.antialias
41
+ assert_nothing_raised { @info.antialias = false }
42
+ assert !@info.antialias
43
+ end
44
+
45
+ def test_attenuate
46
+ assert_nothing_raised { @info.attenuate = 10 }
47
+ assert_equal(10, @info.attenuate)
48
+ assert_nothing_raised { @info.attenuate = 5.25 }
49
+ assert_equal(5.25, @info.attenuate)
50
+ assert_nothing_raised { @info.attenuate = nil }
51
+ assert_equal(nil, @info.attenuate)
52
+ end
53
+
54
+ def test_authenticate
55
+ assert_nothing_raised { @info.authenticate = "string" }
56
+ assert_equal("string", @info.authenticate)
57
+ end
58
+
59
+ def test_background_color
60
+ assert_nothing_raised { @info.background_color = "red" }
61
+ red = Magick::Pixel.new(Magick::MaxRGB)
62
+ assert_nothing_raised { @info.background_color = red }
63
+ assert_equal("red", @info.background_color)
64
+ img = Magick::Image.new(20,20) { self.background_color = "red" }
65
+ assert_equal("red", img.background_color)
66
+ end
67
+
68
+ def test_border_color
69
+ assert_nothing_raised { @info.border_color = "red" }
70
+ red = Magick::Pixel.new(Magick::MaxRGB)
71
+ assert_nothing_raised { @info.border_color = red }
72
+ assert_equal("red", @info.border_color)
73
+ img = Magick::Image.new(20,20) { self.border_color = "red" }
74
+ assert_equal("red", img.border_color)
75
+ end
76
+
77
+ def caption
78
+ assert_nothing_raised { @info.caption = "string" }
79
+ assert_equal("string", @info.caption)
80
+ img = Magick::Image.new(20,20) { self.caption = "string" }
81
+ assert_equal("string", img.caption)
82
+ end
83
+
84
+ def test_channel
85
+ assert_nothing_raised { @info.channel(Magick::RedChannel) }
86
+ assert_nothing_raised { @info.channel(Magick::RedChannel, Magick::BlueChannel) }
87
+ assert_raise(TypeError) { @info.channel(1) }
88
+ assert_raise(TypeError) { @info.channel(Magick::RedChannel, 1) }
89
+ end
90
+
91
+ def test_colorspace
92
+ Magick::ColorspaceType.values.each do |cs|
93
+ assert_nothing_raised {@info.colorspace = cs}
94
+ assert_equal(cs, @info.colorspace)
95
+ end
96
+ end
97
+
98
+ def test_comment
99
+ assert_nothing_raised { @info.comment = "comment" }
100
+ assert_equal("comment", @info.comment)
101
+ end
102
+
103
+ def test_compression
104
+ Magick::CompressionType.values.each do |v|
105
+ assert_nothing_raised { @info.compression = v }
106
+ assert_equal(v, @info.compression)
107
+ end
108
+ end
109
+
110
+ def test_define
111
+ assert_nothing_raised { @info.define("tiff", "bits-per-sample", 2) }
112
+ assert_nothing_raised { @info.undefine("tiff", "bits-per-sample") }
113
+ end
114
+
115
+ def test_density
116
+ assert_nothing_raised { @info.density = "72x72" }
117
+ assert_equal("72x72", @info.density)
118
+ assert_nothing_raised { @info.density = Magick::Geometry.new(72, 72) }
119
+ assert_equal("72x72", @info.density)
120
+ end
121
+
122
+ def test_delay
123
+ assert_nothing_raised { @info.delay = 60 }
124
+ assert_equal(60, @info.delay)
125
+ end
126
+
127
+ def test_depth
128
+ assert_nothing_raised { @info.depth = 8 }
129
+ assert_equal(8, @info.depth)
130
+ assert_nothing_raised { @info.depth = 16 }
131
+ assert_equal(16, @info.depth)
132
+ assert_raise(ArgumentError) { @info.depth = 32 }
133
+ end
134
+
135
+ def test_dispose
136
+ Magick::DisposeType.values.each do |v|
137
+ assert_nothing_raised { @info.dispose = v }
138
+ assert_equal(v, @info.dispose)
139
+ end
140
+ end
141
+
142
+ def test_dither
143
+ assert_nothing_raised { @info.dither = true }
144
+ assert_equal(true, @info.dither)
145
+ assert_nothing_raised { @info.dither = false }
146
+ assert_equal(false, @info.dither)
147
+ end
148
+
149
+ def test_extract
150
+ assert_nothing_raised { @info.extract = "100x100" }
151
+ assert_equal("100x100", @info.extract)
152
+ assert_nothing_raised { @info.extract = Magick::Geometry.new(100, 100) }
153
+ assert_equal("100x100", @info.extract)
154
+ end
155
+
156
+ def test_filename
157
+ assert_nothing_raised { @info.filename = "string" }
158
+ assert_equal("string", @info.filename)
159
+ end
160
+
161
+ def test_fill
162
+ assert_nothing_raised { @info.fill }
163
+ assert_nil(@info.fill)
164
+
165
+ assert_nothing_raised { @info.fill = 'white' }
166
+ assert_equal("white", @info.fill)
167
+
168
+ assert_nothing_raised { @info.fill = nil }
169
+ assert_nil(@info.fill)
170
+
171
+ assert_raise(ArgumentError) { @info.fill = 'xxx' }
172
+ end
173
+
174
+ def test_font
175
+ assert_nothing_raised { @info.font = "Arial" }
176
+ assert_equal("Arial", @info.font)
177
+ end
178
+
179
+ def test_format
180
+ assert_nothing_raised { @info.format = "GIF" }
181
+ assert_equal("GIF", @info.format)
182
+ end
183
+
184
+ def test_fuzz
185
+ assert_nothing_raised { @info.fuzz = 50 }
186
+ assert_equal(50, @info.fuzz)
187
+ assert_nothing_raised { @info.fuzz = "50%" }
188
+ assert_equal(Magick::MaxRGB * 0.5, @info.fuzz)
189
+ end
190
+
191
+ def test_gravity
192
+ Magick::GravityType.values.each do |v|
193
+ assert_nothing_raised { @info.gravity = v }
194
+ assert_equal(v, @info.gravity)
195
+ end
196
+ end
197
+
198
+ def test_image_type
199
+ Magick::ImageType.values.each do |v|
200
+ assert_nothing_raised { @info.image_type = v }
201
+ assert_equal(v, @info.image_type)
202
+ end
203
+ end
204
+
205
+ def test_interlace
206
+ Magick::InterlaceType.values.each do |v|
207
+ assert_nothing_raised { @info.interlace = v }
208
+ assert_equal(v, @info.interlace)
209
+ end
210
+ end
211
+
212
+ def test_label
213
+ assert_nothing_raised { @info.label = "string" }
214
+ assert_equal("string", @info.label)
215
+ end
216
+
217
+ def test_matte_color
218
+ assert_nothing_raised { @info.matte_color = "red" }
219
+ red = Magick::Pixel.new(Magick::MaxRGB)
220
+ assert_nothing_raised { @info.matte_color = red }
221
+ assert_equal("red", @info.matte_color)
222
+ img = Magick::Image.new(20,20) { self.matte_color = "red" }
223
+ assert_equal("red", img.matte_color)
224
+ end
225
+
226
+ def test_monitor
227
+ assert_nothing_raised { @info.monitor = lambda {} }
228
+ monitor = Proc.new do |mth, q, s|
229
+ assert_equal("resize!", mth)
230
+ assert_instance_of(Fixnum, q)
231
+ assert_instance_of(Fixnum, s)
232
+ true
233
+ end
234
+ img = Magick::Image.new(2000, 2000) { self.monitor = monitor }
235
+ img.resize!(20, 20)
236
+ img.monitor = nil
237
+ end
238
+
239
+ def test_monochrome
240
+ assert_nothing_raised { @info.monochrome = true }
241
+ assert @info.monochrome
242
+ end
243
+
244
+ def test_orientation
245
+ Magick::OrientationType.values.each do |v|
246
+ assert_nothing_raised { @info.orientation = v }
247
+ assert_equal(v, @info.orientation)
248
+ end
249
+ end
250
+
251
+ def test_origin
252
+ assert_nothing_raised { @info.origin = "+10+10" }
253
+ assert_equal("+10+10", @info.origin)
254
+ assert_nothing_raised { @info.origin = Magick::Geometry.new(nil, nil, 10, 10) }
255
+ assert_equal("+10+10", @info.origin)
256
+ end
257
+
258
+ def test_page
259
+ assert_nothing_raised { @info.page = "612x792>" }
260
+ assert_equal("612x792>", @info.page)
261
+ end
262
+
263
+ def test_pointsize
264
+ assert_nothing_raised { @info.pointsize = 12 }
265
+ assert_equal(12, @info.pointsize)
266
+ end
267
+
268
+ def test_quality
269
+ assert_nothing_raised { @info.quality = 75 }
270
+ assert_equal(75, @info.quality)
271
+ end
272
+
273
+ def test_sampling_factor
274
+ assert_nothing_raised { @info.sampling_factor = "2x1" }
275
+ assert_equal("2x1", @info.sampling_factor)
276
+ end
277
+
278
+ def test_server_name
279
+ assert_nothing_raised { @info.server_name = "foo" }
280
+ assert_equal("foo", @info.server_name)
281
+ end
282
+
283
+ def test_size
284
+ assert_nothing_raised { @info.size = "200x100" }
285
+ assert_equal("200x100", @info.size)
286
+ assert_nothing_raised { @info.size = Magick::Geometry.new(100,200) }
287
+ assert_equal("100x200", @info.size)
288
+ end
289
+
290
+ def test_stroke
291
+ assert_nothing_raised { @info.stroke }
292
+ assert_nil(@info.stroke)
293
+
294
+ assert_nothing_raised { @info.stroke = 'white' }
295
+ assert_equal("white", @info.stroke)
296
+
297
+ assert_nothing_raised { @info.stroke = nil }
298
+ assert_nil(@info.stroke)
299
+
300
+ assert_raise(ArgumentError) { @info.stroke = 'xxx' }
301
+ end
302
+
303
+ def test_stroke_width
304
+ assert_nothing_raised { @info.stroke_width = 10 }
305
+ assert_equal(10, @info.stroke_width)
306
+ assert_nothing_raised { @info.stroke_width = 5.25 }
307
+ assert_equal(5.25, @info.stroke_width)
308
+ assert_nothing_raised { @info.stroke_width = nil }
309
+ assert_equal(nil, @info.stroke_width)
310
+ end
311
+
312
+ def test_texture
313
+ img = Magick::Image.read("granite:") {self.size = "20x20" }
314
+ assert_nothing_raised { @info.texture = img.first }
315
+ end
316
+
317
+ def test_tile_offset
318
+ assert_nothing_raised { @info.tile_offset = "200x100" }
319
+ assert_equal("200x100", @info.tile_offset)
320
+ assert_nothing_raised { @info.tile_offset = Magick::Geometry.new(100,200) }
321
+ assert_equal("100x200", @info.tile_offset)
322
+ end
323
+
324
+ def test_undercolor
325
+ assert_nothing_raised { @info.undercolor }
326
+ assert_nil(@info.undercolor)
327
+
328
+ assert_nothing_raised { @info.undercolor = 'white' }
329
+ assert_equal("white", @info.undercolor)
330
+
331
+ assert_nothing_raised { @info.undercolor = nil }
332
+ assert_nil(@info.undercolor)
333
+
334
+ assert_raise(ArgumentError) { @info.undercolor = 'xxx' }
335
+ end
336
+
337
+ def test_units
338
+ Magick::ResolutionType.values.each do |v|
339
+ assert_nothing_raised { @info.units = v }
340
+ assert_equal(v, @info.units)
341
+ end
342
+ end
343
+
344
+ def test_view
345
+ assert_nothing_raised { @info.view = "string" }
346
+ assert_equal("string", @info.view)
347
+ end
348
+
349
+ end