rmagick 2.16.0 → 5.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (441) hide show
  1. checksums.yaml +5 -5
  2. data/.devcontainer/Dockerfile +14 -0
  3. data/.devcontainer/ImageMagick6/devcontainer.json +11 -0
  4. data/.devcontainer/devcontainer.json +11 -0
  5. data/.devcontainer/setup-repo.sh +10 -0
  6. data/.devcontainer/setup-user.sh +45 -0
  7. data/.editorconfig +3 -0
  8. data/.github/ISSUE_TEMPLATE.md +17 -0
  9. data/.github/workflows/ci.yml +157 -0
  10. data/.gitignore +9 -1
  11. data/.rspec +1 -0
  12. data/.rubocop.yml +37 -340
  13. data/.rubocop_todo.yml +456 -0
  14. data/.yardopts +5 -0
  15. data/CHANGELOG.md +536 -0
  16. data/CODE_OF_CONDUCT.md +122 -7
  17. data/CONTRIBUTING.md +37 -6
  18. data/Gemfile +18 -4
  19. data/README.md +319 -0
  20. data/Rakefile +83 -98
  21. data/before_install_linux.sh +65 -28
  22. data/before_install_osx.sh +58 -2
  23. data/ext/RMagick/extconf.rb +310 -393
  24. data/ext/RMagick/{rmagick.c → rmagick.cpp} +119 -127
  25. data/ext/RMagick/rmagick.h +290 -363
  26. data/ext/RMagick/rmagick_gvl.h +224 -0
  27. data/ext/RMagick/rmdraw.cpp +1696 -0
  28. data/ext/RMagick/rmenum.cpp +796 -0
  29. data/ext/RMagick/{rmfill.c → rmfill.cpp} +287 -197
  30. data/ext/RMagick/rmilist.cpp +1275 -0
  31. data/ext/RMagick/rmimage.cpp +16459 -0
  32. data/ext/RMagick/{rminfo.c → rminfo.cpp} +738 -910
  33. data/ext/RMagick/rmkinfo.cpp +210 -0
  34. data/ext/RMagick/rmmain.cpp +1923 -0
  35. data/ext/RMagick/rmmontage.cpp +474 -0
  36. data/ext/RMagick/rmpixel.cpp +1322 -0
  37. data/ext/RMagick/{rmstruct.c → rmstruct.cpp} +104 -284
  38. data/ext/RMagick/{rmutil.c → rmutil.cpp} +500 -433
  39. data/lib/rmagick/version.rb +5 -4
  40. data/lib/rmagick.rb +2 -0
  41. data/lib/rmagick_internal.rb +397 -459
  42. data/lib/rvg/clippath.rb +3 -4
  43. data/lib/rvg/container.rb +30 -22
  44. data/lib/rvg/deep_equal.rb +11 -11
  45. data/lib/rvg/describable.rb +2 -2
  46. data/lib/rvg/embellishable.rb +67 -68
  47. data/lib/rvg/misc.rb +139 -142
  48. data/lib/rvg/paint.rb +2 -1
  49. data/lib/rvg/pathdata.rb +7 -8
  50. data/lib/rvg/rvg.rb +49 -46
  51. data/lib/rvg/stretchable.rb +22 -28
  52. data/lib/rvg/stylable.rb +12 -10
  53. data/lib/rvg/text.rb +169 -165
  54. data/lib/rvg/transformable.rb +17 -16
  55. data/lib/rvg/units.rb +5 -5
  56. data/rmagick.gemspec +7 -41
  57. data/sig/rmagick/_draw_common_methods.rbs +64 -0
  58. data/sig/rmagick/_image_common_methods.rbs +389 -0
  59. data/sig/rmagick/draw.rbs +38 -0
  60. data/sig/rmagick/draw_attribute.rbs +28 -0
  61. data/sig/rmagick/enum.rbs +814 -0
  62. data/sig/rmagick/error.rbs +11 -0
  63. data/sig/rmagick/fill.rbs +21 -0
  64. data/sig/rmagick/geometry.rbs +14 -0
  65. data/sig/rmagick/image.rbs +194 -0
  66. data/sig/rmagick/image_list.rbs +181 -0
  67. data/sig/rmagick/iptc.rbs +101 -0
  68. data/sig/rmagick/kernel_info.rbs +12 -0
  69. data/sig/rmagick/optional_method_arguments.rbs +10 -0
  70. data/sig/rmagick/pixel.rbs +46 -0
  71. data/sig/rmagick/struct.rbs +90 -0
  72. data/sig/rmagick.rbs +43 -0
  73. data/sig/rvg/clippath.rbs +34 -0
  74. data/sig/rvg/container.rbs +78 -0
  75. data/sig/rvg/deep_equal.rbs +48 -0
  76. data/sig/rvg/describable.rbs +30 -0
  77. data/sig/rvg/embellishable.rbs +226 -0
  78. data/sig/rvg/misc.rbs +145 -0
  79. data/sig/rvg/paint.rbs +55 -0
  80. data/sig/rvg/pathdata.rbs +77 -0
  81. data/sig/rvg/rvg.rbs +125 -0
  82. data/sig/rvg/stretchable.rbs +56 -0
  83. data/sig/rvg/stylable.rbs +66 -0
  84. data/sig/rvg/text.rbs +118 -0
  85. data/sig/rvg/transformable.rbs +59 -0
  86. data/sig/rvg/units.rbs +33 -0
  87. metadata +68 -428
  88. data/.hound.yml +0 -2
  89. data/.simplecov +0 -27
  90. data/.travis.yml +0 -74
  91. data/Doxyfile +0 -1514
  92. data/README.textile +0 -251
  93. data/deprecated/RMagick.rb +0 -6
  94. data/doc/.cvsignore +0 -1
  95. data/doc/comtasks.html +0 -287
  96. data/doc/constants.html +0 -1581
  97. data/doc/css/doc.css +0 -299
  98. data/doc/css/popup.css +0 -34
  99. data/doc/css/ref.css +0 -67
  100. data/doc/draw.html +0 -3272
  101. data/doc/ex/InitialCoords.rb +0 -22
  102. data/doc/ex/NewCoordSys.rb +0 -30
  103. data/doc/ex/OrigCoordSys.rb +0 -16
  104. data/doc/ex/PreserveAspectRatio.rb +0 -204
  105. data/doc/ex/RotateScale.rb +0 -36
  106. data/doc/ex/Skew.rb +0 -38
  107. data/doc/ex/Use01.rb +0 -15
  108. data/doc/ex/Use02.rb +0 -20
  109. data/doc/ex/Use03.rb +0 -16
  110. data/doc/ex/ViewBox.rb +0 -31
  111. data/doc/ex/adaptive_threshold.rb +0 -9
  112. data/doc/ex/add_noise.rb +0 -16
  113. data/doc/ex/affine.rb +0 -48
  114. data/doc/ex/affine_transform.rb +0 -20
  115. data/doc/ex/arc.rb +0 -49
  116. data/doc/ex/arcpath.rb +0 -32
  117. data/doc/ex/arcs01.rb +0 -28
  118. data/doc/ex/arcs02.rb +0 -59
  119. data/doc/ex/average.rb +0 -15
  120. data/doc/ex/axes.rb +0 -64
  121. data/doc/ex/baseline_shift01.rb +0 -17
  122. data/doc/ex/bilevel_channel.rb +0 -8
  123. data/doc/ex/blur_image.rb +0 -12
  124. data/doc/ex/border.rb +0 -10
  125. data/doc/ex/bounding_box.rb +0 -42
  126. data/doc/ex/cbezier1.rb +0 -41
  127. data/doc/ex/cbezier2.rb +0 -41
  128. data/doc/ex/cbezier3.rb +0 -41
  129. data/doc/ex/cbezier4.rb +0 -42
  130. data/doc/ex/cbezier5.rb +0 -42
  131. data/doc/ex/cbezier6.rb +0 -53
  132. data/doc/ex/channel.rb +0 -25
  133. data/doc/ex/charcoal.rb +0 -12
  134. data/doc/ex/chop.rb +0 -29
  135. data/doc/ex/circle.rb +0 -33
  136. data/doc/ex/circle01.rb +0 -16
  137. data/doc/ex/clip_path.rb +0 -60
  138. data/doc/ex/coalesce.rb +0 -57
  139. data/doc/ex/color_fill_to_border.rb +0 -29
  140. data/doc/ex/color_floodfill.rb +0 -28
  141. data/doc/ex/color_histogram.rb +0 -47
  142. data/doc/ex/color_reset.rb +0 -11
  143. data/doc/ex/colorize.rb +0 -16
  144. data/doc/ex/colors.rb +0 -64
  145. data/doc/ex/compose_mask.rb +0 -22
  146. data/doc/ex/composite.rb +0 -133
  147. data/doc/ex/composite_layers.rb +0 -53
  148. data/doc/ex/composite_tiled.rb +0 -21
  149. data/doc/ex/contrast.rb +0 -36
  150. data/doc/ex/crop.rb +0 -31
  151. data/doc/ex/crop_with_gravity.rb +0 -42
  152. data/doc/ex/cubic01.rb +0 -43
  153. data/doc/ex/cubic02.rb +0 -91
  154. data/doc/ex/cycle_colormap.rb +0 -21
  155. data/doc/ex/dissolve.rb +0 -12
  156. data/doc/ex/drawcomp.rb +0 -42
  157. data/doc/ex/drop_shadow.rb +0 -60
  158. data/doc/ex/edge.rb +0 -11
  159. data/doc/ex/ellipse.rb +0 -45
  160. data/doc/ex/ellipse01.rb +0 -21
  161. data/doc/ex/emboss.rb +0 -11
  162. data/doc/ex/enhance.rb +0 -28
  163. data/doc/ex/equalize.rb +0 -11
  164. data/doc/ex/evenodd.rb +0 -42
  165. data/doc/ex/fill_pattern.rb +0 -23
  166. data/doc/ex/flatten_images.rb +0 -36
  167. data/doc/ex/flip.rb +0 -11
  168. data/doc/ex/flop.rb +0 -11
  169. data/doc/ex/font_styles.rb +0 -32
  170. data/doc/ex/fonts.rb +0 -20
  171. data/doc/ex/frame.rb +0 -12
  172. data/doc/ex/gaussian_blur.rb +0 -11
  173. data/doc/ex/get_multiline_type_metrics.rb +0 -41
  174. data/doc/ex/get_pixels.rb +0 -47
  175. data/doc/ex/get_type_metrics.rb +0 -141
  176. data/doc/ex/gradientfill.rb +0 -27
  177. data/doc/ex/grav.rb +0 -45
  178. data/doc/ex/gravity.rb +0 -80
  179. data/doc/ex/group.rb +0 -26
  180. data/doc/ex/hatchfill.rb +0 -27
  181. data/doc/ex/image.rb +0 -44
  182. data/doc/ex/images/Apple.miff +0 -0
  183. data/doc/ex/images/Ballerina.jpg +0 -0
  184. data/doc/ex/images/Ballerina3.jpg +0 -0
  185. data/doc/ex/images/Button_0.gif +0 -0
  186. data/doc/ex/images/Button_1.gif +0 -0
  187. data/doc/ex/images/Button_2.gif +0 -0
  188. data/doc/ex/images/Button_3.gif +0 -0
  189. data/doc/ex/images/Button_4.gif +0 -0
  190. data/doc/ex/images/Button_5.gif +0 -0
  191. data/doc/ex/images/Button_6.gif +0 -0
  192. data/doc/ex/images/Button_7.gif +0 -0
  193. data/doc/ex/images/Button_8.gif +0 -0
  194. data/doc/ex/images/Button_9.gif +0 -0
  195. data/doc/ex/images/Button_A.gif +0 -0
  196. data/doc/ex/images/Button_B.gif +0 -0
  197. data/doc/ex/images/Button_C.gif +0 -0
  198. data/doc/ex/images/Button_D.gif +0 -0
  199. data/doc/ex/images/Button_E.gif +0 -0
  200. data/doc/ex/images/Button_F.gif +0 -0
  201. data/doc/ex/images/Button_G.gif +0 -0
  202. data/doc/ex/images/Button_H.gif +0 -0
  203. data/doc/ex/images/Button_I.gif +0 -0
  204. data/doc/ex/images/Button_J.gif +0 -0
  205. data/doc/ex/images/Button_K.gif +0 -0
  206. data/doc/ex/images/Button_L.gif +0 -0
  207. data/doc/ex/images/Button_M.gif +0 -0
  208. data/doc/ex/images/Button_N.gif +0 -0
  209. data/doc/ex/images/Button_O.gif +0 -0
  210. data/doc/ex/images/Button_P.gif +0 -0
  211. data/doc/ex/images/Button_Q.gif +0 -0
  212. data/doc/ex/images/Button_R.gif +0 -0
  213. data/doc/ex/images/Button_S.gif +0 -0
  214. data/doc/ex/images/Button_T.gif +0 -0
  215. data/doc/ex/images/Button_U.gif +0 -0
  216. data/doc/ex/images/Button_V.gif +0 -0
  217. data/doc/ex/images/Button_W.gif +0 -0
  218. data/doc/ex/images/Button_X.gif +0 -0
  219. data/doc/ex/images/Button_Y.gif +0 -0
  220. data/doc/ex/images/Button_Z.gif +0 -0
  221. data/doc/ex/images/Cheetah.jpg +0 -0
  222. data/doc/ex/images/Coffee.wmf +0 -0
  223. data/doc/ex/images/Flower_Hat.jpg +0 -0
  224. data/doc/ex/images/Gold_Statue.jpg +0 -0
  225. data/doc/ex/images/Hot_Air_Balloons.jpg +0 -0
  226. data/doc/ex/images/Hot_Air_Balloons_H.jpg +0 -0
  227. data/doc/ex/images/Leaf.miff +0 -0
  228. data/doc/ex/images/No.wmf +0 -0
  229. data/doc/ex/images/Polynesia.jpg +0 -0
  230. data/doc/ex/images/Red_Rocks.jpg +0 -0
  231. data/doc/ex/images/Rocks_On_Beach.miff +0 -0
  232. data/doc/ex/images/Shorts.jpg +0 -0
  233. data/doc/ex/images/Snake.wmf +0 -0
  234. data/doc/ex/images/Violin.jpg +0 -0
  235. data/doc/ex/images/Yellow_Rose.miff +0 -0
  236. data/doc/ex/images/big-duck.gif +0 -0
  237. data/doc/ex/images/duck.gif +0 -0
  238. data/doc/ex/images/duck0.gif +0 -0
  239. data/doc/ex/images/duck1.gif +0 -0
  240. data/doc/ex/images/duck10.gif +0 -0
  241. data/doc/ex/images/duck11.gif +0 -0
  242. data/doc/ex/images/duck12.gif +0 -0
  243. data/doc/ex/images/duck13.gif +0 -0
  244. data/doc/ex/images/duck14.gif +0 -0
  245. data/doc/ex/images/duck15.gif +0 -0
  246. data/doc/ex/images/duck2.gif +0 -0
  247. data/doc/ex/images/duck3.gif +0 -0
  248. data/doc/ex/images/duck4.gif +0 -0
  249. data/doc/ex/images/duck5.gif +0 -0
  250. data/doc/ex/images/duck6.gif +0 -0
  251. data/doc/ex/images/duck7.gif +0 -0
  252. data/doc/ex/images/duck8.gif +0 -0
  253. data/doc/ex/images/duck9.gif +0 -0
  254. data/doc/ex/images/graydient230x6.gif +0 -0
  255. data/doc/ex/images/image_with_profile.jpg +0 -0
  256. data/doc/ex/images/logo400x83.gif +0 -0
  257. data/doc/ex/images/model.miff +0 -0
  258. data/doc/ex/images/notimplemented.gif +0 -0
  259. data/doc/ex/images/smile.miff +0 -0
  260. data/doc/ex/images/spin.gif +0 -0
  261. data/doc/ex/implode.rb +0 -34
  262. data/doc/ex/level.rb +0 -11
  263. data/doc/ex/level_colors.rb +0 -11
  264. data/doc/ex/line.rb +0 -41
  265. data/doc/ex/line01.rb +0 -21
  266. data/doc/ex/mask.rb +0 -35
  267. data/doc/ex/matte_fill_to_border.rb +0 -39
  268. data/doc/ex/matte_floodfill.rb +0 -32
  269. data/doc/ex/matte_replace.rb +0 -39
  270. data/doc/ex/median_filter.rb +0 -28
  271. data/doc/ex/modulate.rb +0 -11
  272. data/doc/ex/mono.rb +0 -23
  273. data/doc/ex/morph.rb +0 -25
  274. data/doc/ex/mosaic.rb +0 -35
  275. data/doc/ex/motion_blur.rb +0 -11
  276. data/doc/ex/negate.rb +0 -11
  277. data/doc/ex/negate_channel.rb +0 -9
  278. data/doc/ex/nested_rvg.rb +0 -21
  279. data/doc/ex/nonzero.rb +0 -42
  280. data/doc/ex/normalize.rb +0 -11
  281. data/doc/ex/oil_paint.rb +0 -11
  282. data/doc/ex/opacity.rb +0 -37
  283. data/doc/ex/ordered_dither.rb +0 -11
  284. data/doc/ex/path.rb +0 -63
  285. data/doc/ex/pattern1.rb +0 -25
  286. data/doc/ex/pattern2.rb +0 -26
  287. data/doc/ex/polaroid.rb +0 -27
  288. data/doc/ex/polygon.rb +0 -23
  289. data/doc/ex/polygon01.rb +0 -21
  290. data/doc/ex/polyline.rb +0 -22
  291. data/doc/ex/polyline01.rb +0 -21
  292. data/doc/ex/posterize.rb +0 -8
  293. data/doc/ex/preview.rb +0 -8
  294. data/doc/ex/qbezierpath.rb +0 -52
  295. data/doc/ex/quad01.rb +0 -34
  296. data/doc/ex/quantize-m.rb +0 -25
  297. data/doc/ex/radial_blur.rb +0 -9
  298. data/doc/ex/raise.rb +0 -8
  299. data/doc/ex/random_threshold_channel.rb +0 -13
  300. data/doc/ex/rect01.rb +0 -14
  301. data/doc/ex/rect02.rb +0 -20
  302. data/doc/ex/rectangle.rb +0 -34
  303. data/doc/ex/reduce_noise.rb +0 -28
  304. data/doc/ex/remap.rb +0 -11
  305. data/doc/ex/remap_images.rb +0 -19
  306. data/doc/ex/resize_to_fill.rb +0 -8
  307. data/doc/ex/resize_to_fit.rb +0 -8
  308. data/doc/ex/roll.rb +0 -9
  309. data/doc/ex/rotate.rb +0 -44
  310. data/doc/ex/rotate_f.rb +0 -14
  311. data/doc/ex/roundrect.rb +0 -33
  312. data/doc/ex/rubyname.rb +0 -30
  313. data/doc/ex/rvg_clippath.rb +0 -12
  314. data/doc/ex/rvg_linecap.rb +0 -42
  315. data/doc/ex/rvg_linejoin.rb +0 -40
  316. data/doc/ex/rvg_opacity.rb +0 -18
  317. data/doc/ex/rvg_pattern.rb +0 -26
  318. data/doc/ex/rvg_stroke_dasharray.rb +0 -11
  319. data/doc/ex/segment.rb +0 -11
  320. data/doc/ex/sepiatone.rb +0 -7
  321. data/doc/ex/shade.rb +0 -11
  322. data/doc/ex/shadow.rb +0 -30
  323. data/doc/ex/shave.rb +0 -15
  324. data/doc/ex/shear.rb +0 -10
  325. data/doc/ex/sketch.rb +0 -17
  326. data/doc/ex/skewx.rb +0 -51
  327. data/doc/ex/skewy.rb +0 -47
  328. data/doc/ex/smile.rb +0 -125
  329. data/doc/ex/solarize.rb +0 -11
  330. data/doc/ex/sparse_color.rb +0 -54
  331. data/doc/ex/splice.rb +0 -8
  332. data/doc/ex/spread.rb +0 -11
  333. data/doc/ex/stegano.rb +0 -55
  334. data/doc/ex/stroke_dasharray.rb +0 -42
  335. data/doc/ex/stroke_fill.rb +0 -10
  336. data/doc/ex/stroke_linecap.rb +0 -44
  337. data/doc/ex/stroke_linejoin.rb +0 -48
  338. data/doc/ex/stroke_width.rb +0 -49
  339. data/doc/ex/swirl.rb +0 -17
  340. data/doc/ex/text.rb +0 -37
  341. data/doc/ex/text01.rb +0 -16
  342. data/doc/ex/text_align.rb +0 -36
  343. data/doc/ex/text_antialias.rb +0 -37
  344. data/doc/ex/text_styles.rb +0 -19
  345. data/doc/ex/text_undercolor.rb +0 -28
  346. data/doc/ex/texture_fill_to_border.rb +0 -34
  347. data/doc/ex/texture_floodfill.rb +0 -32
  348. data/doc/ex/texturefill.rb +0 -24
  349. data/doc/ex/threshold.rb +0 -13
  350. data/doc/ex/to_blob.rb +0 -13
  351. data/doc/ex/translate.rb +0 -39
  352. data/doc/ex/transparent.rb +0 -38
  353. data/doc/ex/transpose.rb +0 -9
  354. data/doc/ex/transverse.rb +0 -9
  355. data/doc/ex/tref01.rb +0 -24
  356. data/doc/ex/triangle01.rb +0 -15
  357. data/doc/ex/trim.rb +0 -23
  358. data/doc/ex/tspan01.rb +0 -17
  359. data/doc/ex/tspan02.rb +0 -17
  360. data/doc/ex/tspan03.rb +0 -19
  361. data/doc/ex/unsharp_mask.rb +0 -28
  362. data/doc/ex/viewex.rb +0 -33
  363. data/doc/ex/vignette.rb +0 -12
  364. data/doc/ex/watermark.rb +0 -27
  365. data/doc/ex/wave.rb +0 -9
  366. data/doc/ex/wet_floor.rb +0 -58
  367. data/doc/ex/writing_mode01.rb +0 -26
  368. data/doc/ex/writing_mode02.rb +0 -26
  369. data/doc/ilist.html +0 -2056
  370. data/doc/image1.html +0 -4680
  371. data/doc/image2.html +0 -3665
  372. data/doc/image3.html +0 -4522
  373. data/doc/imageattrs.html +0 -1638
  374. data/doc/imusage.html +0 -514
  375. data/doc/index.html +0 -416
  376. data/doc/info.html +0 -1499
  377. data/doc/magick.html +0 -565
  378. data/doc/optequiv.html +0 -2435
  379. data/doc/rvg.html +0 -975
  380. data/doc/rvgclip.html +0 -248
  381. data/doc/rvggroup.html +0 -305
  382. data/doc/rvgimage.html +0 -289
  383. data/doc/rvgpattern.html +0 -475
  384. data/doc/rvgshape.html +0 -406
  385. data/doc/rvgstyle.html +0 -270
  386. data/doc/rvgtext.html +0 -465
  387. data/doc/rvgtspan.html +0 -238
  388. data/doc/rvgtut.html +0 -530
  389. data/doc/rvguse.html +0 -145
  390. data/doc/rvgxform.html +0 -294
  391. data/doc/scripts/doc.js +0 -22
  392. data/doc/scripts/stripeTables.js +0 -23
  393. data/doc/struct.html +0 -1339
  394. data/doc/usage.html +0 -1621
  395. data/examples/constitute.rb +0 -7
  396. data/examples/crop_with_gravity.rb +0 -42
  397. data/examples/demo.rb +0 -324
  398. data/examples/describe.rb +0 -43
  399. data/examples/find_similar_region.rb +0 -34
  400. data/examples/histogram.rb +0 -321
  401. data/examples/identify.rb +0 -185
  402. data/examples/image_opacity.rb +0 -29
  403. data/examples/import_export.rb +0 -31
  404. data/examples/pattern_fill.rb +0 -38
  405. data/examples/rotating_text.rb +0 -44
  406. data/examples/spinner.rb +0 -49
  407. data/examples/thumbnail.rb +0 -64
  408. data/examples/vignette.rb +0 -78
  409. data/ext/RMagick/rmdraw.c +0 -2022
  410. data/ext/RMagick/rmenum.c +0 -1235
  411. data/ext/RMagick/rmilist.c +0 -1270
  412. data/ext/RMagick/rmimage.c +0 -15427
  413. data/ext/RMagick/rmmain.c +0 -1741
  414. data/ext/RMagick/rmmontage.c +0 -519
  415. data/ext/RMagick/rmpixel.c +0 -1114
  416. data/spec/rmagick/ImageList1_spec.rb +0 -24
  417. data/spec/rmagick/draw_spec.rb +0 -156
  418. data/spec/rmagick/image/blue_shift_spec.rb +0 -16
  419. data/spec/rmagick/image/composite_spec.rb +0 -140
  420. data/spec/rmagick/image/constitute_spec.rb +0 -15
  421. data/spec/rmagick/image/dispatch_spec.rb +0 -18
  422. data/spec/rmagick/image/from_blob_spec.rb +0 -14
  423. data/spec/rmagick/image/ping_spec.rb +0 -14
  424. data/spec/rmagick/image/properties_spec.rb +0 -29
  425. data/spec/spec_helper.rb +0 -4
  426. data/test/Image1.rb +0 -565
  427. data/test/Image2.rb +0 -1304
  428. data/test/Image3.rb +0 -1030
  429. data/test/ImageList1.rb +0 -806
  430. data/test/ImageList2.rb +0 -385
  431. data/test/Image_attributes.rb +0 -697
  432. data/test/Import_Export.rb +0 -121
  433. data/test/Info.rb +0 -345
  434. data/test/Magick.rb +0 -321
  435. data/test/Pixel.rb +0 -116
  436. data/test/Preview.rb +0 -57
  437. data/test/cmyk.icm +0 -0
  438. data/test/srgb.icm +0 -0
  439. data/test/test_all_basic.rb +0 -38
  440. data/test/tmpnam_test.rb +0 -50
  441. data/wercker.yml +0 -10
data/test/Image1.rb DELETED
@@ -1,565 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
-
3
- require 'rmagick'
4
- require 'test/unit'
5
- require 'test/unit/ui/console/testrunner' unless RUBY_VERSION[/^1\.9|^2/]
6
-
7
- class Image1_UT < Test::Unit::TestCase
8
- FreezeError = RUBY_VERSION[/^1\.9|^2/] ? RuntimeError : TypeError
9
-
10
- def setup
11
- @img = Magick::Image.new(20, 20)
12
- end
13
-
14
- def test_read_inline
15
- img = Magick::Image.read(IMAGES_DIR+'/Button_0.gif').first
16
- blob = img.to_blob
17
- encoded = [blob].pack('m*')
18
- res = Magick::Image.read_inline(encoded)
19
- assert_instance_of(Array, res)
20
- assert_instance_of(Magick::Image, res[0])
21
- assert_equal(img, res[0])
22
- end
23
-
24
- def test_spaceship
25
- img0 = Magick::Image.read(IMAGES_DIR+'/Button_0.gif').first
26
- img1 = Magick::Image.read(IMAGES_DIR+'/Button_1.gif').first
27
- sig0 = img0.signature
28
- sig1 = img1.signature
29
- # since <=> is based on the signature, the images should
30
- # have the same relationship to each other as their
31
- # signatures have to each other.
32
- assert_equal(sig0 <=> sig1, img0 <=> img1)
33
- assert_equal(sig1 <=> sig0, img1 <=> img0)
34
- assert_equal(img0, img0)
35
- assert_not_equal(img0, img1)
36
- end
37
-
38
- def test_adaptive_blur
39
- assert_nothing_raised do
40
- res = @img.adaptive_blur
41
- assert_instance_of(Magick::Image, res)
42
- end
43
- assert_nothing_raised { @img.adaptive_blur(2) }
44
- assert_nothing_raised { @img.adaptive_blur(3, 2) }
45
- assert_raise(ArgumentError) { @img.adaptive_blur(3, 2, 2) }
46
- end
47
-
48
- def test_adaptive_blur_channel
49
- assert_nothing_raised do
50
- res = @img.adaptive_blur_channel
51
- assert_instance_of(Magick::Image, res)
52
- end
53
- assert_nothing_raised { @img.adaptive_blur_channel(2) }
54
- assert_nothing_raised { @img.adaptive_blur_channel(3, 2) }
55
- assert_nothing_raised { @img.adaptive_blur_channel(3, 2, Magick::RedChannel) }
56
- assert_nothing_raised { @img.adaptive_blur_channel(3, 2, Magick::RedChannel, Magick::BlueChannel) }
57
- assert_raise(ArgumentError) { @img.adaptive_blur(3, 2, 2) }
58
- end
59
-
60
- def test_adaptive_resize
61
- assert_nothing_raised do
62
- res = @img.adaptive_resize(10,10)
63
- assert_instance_of(Magick::Image, res)
64
- end
65
- assert_nothing_raised { @img.adaptive_resize(2) }
66
- assert_raise(ArgumentError) { @img.adaptive_resize(10,10,10) }
67
- assert_raise(ArgumentError) { @img.adaptive_resize }
68
- end
69
-
70
- def test_adaptive_sharpen
71
- assert_nothing_raised do
72
- res = @img.adaptive_sharpen
73
- assert_instance_of(Magick::Image, res)
74
- end
75
- assert_nothing_raised { @img.adaptive_sharpen(2) }
76
- assert_nothing_raised { @img.adaptive_sharpen(3, 2) }
77
- assert_raise(ArgumentError) { @img.adaptive_sharpen(3, 2, 2) }
78
- end
79
-
80
- def test_adaptive_sharpen_channel
81
- assert_nothing_raised do
82
- res = @img.adaptive_sharpen_channel
83
- assert_instance_of(Magick::Image, res)
84
- end
85
- assert_nothing_raised { @img.adaptive_sharpen_channel(2) }
86
- assert_nothing_raised { @img.adaptive_sharpen_channel(3, 2) }
87
- assert_nothing_raised { @img.adaptive_sharpen_channel(3, 2, Magick::RedChannel) }
88
- assert_nothing_raised { @img.adaptive_sharpen_channel(3, 2, Magick::RedChannel, Magick::BlueChannel) }
89
- assert_raise(ArgumentError) { @img.adaptive_sharpen(3, 2, 2) }
90
- end
91
-
92
- def test_adaptive_threshold
93
- assert_nothing_raised do
94
- res = @img.adaptive_threshold
95
- assert_instance_of(Magick::Image, res)
96
- end
97
- assert_nothing_raised { @img.adaptive_threshold(2) }
98
- assert_nothing_raised { @img.adaptive_threshold(2,4) }
99
- assert_nothing_raised { @img.adaptive_threshold(2,4,1) }
100
- assert_raise(ArgumentError) { @img.adaptive_threshold(2,4,1,2) }
101
- end
102
-
103
- def test_add_compose_mask
104
- mask = Magick::Image.new(20,20)
105
- assert_nothing_raised { @img.add_compose_mask(mask) }
106
- assert_nothing_raised { @img.delete_compose_mask }
107
- assert_nothing_raised { @img.add_compose_mask(mask) }
108
- assert_nothing_raised { @img.add_compose_mask(mask) }
109
- assert_nothing_raised { @img.delete_compose_mask }
110
- assert_nothing_raised { @img.delete_compose_mask }
111
- end
112
-
113
- def test_add_noise
114
- assert_nothing_raised { @img.add_noise(Magick::UniformNoise) }
115
- assert_nothing_raised { @img.add_noise(Magick::GaussianNoise) }
116
- assert_nothing_raised { @img.add_noise(Magick::MultiplicativeGaussianNoise) }
117
- assert_nothing_raised { @img.add_noise(Magick::ImpulseNoise) }
118
- assert_nothing_raised { @img.add_noise(Magick::LaplacianNoise) }
119
- assert_nothing_raised { @img.add_noise(Magick::PoissonNoise) }
120
- assert_raise(TypeError) { @img.add_noise(0) }
121
- end
122
-
123
- def test_add_noise_channel
124
- assert_nothing_raised { @img.add_noise_channel(Magick::UniformNoise) }
125
- assert_nothing_raised { @img.add_noise_channel(Magick::UniformNoise, Magick::RedChannel) }
126
- assert_nothing_raised { @img.add_noise_channel(Magick::GaussianNoise, Magick::BlueChannel) }
127
- assert_nothing_raised { @img.add_noise_channel(Magick::ImpulseNoise, Magick::GreenChannel) }
128
- assert_nothing_raised { @img.add_noise_channel(Magick::LaplacianNoise, Magick::RedChannel, Magick::GreenChannel) }
129
- assert_nothing_raised { @img.add_noise_channel(Magick::PoissonNoise, Magick::RedChannel, Magick::GreenChannel, Magick::BlueChannel) }
130
-
131
- # Not a NoiseType
132
- assert_raise(TypeError) { @img.add_noise_channel(1) }
133
- # Not a ChannelType
134
- assert_raise(TypeError) { @img.add_noise_channel(Magick::UniformNoise, Magick::RedChannel, 1) }
135
- # Too few arguments
136
- assert_raise(ArgumentError) { @img.add_noise_channel }
137
- end
138
-
139
- def add_delete_profile
140
- img = Magick::Image.read('cmyk.jpg'),first
141
- assert_nothing_raised { img.add_profile('cmyk.icm') }
142
- assert_nothing_raised { img.add_profile('srgb.icm') }
143
- img.each_profile { |name, value| assert_equal('icc', name) }
144
- assert_nothing_raised { img.delete_profile('icc') }
145
- end
146
-
147
- def test_affine_matrix
148
- affine = Magick::AffineMatrix.new(1, Math::PI/6, Math::PI/6, 1, 0, 0)
149
- assert_nothing_raised { @img.affine_transform(affine) }
150
- assert_raise(TypeError) { @img.affine_transform(0) }
151
- res = @img.affine_transform(affine)
152
- assert_instance_of(Magick::Image, res)
153
- end
154
-
155
- # test alpha backward compatibility. Image#alpha w/o arguments acts like alpha?
156
- def test_alpha_compat
157
- assert_nothing_raised { @img.alpha }
158
- assert !@img.alpha
159
- assert_nothing_raised { @img.alpha Magick::ActivateAlphaChannel }
160
- assert @img.alpha
161
- end
162
-
163
- def test_alpha
164
- assert_nothing_raised { @img.alpha? }
165
- assert !@img.alpha?
166
- assert_nothing_raised { @img.alpha Magick::ActivateAlphaChannel }
167
- assert @img.alpha?
168
- assert_nothing_raised { @img.alpha Magick::DeactivateAlphaChannel }
169
- assert !@img.alpha?
170
- assert_nothing_raised { @img.alpha Magick::ResetAlphaChannel }
171
- assert_nothing_raised { @img.alpha Magick::SetAlphaChannel }
172
- @img.freeze
173
- assert_raise(FreezeError) { @img.alpha Magick::SetAlphaChannel }
174
- end
175
-
176
- def test_auto_gamma
177
- res = nil
178
- assert_nothing_raised { res = @img.auto_gamma_channel }
179
- assert_instance_of(Magick::Image, res)
180
- assert_not_same(@img, res)
181
- assert_nothing_raised { res = @img.auto_gamma_channel Magick::RedChannel }
182
- assert_nothing_raised { res = @img.auto_gamma_channel Magick::RedChannel, Magick::BlueChannel }
183
- assert_raise(TypeError) { @img.auto_gamma_channel(1) }
184
- end
185
-
186
- def test_auto_level
187
- res = nil
188
- assert_nothing_raised { res = @img.auto_level_channel }
189
- assert_instance_of(Magick::Image, res)
190
- assert_not_same(@img, res)
191
- assert_nothing_raised { res = @img.auto_level_channel Magick::RedChannel }
192
- assert_nothing_raised { res = @img.auto_level_channel Magick::RedChannel, Magick::BlueChannel }
193
- assert_raise(TypeError) { @img.auto_level_channel(1) }
194
- end
195
-
196
- def test_auto_orient
197
- assert_nothing_raised do
198
- res = @img.auto_orient
199
- assert_instance_of(Magick::Image, res)
200
- assert_not_same(@img, res)
201
- end
202
-
203
- assert_nothing_raised do
204
- res = @img.auto_orient!
205
- # When not changed, returns nil
206
- assert_nil(res)
207
- end
208
- end
209
-
210
- def test_bilevel_channel
211
- assert_raise(ArgumentError) { @img.bilevel_channel }
212
- assert_nothing_raised { @img.bilevel_channel(100) }
213
- assert_nothing_raised { @img.bilevel_channel(100, Magick::RedChannel) }
214
- assert_nothing_raised { @img.bilevel_channel(100, Magick::RedChannel, Magick::BlueChannel, Magick::GreenChannel, Magick::OpacityChannel) }
215
- assert_nothing_raised { @img.bilevel_channel(100, Magick::CyanChannel, Magick::MagentaChannel, Magick::YellowChannel, Magick::BlackChannel) }
216
- assert_nothing_raised { @img.bilevel_channel(100, Magick::GrayChannel) }
217
- assert_nothing_raised { @img.bilevel_channel(100, Magick::AllChannels) }
218
- assert_raise(TypeError) { @img.bilevel_channel(100, 2) }
219
- res = @img.bilevel_channel(100)
220
- assert_instance_of(Magick::Image, res)
221
- end
222
-
223
- def test_blend
224
- @img2 = Magick::Image.new(20,20) {self.background_color = 'black'}
225
- assert_nothing_raised { @img.blend(@img2, 0.25) }
226
- res = @img.blend(@img2, 0.25)
227
- assert_instance_of(Magick::Image, res)
228
- assert_nothing_raised { @img.blend(@img2, '25%') }
229
- assert_nothing_raised { @img.blend(@img2, 0.25, 0.75) }
230
- assert_nothing_raised { @img.blend(@img2, '25%', '75%') }
231
- assert_nothing_raised { @img.blend(@img2, 0.25, 0.75, Magick::CenterGravity) }
232
- assert_nothing_raised { @img.blend(@img2, 0.25, 0.75, Magick::CenterGravity, 10) }
233
- assert_nothing_raised { @img.blend(@img2, 0.25, 0.75, Magick::CenterGravity, 10, 10) }
234
- assert_raise(ArgumentError) { @img.blend }
235
- assert_raise(ArgumentError) { @img.blend(@img2, 'x') }
236
- assert_raise(TypeError) { @img.blend(@img2, 0.25, []) }
237
- assert_raise(TypeError) { @img.blend(@img2, 0.25, 0.75, 'x') }
238
- assert_raise(TypeError) { @img.blend(@img2, 0.25, 0.75, Magick::CenterGravity, 'x') }
239
- assert_raise(TypeError) { @img.blend(@img2, 0.25, 0.75, Magick::CenterGravity, 10, []) }
240
-
241
- @img2.destroy!
242
- assert_raise(Magick::DestroyedImageError) { @img.blend(@img2, '25%') }
243
- end
244
-
245
- def test_blur_channel
246
- assert_nothing_raised { @img.blur_channel }
247
- assert_nothing_raised { @img.blur_channel(1) }
248
- assert_nothing_raised { @img.blur_channel(1,2) }
249
- assert_nothing_raised { @img.blur_channel(1,2, Magick::RedChannel) }
250
- assert_nothing_raised { @img.blur_channel(1,2, Magick::RedChannel, Magick::BlueChannel, Magick::GreenChannel, Magick::OpacityChannel) }
251
- assert_nothing_raised { @img.blur_channel(1,2, Magick::CyanChannel, Magick::MagentaChannel, Magick::YellowChannel, Magick::BlackChannel) }
252
- assert_nothing_raised { @img.blur_channel(1,2, Magick::GrayChannel) }
253
- assert_nothing_raised { @img.blur_channel(1,2, Magick::AllChannels) }
254
- assert_raise(TypeError) { @img.blur_channel(1,2,2) }
255
- res = @img.blur_channel
256
- assert_instance_of(Magick::Image, res)
257
- end
258
-
259
- def test_blur_image
260
- assert_nothing_raised { @img.blur_image }
261
- assert_nothing_raised { @img.blur_image(1) }
262
- assert_nothing_raised { @img.blur_image(1,2) }
263
- assert_raise(ArgumentError) { @img.blur_image(1,2,3) }
264
- res = @img.blur_image
265
- assert_instance_of(Magick::Image, res)
266
- end
267
-
268
- def test_black_threshold
269
- assert_raise(ArgumentError) { @img.black_threshold }
270
- assert_nothing_raised { @img.black_threshold(50) }
271
- assert_nothing_raised { @img.black_threshold(50, 50) }
272
- assert_nothing_raised { @img.black_threshold(50, 50, 50) }
273
- assert_nothing_raised { @img.black_threshold(50, 50, 50, 50) }
274
- assert_raise(ArgumentError) { @img.black_threshold(50, 50, 50, 50, 50) }
275
- res = @img.black_threshold(50)
276
- assert_instance_of(Magick::Image, res)
277
- end
278
-
279
- def test_border
280
- assert_nothing_raised { @img.border(2, 2, 'red') }
281
- assert_nothing_raised { @img.border!(2, 2, 'red') }
282
- res = @img.border(2,2, 'red')
283
- assert_instance_of(Magick::Image, res)
284
- @img.freeze
285
- assert_raise(FreezeError) { @img.border!(2,2, 'red') }
286
- end
287
-
288
- def test_change_geometry
289
- assert_raise(ArgumentError) { @img.change_geometry('sss') }
290
- assert_raise(LocalJumpError) { @img.change_geometry('100x100') }
291
- assert_nothing_raised do
292
- res = @img.change_geometry('100x100') { 1 }
293
- assert_equal(1, res)
294
- end
295
- assert_raise(ArgumentError) { @img.change_geometry([]) }
296
- end
297
-
298
- def test_changed?
299
- # assert_block { !@img.changed? }
300
- # @img.pixel_color(0,0,'red')
301
- # assert_block { @img.changed? }
302
- end
303
-
304
- def test_channel
305
- assert_nothing_raised { @img.channel(Magick::RedChannel) }
306
- assert_nothing_raised { @img.channel(Magick::BlueChannel) }
307
- assert_nothing_raised { @img.channel(Magick::GreenChannel) }
308
- assert_nothing_raised { @img.channel(Magick::OpacityChannel) }
309
- assert_nothing_raised { @img.channel(Magick::MagentaChannel) }
310
- assert_nothing_raised { @img.channel(Magick::CyanChannel) }
311
- assert_nothing_raised { @img.channel(Magick::YellowChannel) }
312
- assert_nothing_raised { @img.channel(Magick::BlackChannel) }
313
- assert_nothing_raised { @img.channel(Magick::GrayChannel) }
314
- assert_nothing_raised { @img.channel(Magick::AlphaChannel) }
315
- assert_nothing_raised { @img.channel(Magick::DefaultChannels) }
316
- assert_nothing_raised { @img.channel(Magick::HueChannel) }
317
- assert_nothing_raised { @img.channel(Magick::LuminosityChannel) }
318
- assert_nothing_raised { @img.channel(Magick::SaturationChannel) }
319
- assert_instance_of(Magick::Image, @img.channel(Magick::RedChannel))
320
- assert_raise(TypeError) { @img.channel(2) }
321
- end
322
-
323
- def test_channel_depth
324
- assert_nothing_raised { @img.channel_depth }
325
- assert_nothing_raised { @img.channel_depth(Magick::RedChannel) }
326
- assert_nothing_raised { @img.channel_depth(Magick::RedChannel, Magick::BlueChannel) }
327
- assert_nothing_raised { @img.channel_depth(Magick::GreenChannel, Magick::OpacityChannel) }
328
- assert_nothing_raised { @img.channel_depth(Magick::MagentaChannel, Magick::CyanChannel) }
329
- assert_nothing_raised { @img.channel_depth(Magick::CyanChannel, Magick::BlackChannel) }
330
- assert_nothing_raised { @img.channel_depth(Magick::GrayChannel) }
331
- assert_raise(TypeError) { @img.channel_depth(2) }
332
- assert_instance_of(Fixnum, @img.channel_depth(Magick::RedChannel))
333
- end
334
-
335
- def test_channel_extrema
336
- assert_nothing_raised do
337
- res = @img.channel_extrema
338
- assert_instance_of(Array, res)
339
- assert_equal(2, res.length)
340
- assert_kind_of(Integer, res[0])
341
- assert_kind_of(Integer, res[1])
342
- end
343
- assert_nothing_raised { @img.channel_extrema(Magick::RedChannel) }
344
- assert_nothing_raised { @img.channel_extrema(Magick::RedChannel, Magick::BlueChannel) }
345
- assert_nothing_raised { @img.channel_extrema(Magick::GreenChannel, Magick::OpacityChannel) }
346
- assert_nothing_raised { @img.channel_extrema(Magick::MagentaChannel, Magick::CyanChannel) }
347
- assert_nothing_raised { @img.channel_extrema(Magick::CyanChannel, Magick::BlackChannel) }
348
- assert_nothing_raised { @img.channel_extrema(Magick::GrayChannel) }
349
- assert_raise(TypeError) { @img.channel_extrema(2) }
350
- end
351
-
352
- def test_channel_mean
353
- assert_nothing_raised do
354
- res = @img.channel_mean
355
- assert_instance_of(Array, res)
356
- assert_equal(2, res.length)
357
- assert_instance_of(Float, res[0])
358
- assert_instance_of(Float, res[1])
359
- end
360
- assert_nothing_raised { @img.channel_mean(Magick::RedChannel) }
361
- assert_nothing_raised { @img.channel_mean(Magick::RedChannel, Magick::BlueChannel) }
362
- assert_nothing_raised { @img.channel_mean(Magick::GreenChannel, Magick::OpacityChannel) }
363
- assert_nothing_raised { @img.channel_mean(Magick::MagentaChannel, Magick::CyanChannel) }
364
- assert_nothing_raised { @img.channel_mean(Magick::CyanChannel, Magick::BlackChannel) }
365
- assert_nothing_raised { @img.channel_mean(Magick::GrayChannel) }
366
- assert_raise(TypeError) { @img.channel_mean(2) }
367
- end
368
-
369
- def test_charcoal
370
- assert_nothing_raised do
371
- res = @img.charcoal
372
- assert_instance_of(Magick::Image, res)
373
- end
374
- assert_nothing_raised { @img.charcoal(1.0) }
375
- assert_nothing_raised { @img.charcoal(1.0, 2.0) }
376
- assert_raise(ArgumentError) { @img.charcoal(1.0, 2.0, 3.0) }
377
- end
378
-
379
- def test_chop
380
- assert_nothing_raised do
381
- res = @img.chop(10, 10, 10, 10)
382
- assert_instance_of(Magick::Image, res)
383
- end
384
- end
385
-
386
- def test_clone
387
- assert_nothing_raised do
388
- res = @img.clone
389
- assert_instance_of(Magick::Image, res)
390
- assert_equal(res, @img)
391
- end
392
- res = @img.clone
393
- assert_equal(res.frozen?, @img.frozen?)
394
- @img.freeze
395
- res = @img.clone
396
- assert_equal(res.frozen?, @img.frozen?)
397
- end
398
-
399
- def test_clut_channel
400
- img = Magick::Image.new(20,20) {self.colorspace = Magick::GRAYColorspace}
401
- clut = Magick::Image.new(20,1) {self.background_color = 'red'}
402
- res = nil
403
- assert_nothing_raised {res = img.clut_channel(clut)}
404
- assert_same(res, img)
405
- assert_nothing_raised { img.clut_channel(clut, Magick::RedChannel) }
406
- assert_nothing_raised { img.clut_channel(clut, Magick::RedChannel, Magick::BlueChannel) }
407
- assert_raises(ArgumentError) { img.clut_channel(clut, 1, Magick::RedChannel) }
408
- end
409
-
410
- def test_color_fill_to_border
411
- assert_raise(ArgumentError) { @img.color_fill_to_border(-1, 1, 'red') }
412
- assert_raise(ArgumentError) { @img.color_fill_to_border(1, 100, 'red') }
413
- assert_nothing_raised do
414
- res = @img.color_fill_to_border(@img.columns/2, @img.rows/2, 'red')
415
- assert_instance_of(Magick::Image, res)
416
- end
417
- pixel = Magick::Pixel.new(Magick::QuantumRange)
418
- assert_nothing_raised { @img.color_fill_to_border(@img.columns/2, @img.rows/2, pixel) }
419
- end
420
-
421
- def test_color_floodfill
422
- assert_raise(ArgumentError) { @img.color_floodfill(-1, 1, 'red') }
423
- assert_raise(ArgumentError) { @img.color_floodfill(1, 100, 'red') }
424
- assert_nothing_raised do
425
- res = @img.color_floodfill(@img.columns/2, @img.rows/2, 'red')
426
- assert_instance_of(Magick::Image, res)
427
- end
428
- pixel = Magick::Pixel.new(Magick::QuantumRange)
429
- assert_nothing_raised { @img.color_floodfill(@img.columns/2, @img.rows/2, pixel) }
430
- end
431
-
432
- def test_color_histogram
433
- assert_nothing_raised do
434
- res = @img.color_histogram
435
- assert_instance_of(Hash, res)
436
- end
437
- end
438
-
439
- def test_colorize
440
- assert_nothing_raised do
441
- res = @img.colorize(0.25, 0.25, 0.25, 'red')
442
- assert_instance_of(Magick::Image, res)
443
- end
444
- assert_nothing_raised { @img.colorize(0.25, 0.25, 0.25, 0.25, 'red') }
445
- pixel = Magick::Pixel.new(Magick::QuantumRange)
446
- assert_nothing_raised { @img.colorize(0.25, 0.25, 0.25, pixel) }
447
- assert_nothing_raised { @img.colorize(0.25, 0.25, 0.25, 0.25, pixel) }
448
- assert_raise(ArgumentError) { @img.colorize }
449
- assert_raise(ArgumentError) { @img.colorize(0.25) }
450
- assert_raise(ArgumentError) { @img.colorize(0.25, 0.25) }
451
- assert_raise(ArgumentError) { @img.colorize(0.25, 0.25, 0.25) }
452
- assert_raise(ArgumentError) { @img.colorize(0.25, 0.25, 0.25, 'X') }
453
- # last argument must be a color name or pixel
454
- assert_raise(TypeError) { @img.colorize(0.25, 0.25, 0.25, 0.25) }
455
- assert_raise(ArgumentError) { @img.colorize(0.25, 0.25, 0.25, 0.25, 'X') }
456
- assert_raise(TypeError) { @img.colorize(0.25, 0.25, 0.25, 0.25, [2]) }
457
- end
458
-
459
- def test_colormap
460
- # IndexError b/c @img is DirectClass
461
- assert_raise(IndexError) { @img.colormap(0) }
462
- # Read PseudoClass image
463
- pc_img = Magick::Image.read(IMAGES_DIR+'/Button_0.gif').first
464
- assert_nothing_raised { pc_img.colormap(0) }
465
- ncolors = pc_img.colors
466
- assert_raise(IndexError) { pc_img.colormap(ncolors+1) }
467
- assert_raise(IndexError) { pc_img.colormap(-1) }
468
- assert_nothing_raised { pc_img.colormap(ncolors-1) }
469
- res = pc_img.colormap(0)
470
- assert_instance_of(String, res)
471
-
472
- #test 'set' operation
473
- assert_nothing_raised do
474
- old_color = pc_img.colormap(0)
475
- res = pc_img.colormap(0, 'red')
476
- assert_equal(old_color, res)
477
- res = pc_img.colormap(0)
478
- assert_equal('red', res)
479
- end
480
- pixel = Magick::Pixel.new(Magick::QuantumRange)
481
- assert_nothing_raised { pc_img.colormap(0, pixel) }
482
- assert_raise(TypeError) { pc_img.colormap(0, [2]) }
483
- pc_img.freeze
484
- assert_raise(FreezeError) { pc_img.colormap(0, 'red') }
485
- end
486
-
487
- def test_color_point
488
- assert_nothing_raised do
489
- res = @img.color_point(0, 0, 'red')
490
- assert_instance_of(Magick::Image, res)
491
- assert_not_same(@img, res)
492
- end
493
- pixel = Magick::Pixel.new(Magick::QuantumRange)
494
- assert_nothing_raised { @img.color_point(0, 0, pixel) }
495
- end
496
-
497
- def test_color_reset!
498
- assert_nothing_raised do
499
- res = @img.color_reset!('red')
500
- assert_same(@img, res)
501
- end
502
- pixel = Magick::Pixel.new(Magick::QuantumRange)
503
- assert_nothing_raised { @img.color_reset!(pixel) }
504
- assert_raise(TypeError) { @img.color_reset!([2]) }
505
- assert_raise(ArgumentError) { @img.color_reset!('x') }
506
- @img.freeze
507
- assert_raise(FreezeError) { @img.color_reset!('red') }
508
- end
509
-
510
- def test_combine
511
- r = Magick::Image.new(20,20) { self.background_color = 'red' }
512
- g = Magick::Image.new(20,20) { self.background_color = 'green' }
513
- b = Magick::Image.new(20,20) { self.background_color = 'blue' }
514
- a = Magick::Image.new(20,20) { self.background_color = 'transparent' }
515
- assert_nothing_raised { Magick::Image.combine(r) }
516
- assert_nothing_raised { Magick::Image.combine(r, g) }
517
- assert_nothing_raised { Magick::Image.combine(r, g, b) }
518
- assert_nothing_raised { Magick::Image.combine(r, g, b, a) }
519
- assert_nothing_raised { Magick::Image.combine(nil, g) }
520
- assert_nothing_raised { Magick::Image.combine(r, nil, b) }
521
- assert_nothing_raised { Magick::Image.combine(r, g, nil, a) }
522
- assert_nothing_raised { Magick::Image.combine(r, g, b, nil) }
523
- res = Magick::Image.combine(r, g, b)
524
- assert_instance_of(Magick::Image, res)
525
- assert_raise(ArgumentError) { Magick::Image.combine }
526
- assert_raise(ArgumentError) { Magick::Image.combine(nil) }
527
- assert_raise(ArgumentError) { Magick::Image.combine(r, g, b, a, r) }
528
- assert_raise(TypeError) { Magick::Image.combine(1, g, b, a) }
529
- end
530
-
531
- def test_compare_channel
532
- img1 = Magick::Image.read(IMAGES_DIR+'/Button_0.gif').first
533
- img2 = Magick::Image.read(IMAGES_DIR+'/Button_1.gif').first
534
- assert_nothing_raised { img1.compare_channel(img2, Magick::MeanAbsoluteErrorMetric) }
535
- assert_nothing_raised { img1.compare_channel(img2, Magick::MeanSquaredErrorMetric) }
536
- assert_nothing_raised { img1.compare_channel(img2, Magick::PeakAbsoluteErrorMetric) }
537
- assert_nothing_raised { img1.compare_channel(img2, Magick::PeakSignalToNoiseRatioMetric) }
538
- assert_nothing_raised { img1.compare_channel(img2, Magick::RootMeanSquaredErrorMetric) }
539
- assert_raise(TypeError) { img1.compare_channel(img2, 2) }
540
- assert_raise(ArgumentError) { img1.compare_channel }
541
-
542
- ilist = Magick::ImageList.new
543
- ilist << img2
544
- assert_nothing_raised { img1.compare_channel(ilist, Magick::MeanAbsoluteErrorMetric) }
545
-
546
- assert_nothing_raised { img1.compare_channel(img2, Magick::MeanAbsoluteErrorMetric, Magick::RedChannel) }
547
- assert_nothing_raised { img1.compare_channel(img2, Magick::MeanAbsoluteErrorMetric, Magick::RedChannel, Magick::BlueChannel) }
548
- assert_raise(TypeError) { img1.compare_channel(img2, Magick::MeanAbsoluteErrorMetric, 2) }
549
- assert_raise(TypeError) { img1.compare_channel(img2, Magick::MeanAbsoluteErrorMetric, Magick::RedChannel, 2) }
550
-
551
- res = img1.compare_channel(img2, Magick::MeanAbsoluteErrorMetric)
552
- assert_instance_of(Array, res)
553
- assert_instance_of(Magick::Image, res[0])
554
- assert_instance_of(Float, res[1])
555
-
556
- img2.destroy!
557
- assert_raise(Magick::DestroyedImageError) { img1.compare_channel(img2, Magick::MeanAbsoluteErrorMetric) }
558
- end
559
- end
560
-
561
- if __FILE__ == $PROGRAM_NAME
562
- IMAGES_DIR = '../doc/ex/images'
563
- FILES = Dir[IMAGES_DIR+'/Button_*.gif']
564
- Test::Unit::UI::Console::TestRunner.run(Image1_UT) unless RUBY_VERSION[/^1\.9|^2/]
565
- end