rmagick 4.1.0.rc2 → 4.1.0

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

Potentially problematic release.


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

Files changed (412) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +63 -0
  3. data/.editorconfig +3 -0
  4. data/.github/workflows/ci.yml +148 -0
  5. data/.gitignore +3 -1
  6. data/.rspec +1 -0
  7. data/.rubocop.yml +24 -0
  8. data/.rubocop_todo.yml +80 -270
  9. data/.yardopts +5 -0
  10. data/CHANGELOG.md +63 -0
  11. data/CONTRIBUTING.md +14 -10
  12. data/README.md +292 -0
  13. data/Rakefile +16 -22
  14. data/before_install_linux.sh +22 -32
  15. data/before_install_osx.sh +56 -2
  16. data/ext/RMagick/extconf.rb +100 -94
  17. data/ext/RMagick/rmagick.c +77 -104
  18. data/ext/RMagick/rmagick.h +74 -70
  19. data/ext/RMagick/rmdraw.c +261 -444
  20. data/ext/RMagick/rmenum.c +96 -113
  21. data/ext/RMagick/rmfill.c +46 -77
  22. data/ext/RMagick/rmilist.c +136 -244
  23. data/ext/RMagick/rmimage.c +3395 -4166
  24. data/ext/RMagick/rminfo.c +531 -737
  25. data/ext/RMagick/rmkinfo.c +21 -87
  26. data/ext/RMagick/rmmain.c +405 -245
  27. data/ext/RMagick/rmmontage.c +60 -126
  28. data/ext/RMagick/rmpixel.c +401 -345
  29. data/ext/RMagick/rmstruct.c +62 -88
  30. data/ext/RMagick/rmutil.c +112 -218
  31. data/lib/rmagick/version.rb +1 -1
  32. data/lib/rmagick_internal.rb +128 -77
  33. data/lib/rvg/clippath.rb +2 -1
  34. data/lib/rvg/container.rb +10 -5
  35. data/lib/rvg/describable.rb +1 -1
  36. data/lib/rvg/embellishable.rb +5 -4
  37. data/lib/rvg/misc.rb +15 -12
  38. data/lib/rvg/paint.rb +2 -1
  39. data/lib/rvg/pathdata.rb +12 -11
  40. data/lib/rvg/rvg.rb +8 -4
  41. data/lib/rvg/stylable.rb +9 -7
  42. data/lib/rvg/text.rb +11 -6
  43. data/lib/rvg/transformable.rb +3 -2
  44. data/lib/rvg/units.rb +1 -1
  45. data/rmagick.gemspec +7 -6
  46. metadata +31 -421
  47. data/.appveyor.yml +0 -57
  48. data/.circleci/config.yml +0 -56
  49. data/.ruby-version +0 -1
  50. data/.simplecov +0 -27
  51. data/.travis.yml +0 -64
  52. data/Doxyfile +0 -1514
  53. data/README.textile +0 -259
  54. data/benchmarks/memory/README.md +0 -50
  55. data/benchmarks/memory/image_new.rb +0 -8
  56. data/benchmarks/memory/rmagick.gnuplot +0 -16
  57. data/doc/.cvsignore +0 -1
  58. data/doc/comtasks.html +0 -287
  59. data/doc/constants.html +0 -1581
  60. data/doc/css/doc.css +0 -299
  61. data/doc/css/popup.css +0 -34
  62. data/doc/css/ref.css +0 -67
  63. data/doc/draw.html +0 -3272
  64. data/doc/ex/InitialCoords.rb +0 -22
  65. data/doc/ex/NewCoordSys.rb +0 -30
  66. data/doc/ex/OrigCoordSys.rb +0 -16
  67. data/doc/ex/PreserveAspectRatio.rb +0 -204
  68. data/doc/ex/RotateScale.rb +0 -36
  69. data/doc/ex/Skew.rb +0 -38
  70. data/doc/ex/Use01.rb +0 -15
  71. data/doc/ex/Use02.rb +0 -20
  72. data/doc/ex/Use03.rb +0 -16
  73. data/doc/ex/ViewBox.rb +0 -31
  74. data/doc/ex/adaptive_threshold.rb +0 -9
  75. data/doc/ex/add_noise.rb +0 -16
  76. data/doc/ex/affine.rb +0 -48
  77. data/doc/ex/affine_transform.rb +0 -20
  78. data/doc/ex/arc.rb +0 -49
  79. data/doc/ex/arcpath.rb +0 -32
  80. data/doc/ex/arcs01.rb +0 -28
  81. data/doc/ex/arcs02.rb +0 -59
  82. data/doc/ex/average.rb +0 -15
  83. data/doc/ex/axes.rb +0 -64
  84. data/doc/ex/baseline_shift01.rb +0 -17
  85. data/doc/ex/bilevel_channel.rb +0 -8
  86. data/doc/ex/blur_image.rb +0 -12
  87. data/doc/ex/border.rb +0 -10
  88. data/doc/ex/bounding_box.rb +0 -42
  89. data/doc/ex/cbezier1.rb +0 -41
  90. data/doc/ex/cbezier2.rb +0 -41
  91. data/doc/ex/cbezier3.rb +0 -41
  92. data/doc/ex/cbezier4.rb +0 -42
  93. data/doc/ex/cbezier5.rb +0 -42
  94. data/doc/ex/cbezier6.rb +0 -53
  95. data/doc/ex/channel.rb +0 -25
  96. data/doc/ex/charcoal.rb +0 -12
  97. data/doc/ex/chop.rb +0 -29
  98. data/doc/ex/circle.rb +0 -33
  99. data/doc/ex/circle01.rb +0 -16
  100. data/doc/ex/clip_path.rb +0 -60
  101. data/doc/ex/coalesce.rb +0 -57
  102. data/doc/ex/color_fill_to_border.rb +0 -29
  103. data/doc/ex/color_floodfill.rb +0 -28
  104. data/doc/ex/color_histogram.rb +0 -47
  105. data/doc/ex/color_reset.rb +0 -11
  106. data/doc/ex/colorize.rb +0 -16
  107. data/doc/ex/colors.rb +0 -64
  108. data/doc/ex/compose_mask.rb +0 -22
  109. data/doc/ex/composite.rb +0 -133
  110. data/doc/ex/composite_layers.rb +0 -52
  111. data/doc/ex/composite_tiled.rb +0 -21
  112. data/doc/ex/contrast.rb +0 -36
  113. data/doc/ex/crop.rb +0 -31
  114. data/doc/ex/crop_with_gravity.rb +0 -42
  115. data/doc/ex/cubic01.rb +0 -43
  116. data/doc/ex/cubic02.rb +0 -91
  117. data/doc/ex/cycle_colormap.rb +0 -21
  118. data/doc/ex/dissolve.rb +0 -12
  119. data/doc/ex/drawcomp.rb +0 -41
  120. data/doc/ex/drop_shadow.rb +0 -60
  121. data/doc/ex/edge.rb +0 -11
  122. data/doc/ex/ellipse.rb +0 -45
  123. data/doc/ex/ellipse01.rb +0 -21
  124. data/doc/ex/emboss.rb +0 -11
  125. data/doc/ex/enhance.rb +0 -28
  126. data/doc/ex/equalize.rb +0 -11
  127. data/doc/ex/evenodd.rb +0 -42
  128. data/doc/ex/fill_pattern.rb +0 -23
  129. data/doc/ex/flatten_images.rb +0 -36
  130. data/doc/ex/flip.rb +0 -11
  131. data/doc/ex/flop.rb +0 -11
  132. data/doc/ex/font_styles.rb +0 -32
  133. data/doc/ex/fonts.rb +0 -16
  134. data/doc/ex/frame.rb +0 -12
  135. data/doc/ex/gaussian_blur.rb +0 -11
  136. data/doc/ex/get_multiline_type_metrics.rb +0 -41
  137. data/doc/ex/get_pixels.rb +0 -45
  138. data/doc/ex/get_type_metrics.rb +0 -142
  139. data/doc/ex/gradientfill.rb +0 -27
  140. data/doc/ex/grav.rb +0 -45
  141. data/doc/ex/gravity.rb +0 -78
  142. data/doc/ex/group.rb +0 -26
  143. data/doc/ex/hatchfill.rb +0 -27
  144. data/doc/ex/image.rb +0 -44
  145. data/doc/ex/images/Apple.miff +0 -0
  146. data/doc/ex/images/Ballerina.jpg +0 -0
  147. data/doc/ex/images/Ballerina3.jpg +0 -0
  148. data/doc/ex/images/Button_0.gif +0 -0
  149. data/doc/ex/images/Button_1.gif +0 -0
  150. data/doc/ex/images/Button_2.gif +0 -0
  151. data/doc/ex/images/Button_3.gif +0 -0
  152. data/doc/ex/images/Button_4.gif +0 -0
  153. data/doc/ex/images/Button_5.gif +0 -0
  154. data/doc/ex/images/Button_6.gif +0 -0
  155. data/doc/ex/images/Button_7.gif +0 -0
  156. data/doc/ex/images/Button_8.gif +0 -0
  157. data/doc/ex/images/Button_9.gif +0 -0
  158. data/doc/ex/images/Button_A.gif +0 -0
  159. data/doc/ex/images/Button_B.gif +0 -0
  160. data/doc/ex/images/Button_C.gif +0 -0
  161. data/doc/ex/images/Button_D.gif +0 -0
  162. data/doc/ex/images/Button_E.gif +0 -0
  163. data/doc/ex/images/Button_F.gif +0 -0
  164. data/doc/ex/images/Button_G.gif +0 -0
  165. data/doc/ex/images/Button_H.gif +0 -0
  166. data/doc/ex/images/Button_I.gif +0 -0
  167. data/doc/ex/images/Button_J.gif +0 -0
  168. data/doc/ex/images/Button_K.gif +0 -0
  169. data/doc/ex/images/Button_L.gif +0 -0
  170. data/doc/ex/images/Button_M.gif +0 -0
  171. data/doc/ex/images/Button_N.gif +0 -0
  172. data/doc/ex/images/Button_O.gif +0 -0
  173. data/doc/ex/images/Button_P.gif +0 -0
  174. data/doc/ex/images/Button_Q.gif +0 -0
  175. data/doc/ex/images/Button_R.gif +0 -0
  176. data/doc/ex/images/Button_S.gif +0 -0
  177. data/doc/ex/images/Button_T.gif +0 -0
  178. data/doc/ex/images/Button_U.gif +0 -0
  179. data/doc/ex/images/Button_V.gif +0 -0
  180. data/doc/ex/images/Button_W.gif +0 -0
  181. data/doc/ex/images/Button_X.gif +0 -0
  182. data/doc/ex/images/Button_Y.gif +0 -0
  183. data/doc/ex/images/Button_Z.gif +0 -0
  184. data/doc/ex/images/Cheetah.jpg +0 -0
  185. data/doc/ex/images/Coffee.png +0 -0
  186. data/doc/ex/images/Flower_Hat.jpg +0 -0
  187. data/doc/ex/images/Gold_Statue.jpg +0 -0
  188. data/doc/ex/images/Hot_Air_Balloons.jpg +0 -0
  189. data/doc/ex/images/Hot_Air_Balloons_H.jpg +0 -0
  190. data/doc/ex/images/Leaf.miff +0 -0
  191. data/doc/ex/images/No.png +0 -0
  192. data/doc/ex/images/Polynesia.jpg +0 -0
  193. data/doc/ex/images/Red_Rocks.jpg +0 -0
  194. data/doc/ex/images/Rocks_On_Beach.miff +0 -0
  195. data/doc/ex/images/Shorts.jpg +0 -0
  196. data/doc/ex/images/Snake.png +0 -0
  197. data/doc/ex/images/Violin.jpg +0 -0
  198. data/doc/ex/images/Yellow_Rose.miff +0 -0
  199. data/doc/ex/images/big-duck.gif +0 -0
  200. data/doc/ex/images/duck.gif +0 -0
  201. data/doc/ex/images/duck0.gif +0 -0
  202. data/doc/ex/images/duck1.gif +0 -0
  203. data/doc/ex/images/duck10.gif +0 -0
  204. data/doc/ex/images/duck11.gif +0 -0
  205. data/doc/ex/images/duck12.gif +0 -0
  206. data/doc/ex/images/duck13.gif +0 -0
  207. data/doc/ex/images/duck14.gif +0 -0
  208. data/doc/ex/images/duck15.gif +0 -0
  209. data/doc/ex/images/duck2.gif +0 -0
  210. data/doc/ex/images/duck3.gif +0 -0
  211. data/doc/ex/images/duck4.gif +0 -0
  212. data/doc/ex/images/duck5.gif +0 -0
  213. data/doc/ex/images/duck6.gif +0 -0
  214. data/doc/ex/images/duck7.gif +0 -0
  215. data/doc/ex/images/duck8.gif +0 -0
  216. data/doc/ex/images/duck9.gif +0 -0
  217. data/doc/ex/images/graydient230x6.gif +0 -0
  218. data/doc/ex/images/image_with_profile.jpg +0 -0
  219. data/doc/ex/images/logo400x83.gif +0 -0
  220. data/doc/ex/images/model.miff +0 -0
  221. data/doc/ex/images/notimplemented.gif +0 -0
  222. data/doc/ex/images/smile.miff +0 -0
  223. data/doc/ex/images/spin.gif +0 -0
  224. data/doc/ex/implode.rb +0 -34
  225. data/doc/ex/level.rb +0 -11
  226. data/doc/ex/level_colors.rb +0 -11
  227. data/doc/ex/line.rb +0 -41
  228. data/doc/ex/line01.rb +0 -21
  229. data/doc/ex/mask.rb +0 -35
  230. data/doc/ex/matte_fill_to_border.rb +0 -39
  231. data/doc/ex/matte_floodfill.rb +0 -32
  232. data/doc/ex/matte_replace.rb +0 -39
  233. data/doc/ex/median_filter.rb +0 -28
  234. data/doc/ex/modulate.rb +0 -11
  235. data/doc/ex/mono.rb +0 -23
  236. data/doc/ex/morph.rb +0 -25
  237. data/doc/ex/mosaic.rb +0 -37
  238. data/doc/ex/motion_blur.rb +0 -11
  239. data/doc/ex/negate.rb +0 -11
  240. data/doc/ex/negate_channel.rb +0 -9
  241. data/doc/ex/nested_rvg.rb +0 -21
  242. data/doc/ex/nonzero.rb +0 -42
  243. data/doc/ex/normalize.rb +0 -11
  244. data/doc/ex/oil_paint.rb +0 -11
  245. data/doc/ex/opacity.rb +0 -37
  246. data/doc/ex/ordered_dither.rb +0 -11
  247. data/doc/ex/path.rb +0 -63
  248. data/doc/ex/pattern1.rb +0 -25
  249. data/doc/ex/pattern2.rb +0 -26
  250. data/doc/ex/polaroid.rb +0 -26
  251. data/doc/ex/polygon.rb +0 -23
  252. data/doc/ex/polygon01.rb +0 -21
  253. data/doc/ex/polyline.rb +0 -22
  254. data/doc/ex/polyline01.rb +0 -21
  255. data/doc/ex/posterize.rb +0 -8
  256. data/doc/ex/preview.rb +0 -8
  257. data/doc/ex/qbezierpath.rb +0 -52
  258. data/doc/ex/quad01.rb +0 -34
  259. data/doc/ex/quantize-m.rb +0 -25
  260. data/doc/ex/radial_blur.rb +0 -9
  261. data/doc/ex/raise.rb +0 -8
  262. data/doc/ex/random_threshold_channel.rb +0 -13
  263. data/doc/ex/rect01.rb +0 -14
  264. data/doc/ex/rect02.rb +0 -20
  265. data/doc/ex/rectangle.rb +0 -34
  266. data/doc/ex/reduce_noise.rb +0 -28
  267. data/doc/ex/remap.rb +0 -11
  268. data/doc/ex/remap_images.rb +0 -19
  269. data/doc/ex/resize_to_fill.rb +0 -8
  270. data/doc/ex/resize_to_fit.rb +0 -8
  271. data/doc/ex/roll.rb +0 -9
  272. data/doc/ex/rotate.rb +0 -44
  273. data/doc/ex/rotate_f.rb +0 -14
  274. data/doc/ex/roundrect.rb +0 -33
  275. data/doc/ex/rubyname.rb +0 -30
  276. data/doc/ex/rvg_clippath.rb +0 -12
  277. data/doc/ex/rvg_linecap.rb +0 -42
  278. data/doc/ex/rvg_linejoin.rb +0 -40
  279. data/doc/ex/rvg_opacity.rb +0 -18
  280. data/doc/ex/rvg_pattern.rb +0 -26
  281. data/doc/ex/rvg_stroke_dasharray.rb +0 -11
  282. data/doc/ex/segment.rb +0 -11
  283. data/doc/ex/sepiatone.rb +0 -7
  284. data/doc/ex/shade.rb +0 -11
  285. data/doc/ex/shadow.rb +0 -30
  286. data/doc/ex/shave.rb +0 -15
  287. data/doc/ex/shear.rb +0 -10
  288. data/doc/ex/sketch.rb +0 -17
  289. data/doc/ex/skewx.rb +0 -51
  290. data/doc/ex/skewy.rb +0 -47
  291. data/doc/ex/smile.rb +0 -126
  292. data/doc/ex/solarize.rb +0 -11
  293. data/doc/ex/sparse_color.rb +0 -55
  294. data/doc/ex/splice.rb +0 -8
  295. data/doc/ex/spread.rb +0 -11
  296. data/doc/ex/stegano.rb +0 -54
  297. data/doc/ex/stroke_dasharray.rb +0 -42
  298. data/doc/ex/stroke_fill.rb +0 -10
  299. data/doc/ex/stroke_linecap.rb +0 -44
  300. data/doc/ex/stroke_linejoin.rb +0 -48
  301. data/doc/ex/stroke_width.rb +0 -49
  302. data/doc/ex/swirl.rb +0 -17
  303. data/doc/ex/text.rb +0 -37
  304. data/doc/ex/text01.rb +0 -16
  305. data/doc/ex/text_align.rb +0 -36
  306. data/doc/ex/text_antialias.rb +0 -37
  307. data/doc/ex/text_styles.rb +0 -19
  308. data/doc/ex/text_undercolor.rb +0 -28
  309. data/doc/ex/texture_fill_to_border.rb +0 -34
  310. data/doc/ex/texture_floodfill.rb +0 -32
  311. data/doc/ex/texturefill.rb +0 -24
  312. data/doc/ex/threshold.rb +0 -13
  313. data/doc/ex/to_blob.rb +0 -13
  314. data/doc/ex/translate.rb +0 -39
  315. data/doc/ex/transparent.rb +0 -38
  316. data/doc/ex/transpose.rb +0 -9
  317. data/doc/ex/transverse.rb +0 -9
  318. data/doc/ex/tref01.rb +0 -24
  319. data/doc/ex/triangle01.rb +0 -15
  320. data/doc/ex/trim.rb +0 -23
  321. data/doc/ex/tspan01.rb +0 -17
  322. data/doc/ex/tspan02.rb +0 -17
  323. data/doc/ex/tspan03.rb +0 -19
  324. data/doc/ex/unsharp_mask.rb +0 -28
  325. data/doc/ex/viewex.rb +0 -33
  326. data/doc/ex/vignette.rb +0 -12
  327. data/doc/ex/watermark.rb +0 -27
  328. data/doc/ex/wave.rb +0 -9
  329. data/doc/ex/wet_floor.rb +0 -58
  330. data/doc/ex/writing_mode01.rb +0 -26
  331. data/doc/ex/writing_mode02.rb +0 -26
  332. data/doc/ilist.html +0 -2056
  333. data/doc/image1.html +0 -4680
  334. data/doc/image2.html +0 -3665
  335. data/doc/image3.html +0 -4522
  336. data/doc/imageattrs.html +0 -1638
  337. data/doc/imusage.html +0 -514
  338. data/doc/index.html +0 -416
  339. data/doc/info.html +0 -1499
  340. data/doc/magick.html +0 -570
  341. data/doc/optequiv.html +0 -2435
  342. data/doc/rvg.html +0 -975
  343. data/doc/rvgclip.html +0 -248
  344. data/doc/rvggroup.html +0 -305
  345. data/doc/rvgimage.html +0 -289
  346. data/doc/rvgpattern.html +0 -475
  347. data/doc/rvgshape.html +0 -406
  348. data/doc/rvgstyle.html +0 -270
  349. data/doc/rvgtext.html +0 -465
  350. data/doc/rvgtspan.html +0 -238
  351. data/doc/rvgtut.html +0 -530
  352. data/doc/rvguse.html +0 -145
  353. data/doc/rvgxform.html +0 -294
  354. data/doc/scripts/doc.js +0 -22
  355. data/doc/scripts/stripeTables.js +0 -23
  356. data/doc/struct.html +0 -1339
  357. data/doc/usage.html +0 -1621
  358. data/examples/constitute.rb +0 -7
  359. data/examples/crop_with_gravity.rb +0 -43
  360. data/examples/demo.rb +0 -323
  361. data/examples/describe.rb +0 -41
  362. data/examples/find_similar_region.rb +0 -34
  363. data/examples/histogram.rb +0 -312
  364. data/examples/identify.rb +0 -174
  365. data/examples/image_opacity.rb +0 -28
  366. data/examples/import_export.rb +0 -31
  367. data/examples/pattern_fill.rb +0 -37
  368. data/examples/rotating_text.rb +0 -45
  369. data/examples/spinner.rb +0 -49
  370. data/examples/thumbnail.rb +0 -64
  371. data/examples/vignette.rb +0 -78
  372. data/spec/rmagick/ImageList1_spec.rb +0 -24
  373. data/spec/rmagick/draw_spec.rb +0 -155
  374. data/spec/rmagick/image/blue_shift_spec.rb +0 -14
  375. data/spec/rmagick/image/channel_entropy_spec.rb +0 -9
  376. data/spec/rmagick/image/composite_spec.rb +0 -72
  377. data/spec/rmagick/image/constitute_spec.rb +0 -13
  378. data/spec/rmagick/image/dispatch_spec.rb +0 -16
  379. data/spec/rmagick/image/dissolve_spec.rb +0 -54
  380. data/spec/rmagick/image/from_blob_spec.rb +0 -12
  381. data/spec/rmagick/image/ping_spec.rb +0 -12
  382. data/spec/rmagick/image/properties_spec.rb +0 -27
  383. data/spec/rmagick/image/read_spec.rb +0 -28
  384. data/spec/spec_helper.rb +0 -9
  385. data/spec/support/issue_200/app.rb +0 -8
  386. data/test/Draw.rb +0 -351
  387. data/test/Enum.rb +0 -228
  388. data/test/Fill.rb +0 -93
  389. data/test/Image1.rb +0 -606
  390. data/test/Image2.rb +0 -1408
  391. data/test/Image3.rb +0 -1086
  392. data/test/ImageList1.rb +0 -858
  393. data/test/ImageList2.rb +0 -375
  394. data/test/Image_attributes.rb +0 -635
  395. data/test/Import_Export.rb +0 -111
  396. data/test/Info.rb +0 -436
  397. data/test/KernelInfo.rb +0 -59
  398. data/test/Magick.rb +0 -311
  399. data/test/Pixel.rb +0 -259
  400. data/test/PolaroidOptions.rb +0 -23
  401. data/test/Preview.rb +0 -26
  402. data/test/Struct.rb +0 -45
  403. data/test/appearance/Montage.rb +0 -26
  404. data/test/appearance/appearance_assertion.rb +0 -13
  405. data/test/appearance/expected/montage_border_color.jpg +0 -0
  406. data/test/cmyk.icm +0 -0
  407. data/test/lib/internal/Draw.rb +0 -811
  408. data/test/lib/internal/Geometry.rb +0 -98
  409. data/test/lib/internal/Magick.rb +0 -40
  410. data/test/srgb.icm +0 -0
  411. data/test/test_all_basic.rb +0 -49
  412. data/test/tmpnam_test.rb +0 -50
@@ -1,23 +0,0 @@
1
- require 'rmagick'
2
- require 'test/unit'
3
- require 'test/unit/ui/console/testrunner'
4
-
5
- class PolaroidOptionsUT < Test::Unit::TestCase
6
- def setup
7
- @options = Magick::Image::PolaroidOptions.new
8
- end
9
-
10
- def test_shadow_color
11
- assert_nothing_raised { @options.shadow_color = "gray50" }
12
-
13
- @options.freeze
14
- assert_raise(FreezeError) { @options.shadow_color = "gray50" }
15
- end
16
-
17
- def test_border_color
18
- assert_nothing_raised { @options.border_color = "gray50" }
19
-
20
- @options.freeze
21
- assert_raise(FreezeError) { @options.border_color = "gray50" }
22
- end
23
- end
@@ -1,26 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
-
3
- require 'rmagick'
4
- require 'test/unit'
5
- require 'test/unit/ui/console/testrunner'
6
-
7
- class PreviewUT < Test::Unit::TestCase
8
- def test_preview
9
- hat = Magick::Image.read(IMAGES_DIR + '/Flower_Hat.jpg').first
10
- assert_nothing_raised do
11
- prev = hat.preview(Magick::RotatePreview)
12
- assert_instance_of(Magick::Image, prev)
13
- end
14
- puts "\n"
15
- Magick::PreviewType.values do |type|
16
- puts "testing #{type}..."
17
- assert_nothing_raised { hat.preview(type) }
18
- end
19
- assert_raise(TypeError) { hat.preview(2) }
20
- end
21
- end
22
-
23
- if $PROGRAM_NAME == __FILE__
24
- IMAGES_DIR = '../doc/ex/images'
25
- Test::Unit::UI::Console::TestRunner.run(PreviewUT)
26
- end
@@ -1,45 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
-
3
- require 'rmagick'
4
- require 'test/unit'
5
- require 'test/unit/ui/console/testrunner'
6
-
7
- class StructUT < Test::Unit::TestCase
8
- def test_chromaticity_to_s
9
- image = Magick::Image.new(10, 10)
10
- assert_match(/red_primary=\(x=.+,y=.+\) green_primary=\(x=.+,y=.+\) blue_primary=\(x=.+,y=.+\) white_point=\(x=.+,y=.+\)/, image.chromaticity.to_s)
11
- end
12
-
13
- def test_export_color_info
14
- color = Magick.colors[0]
15
- assert_instance_of(Magick::Color, color)
16
- assert_match(/name=.+, compliance=.+, color.red=.+, color.green=.+, color.blue=.+, color.alpha=.+/, color.to_s)
17
- end
18
-
19
- def test_export_type_info
20
- font = Magick.fonts[0]
21
- assert_match(/^name=.+, description=.+, family=.+, style=.+, stretch=.+, weight=.+, encoding=.*, foundry=.*, format=.*$/, font.to_s)
22
- end
23
-
24
- def test_export_point_info
25
- draw = Magick::Draw.new
26
- metric = draw.get_type_metrics('ABCDEF')
27
- assert_match(/^pixels_per_em=\(x=.+,y=.+\) ascent=.+ descent=.+ width=.+ height=.+ max_advance=.+ bounds.x1=.+ bounds.y1=.+ bounds.x2=.+ bounds.y2=.+ underline_position=.+ underline_thickness=.+$/, metric.to_s)
28
- end
29
-
30
- def test_primary_info_to_s
31
- chrom = Magick::Image.new(10, 10).chromaticity
32
- red_primary = chrom.red_primary
33
- assert_match(/^x=.+, y=.+, z=.+$/, red_primary.to_s)
34
- end
35
-
36
- def test_rectangle_info_to_s
37
- rect = Magick::Rectangle.new(10, 20, 30, 40)
38
- assert_equal('width=10, height=20, x=30, y=40', rect.to_s)
39
- end
40
-
41
- def test_segment_info_to_s
42
- segment = Magick::Segment.new(10, 20, 30, 40)
43
- assert_equal('x1=10, y1=20, x2=30, y2=40', segment.to_s)
44
- end
45
- end
@@ -1,26 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
-
3
- require 'rmagick'
4
- require 'test/unit'
5
- require 'test/unit/ui/console/testrunner'
6
- require_relative 'appearance_assertion'
7
-
8
- class AppearanceMontageUT < Test::Unit::TestCase
9
- include AppearanceAssertion
10
-
11
- def test_color
12
- imagelist = Magick::ImageList.new(IMAGES_DIR + '/Flower_Hat.jpg')
13
-
14
- new_imagelist = imagelist.montage do
15
- self.border_width = 100
16
- self.border_color = 'red'
17
- self.background_color = 'blue'
18
- self.matte_color = 'yellow'
19
- self.frame = '10x10'
20
- self.gravity = Magick::CenterGravity
21
- end
22
-
23
- # montage ../../doc/ex/images/Flower_Hat.jpg -border 100x -bordercolor red -mattecolor yellow -background blue -frame 10x10 -gravity Center expected/montage_border_color.jpg
24
- assert_same_image('expected/montage_border_color.jpg', new_imagelist.first)
25
- end
26
- end
@@ -1,13 +0,0 @@
1
- require 'test/unit'
2
-
3
- module AppearanceAssertion
4
- include Test::Unit::Assertions
5
-
6
- def assert_same_image(expected_image_path, image_object, delta: 0.01)
7
- path = File.expand_path(File.join(__dir__, expected_image_path))
8
-
9
- expected = Magick::Image.read(path).first
10
- _, error = expected.compare_channel(image_object, Magick::MeanSquaredErrorMetric)
11
- assert_in_delta(0.0, error, delta)
12
- end
13
- end
Binary file
@@ -1,811 +0,0 @@
1
- require 'rmagick'
2
- require 'test/unit'
3
- require 'test/unit/ui/console/testrunner'
4
-
5
- class LibDrawUT < Test::Unit::TestCase
6
- def setup
7
- @draw = Magick::Draw.new
8
- @img = Magick::Image.new(200, 200)
9
- end
10
-
11
- def test_affine
12
- @draw.affine(10.5, 12, 15, 20, 22, 25)
13
- assert_equal('affine 10.5,12,15,20,22,25', @draw.inspect)
14
- assert_nothing_raised { @draw.draw(@img) }
15
-
16
- assert_raise(ArgumentError) { @draw.affine('x', 12, 15, 20, 22, 25) }
17
- assert_raise(ArgumentError) { @draw.affine(10, 'x', 15, 20, 22, 25) }
18
- assert_raise(ArgumentError) { @draw.affine(10, 12, 'x', 20, 22, 25) }
19
- assert_raise(ArgumentError) { @draw.affine(10, 12, 15, 'x', 22, 25) }
20
- assert_raise(ArgumentError) { @draw.affine(10, 12, 15, 20, 'x', 25) }
21
- assert_raise(ArgumentError) { @draw.affine(10, 12, 15, 20, 22, 'x') }
22
- end
23
-
24
- def test_alpha
25
- Magick::PaintMethod.values do |method|
26
- draw = Magick::Draw.new
27
- draw.alpha(10, '20.5', method)
28
- assert_nothing_raised { draw.draw(@img) }
29
- end
30
-
31
- assert_raise(ArgumentError) { @draw.alpha(10, '20.5', 'xxx') }
32
- assert_raise(ArgumentError) { @draw.alpha('x', 10, Magick::PointMethod) }
33
- assert_raise(ArgumentError) { @draw.alpha(10, 'x', Magick::PointMethod) }
34
- end
35
-
36
- def test_arc
37
- @draw.arc(100.5, 120.5, 200, 250, 20, 370)
38
- assert_equal('arc 100.5,120.5 200,250 20,370', @draw.inspect)
39
- assert_nothing_raised { @draw.draw(@img) }
40
-
41
- assert_raise(ArgumentError) { @draw.arc('x', 120.5, 200, 250, 20, 370) }
42
- assert_raise(ArgumentError) { @draw.arc(100.5, 'x', 200, 250, 20, 370) }
43
- assert_raise(ArgumentError) { @draw.arc(100.5, 120.5, 'x', 250, 20, 370) }
44
- assert_raise(ArgumentError) { @draw.arc(100.5, 120.5, 200, 'x', 20, 370) }
45
- assert_raise(ArgumentError) { @draw.arc(100.5, 120.5, 200, 250, 'x', 370) }
46
- assert_raise(ArgumentError) { @draw.arc(100.5, 120.5, 200, 250, 20, 'x') }
47
- end
48
-
49
- def test_bezier
50
- @draw.bezier(10, '20', '20.5', 30, 40.5, 50)
51
- assert_equal('bezier 10,20,20.5,30,40.5,50', @draw.inspect)
52
- assert_nothing_raised { @draw.draw(@img) }
53
-
54
- assert_raise(ArgumentError) { @draw.bezier }
55
- assert_raise(ArgumentError) { @draw.bezier(1) }
56
- assert_raise(ArgumentError) { @draw.bezier('x', 20, 30, 40.5) }
57
- end
58
-
59
- def test_circle
60
- @draw.circle(10, '20.5', 30, 40.5)
61
- assert_equal('circle 10,20.5 30,40.5', @draw.inspect)
62
- assert_nothing_raised { @draw.draw(@img) }
63
-
64
- assert_raise(ArgumentError) { @draw.circle('x', 20, 30, 40) }
65
- assert_raise(ArgumentError) { @draw.circle(10, 'x', 30, 40) }
66
- assert_raise(ArgumentError) { @draw.circle(10, 20, 'x', 40) }
67
- assert_raise(ArgumentError) { @draw.circle(10, 20, 30, 'x') }
68
- end
69
-
70
- def test_clip_path
71
- @draw.clip_path('test')
72
- assert_equal('clip-path test', @draw.inspect)
73
- assert_nothing_raised { @draw.draw(@img) }
74
- end
75
-
76
- def test_clip_rule
77
- draw = Magick::Draw.new
78
- draw.clip_rule('evenodd')
79
- assert_equal('clip-rule evenodd', draw.inspect)
80
- assert_nothing_raised { draw.draw(@img) }
81
-
82
- draw = Magick::Draw.new
83
- draw.clip_rule('nonzero')
84
- assert_equal('clip-rule nonzero', draw.inspect)
85
- assert_nothing_raised { draw.draw(@img) }
86
-
87
- assert_raise(ArgumentError) { @draw.clip_rule('foo') }
88
- end
89
-
90
- def test_clip_units
91
- draw = Magick::Draw.new
92
- draw.clip_units('userspace')
93
- assert_equal('clip-units userspace', draw.inspect)
94
- assert_nothing_raised { draw.draw(@img) }
95
-
96
- draw = Magick::Draw.new
97
- draw.clip_units('userspaceonuse')
98
- assert_equal('clip-units userspaceonuse', draw.inspect)
99
- assert_nothing_raised { draw.draw(@img) }
100
-
101
- draw = Magick::Draw.new
102
- draw.clip_units('objectboundingbox')
103
- assert_equal('clip-units objectboundingbox', draw.inspect)
104
- assert_nothing_raised { draw.draw(@img) }
105
-
106
- assert_raise(ArgumentError) { @draw.clip_units('foo') }
107
- end
108
-
109
- def test_color
110
- draw = Magick::Draw.new
111
- draw.color(50.5, 50, Magick::PointMethod)
112
- assert_equal('color 50.5,50,point', draw.inspect)
113
- assert_nothing_raised { draw.draw(@img) }
114
-
115
- draw = Magick::Draw.new
116
- draw.color(50.5, 50, Magick::ReplaceMethod)
117
- assert_equal('color 50.5,50,replace', draw.inspect)
118
- assert_nothing_raised { draw.draw(@img) }
119
-
120
- draw = Magick::Draw.new
121
- draw.color(50.5, 50, Magick::FloodfillMethod)
122
- assert_equal('color 50.5,50,floodfill', draw.inspect)
123
- assert_nothing_raised { draw.draw(@img) }
124
-
125
- draw = Magick::Draw.new
126
- draw.color(50.5, 50, Magick::FillToBorderMethod)
127
- assert_equal('color 50.5,50,filltoborder', draw.inspect)
128
- assert_nothing_raised { draw.draw(@img) }
129
-
130
- draw = Magick::Draw.new
131
- draw.color(50.5, 50, Magick::ResetMethod)
132
- assert_equal('color 50.5,50,reset', draw.inspect)
133
- assert_nothing_raised { draw.draw(@img) }
134
-
135
- assert_raise(ArgumentError) { @draw.color(10, 20, 'unknown') }
136
- assert_raise(ArgumentError) { @draw.color('x', 20, Magick::PointMethod) }
137
- assert_raise(ArgumentError) { @draw.color(10, 'x', Magick::PointMethod) }
138
- end
139
-
140
- def test_decorate
141
- draw = Magick::Draw.new
142
- draw.decorate(Magick::NoDecoration)
143
- assert_equal('decorate none', draw.inspect)
144
- draw.text(50, 50, 'Hello world')
145
- assert_nothing_raised { draw.draw(@img) }
146
-
147
- draw = Magick::Draw.new
148
- draw.decorate(Magick::UnderlineDecoration)
149
- assert_equal('decorate underline', draw.inspect)
150
- draw.text(50, 50, 'Hello world')
151
- assert_nothing_raised { draw.draw(@img) }
152
-
153
- draw = Magick::Draw.new
154
- draw.decorate(Magick::OverlineDecoration)
155
- assert_equal('decorate overline', draw.inspect)
156
- draw.text(50, 50, 'Hello world')
157
- assert_nothing_raised { draw.draw(@img) }
158
-
159
- draw = Magick::Draw.new
160
- draw.decorate(Magick::OverlineDecoration)
161
- assert_equal('decorate overline', draw.inspect)
162
- draw.text(50, 50, 'Hello world')
163
- assert_nothing_raised { draw.draw(@img) }
164
-
165
- # draw = Magick::Draw.new
166
- # draw.decorate('tomato')
167
- # assert_equal('decorate "tomato"', draw.inspect)
168
- # draw.text(50, 50, 'Hello world')
169
- # assert_nothing_raised { draw.draw(@img) }
170
- end
171
-
172
- def test_define_clip_path
173
- assert_nothing_raised { @draw.define_clip_path('test') { @draw } }
174
- assert_equal("push defs\npush clip-path \"test\"\npush graphic-context\npop graphic-context\npop clip-path\npop defs", @draw.inspect)
175
- end
176
-
177
- def test_ellipse
178
- @draw.ellipse(50.5, 30, 25, 25, 60, 120)
179
- assert_equal('ellipse 50.5,30 25,25 60,120', @draw.inspect)
180
- assert_nothing_raised { @draw.draw(@img) }
181
-
182
- assert_raise(ArgumentError) { @draw.ellipse('x', 20, 30, 40, 50, 60) }
183
- assert_raise(ArgumentError) { @draw.ellipse(10, 'x', 30, 40, 50, 60) }
184
- assert_raise(ArgumentError) { @draw.ellipse(10, 20, 'x', 40, 50, 60) }
185
- assert_raise(ArgumentError) { @draw.ellipse(10, 20, 30, 'x', 50, 60) }
186
- assert_raise(ArgumentError) { @draw.ellipse(10, 20, 30, 40, 'x', 60) }
187
- assert_raise(ArgumentError) { @draw.ellipse(10, 20, 30, 40, 50, 'x') }
188
- end
189
-
190
- def test_encoding
191
- @draw.encoding('UTF-8')
192
- assert_equal('encoding UTF-8', @draw.inspect)
193
- assert_nothing_raised { @draw.draw(@img) }
194
- end
195
-
196
- def test_fill
197
- draw = Magick::Draw.new
198
- draw.fill('tomato')
199
- assert_equal('fill "tomato"', draw.inspect)
200
- draw.circle(10, '20.5', 30, 40.5)
201
- assert_nothing_raised { draw.draw(@img) }
202
-
203
- draw = Magick::Draw.new
204
- draw.fill_color('tomato')
205
- assert_equal('fill "tomato"', draw.inspect)
206
- draw.circle(10, '20.5', 30, 40.5)
207
- assert_nothing_raised { draw.draw(@img) }
208
-
209
- draw = Magick::Draw.new
210
- draw.fill_pattern('tomato')
211
- assert_equal('fill "tomato"', draw.inspect)
212
- draw.circle(10, '20.5', 30, 40.5)
213
- assert_nothing_raised { draw.draw(@img) }
214
-
215
- # draw = Magick::Draw.new
216
- # draw.fill_pattern('foo')
217
- # assert_nothing_raised { draw.draw(@img) }
218
- end
219
-
220
- def test_fill_opacity
221
- draw = Magick::Draw.new
222
- draw.fill_opacity(0.5)
223
- assert_equal('fill-opacity 0.5', draw.inspect)
224
- draw.circle(10, '20.5', 30, 40.5)
225
- assert_nothing_raised { draw.draw(@img) }
226
-
227
- draw = Magick::Draw.new
228
- draw.fill_opacity('50%')
229
- assert_equal('fill-opacity 50%', draw.inspect)
230
- draw.circle(10, '20.5', 30, 40.5)
231
- assert_nothing_raised { draw.draw(@img) }
232
-
233
- assert_nothing_raised { @draw.fill_opacity(0.0) }
234
- assert_nothing_raised { @draw.fill_opacity(1.0) }
235
- assert_nothing_raised { @draw.fill_opacity('0.0') }
236
- assert_nothing_raised { @draw.fill_opacity('1.0') }
237
- assert_nothing_raised { @draw.fill_opacity('20%') }
238
-
239
- assert_raise(ArgumentError) { @draw.fill_opacity(-0.01) }
240
- assert_raise(ArgumentError) { @draw.fill_opacity(1.01) }
241
- assert_raise(ArgumentError) { @draw.fill_opacity('-0.01') }
242
- assert_raise(ArgumentError) { @draw.fill_opacity('1.01') }
243
- assert_raise(ArgumentError) { @draw.fill_opacity('xxx') }
244
- end
245
-
246
- def test_fill_rule
247
- draw = Magick::Draw.new
248
- draw.fill_rule('evenodd')
249
- assert_equal('fill-rule evenodd', draw.inspect)
250
- draw.circle(10, '20.5', 30, 40.5)
251
- assert_nothing_raised { draw.draw(@img) }
252
-
253
- draw = Magick::Draw.new
254
- draw.fill_rule('nonzero')
255
- assert_equal('fill-rule nonzero', draw.inspect)
256
- draw.circle(10, '20.5', 30, 40.5)
257
- assert_nothing_raised { draw.draw(@img) }
258
-
259
- assert_raise(ArgumentError) { @draw.fill_rule('zero') }
260
- end
261
-
262
- def test_font
263
- draw = Magick::Draw.new
264
- draw.font('Arial')
265
- assert_equal("font 'Arial'", draw.inspect)
266
- draw.text(50, 50, 'Hello world')
267
- assert_nothing_raised { draw.draw(@img) }
268
- end
269
-
270
- def test_font_family
271
- draw = Magick::Draw.new
272
- draw.font_family('sans-serif')
273
- assert_equal("font-family 'sans-serif'", draw.inspect)
274
- draw.text(50, 50, 'Hello world')
275
- assert_nothing_raised { draw.draw(@img) }
276
- end
277
-
278
- def test_font_stretch
279
- Magick::StretchType.values do |stretch|
280
- next if stretch == Magick::AnyStretch
281
-
282
- draw = Magick::Draw.new
283
- draw.font_stretch(stretch)
284
- draw.text(50, 50, 'Hello world')
285
- assert_nothing_raised { draw.draw(@img) }
286
- end
287
-
288
- assert_raise(ArgumentError) { @draw.font_stretch('xxx') }
289
- end
290
-
291
- def test_font_style
292
- draw = Magick::Draw.new
293
- draw.font_style(Magick::NormalStyle)
294
- assert_equal('font-style normal', draw.inspect)
295
- draw.text(50, 50, 'Hello world')
296
- assert_nothing_raised { draw.draw(@img) }
297
-
298
- draw = Magick::Draw.new
299
- draw.font_style(Magick::ItalicStyle)
300
- assert_equal('font-style italic', draw.inspect)
301
- draw.text(50, 50, 'Hello world')
302
- assert_nothing_raised { draw.draw(@img) }
303
-
304
- draw = Magick::Draw.new
305
- draw.font_style(Magick::ObliqueStyle)
306
- assert_equal('font-style oblique', draw.inspect)
307
- draw.text(50, 50, 'Hello world')
308
- assert_nothing_raised { draw.draw(@img) }
309
-
310
- assert_raise(ArgumentError) { @draw.font_style('xxx') }
311
- end
312
-
313
- def test_font_weight
314
- Magick::WeightType.values do |weight|
315
- draw = Magick::Draw.new
316
- draw.font_weight(weight)
317
- draw.text(50, 50, 'Hello world')
318
- assert_nothing_raised { draw.draw(@img) }
319
- end
320
-
321
- draw = Magick::Draw.new
322
- draw.font_weight(400)
323
- assert_equal('font-weight 400', draw.inspect)
324
- draw.text(50, 50, 'Hello world')
325
- assert_nothing_raised { draw.draw(@img) }
326
-
327
- assert_raise(ArgumentError) { @draw.font_weight('xxx') }
328
- end
329
-
330
- def test_gravity
331
- Magick::GravityType.values do |gravity|
332
- next if [Magick::UndefinedGravity].include?(gravity)
333
-
334
- draw = Magick::Draw.new
335
- draw.gravity(gravity)
336
- draw.circle(10, '20.5', 30, 40.5)
337
- assert_nothing_raised { draw.draw(@img) }
338
- end
339
-
340
- assert_raise(ArgumentError) { @draw.gravity('xxx') }
341
- end
342
-
343
- def test_image
344
- Magick::CompositeOperator.values do |composite|
345
- next if [Magick::CopyAlphaCompositeOp, Magick::NoCompositeOp].include?(composite)
346
-
347
- draw = Magick::Draw.new
348
- draw.image(composite, 10, 10, 200, 100, "#{IMAGES_DIR}/Flower_Hat.jpg")
349
- assert_nothing_raised { draw.draw(@img) }
350
- end
351
-
352
- assert_raise(ArgumentError) { @draw.image('xxx', 10, 10, 200, 100, "#{IMAGES_DIR}/Flower_Hat.jpg") }
353
- assert_raise(ArgumentError) { @draw.image(Magick::AtopCompositeOp, 'x', 100, 200, 100, "#{IMAGES_DIR}/Flower_Hat.jpg") }
354
- assert_raise(ArgumentError) { @draw.image(Magick::AtopCompositeOp, 100, 'x', 200, 100, "#{IMAGES_DIR}/Flower_Hat.jpg") }
355
- assert_raise(ArgumentError) { @draw.image(Magick::AtopCompositeOp, 100, 100, 'x', 100, "#{IMAGES_DIR}/Flower_Hat.jpg") }
356
- assert_raise(ArgumentError) { @draw.image(Magick::AtopCompositeOp, 100, 100, 200, 'x', "#{IMAGES_DIR}/Flower_Hat.jpg") }
357
- end
358
-
359
- def test_interline_spacing
360
- draw = Magick::Draw.new
361
- draw.interline_spacing(40.5)
362
- assert_equal('interline-spacing 40.5', draw.inspect)
363
- assert_nothing_raised { draw.draw(@img) }
364
-
365
- draw = Magick::Draw.new
366
- draw.interline_spacing('40.5')
367
- assert_equal('interline-spacing 40.5', draw.inspect)
368
- assert_nothing_raised { draw.draw(@img) }
369
-
370
- # assert_raise(ArgumentError) { @draw.interline_spacing(Float::NAN) }
371
- assert_raise(ArgumentError) { @draw.interline_spacing('nan') }
372
- assert_raise(ArgumentError) { @draw.interline_spacing('xxx') }
373
- assert_raise(TypeError) { @draw.interline_spacing(nil) }
374
- end
375
-
376
- def test_interword_spacing
377
- draw = Magick::Draw.new
378
- draw.interword_spacing(40.5)
379
- assert_equal('interword-spacing 40.5', draw.inspect)
380
- assert_nothing_raised { draw.draw(@img) }
381
-
382
- draw = Magick::Draw.new
383
- draw.interword_spacing('40.5')
384
- assert_equal('interword-spacing 40.5', draw.inspect)
385
- assert_nothing_raised { draw.draw(@img) }
386
-
387
- # assert_raise(ArgumentError) { @draw.interword_spacing(Float::NAN) }
388
- assert_raise(ArgumentError) { @draw.interword_spacing('nan') }
389
- assert_raise(ArgumentError) { @draw.interword_spacing('xxx') }
390
- assert_raise(TypeError) { @draw.interword_spacing(nil) }
391
- end
392
-
393
- def test_kerning
394
- draw = Magick::Draw.new
395
- draw.kerning(40.5)
396
- assert_equal('kerning 40.5', draw.inspect)
397
- assert_nothing_raised { draw.draw(@img) }
398
-
399
- draw = Magick::Draw.new
400
- draw.kerning('40.5')
401
- assert_equal('kerning 40.5', draw.inspect)
402
- assert_nothing_raised { draw.draw(@img) }
403
-
404
- # assert_raise(ArgumentError) { @draw.kerning(Float::NAN) }
405
- assert_raise(ArgumentError) { @draw.kerning('nan') }
406
- assert_raise(ArgumentError) { @draw.kerning('xxx') }
407
- assert_raise(TypeError) { @draw.kerning(nil) }
408
- end
409
-
410
- def test_line
411
- @draw.line(10, '20.5', 30, 40.5)
412
- assert_equal('line 10,20.5 30,40.5', @draw.inspect)
413
- assert_nothing_raised { @draw.draw(@img) }
414
-
415
- assert_raise(ArgumentError) { @draw.line('x', '20.5', 30, 40.5) }
416
- assert_raise(ArgumentError) { @draw.line(10, 'x', 30, 40.5) }
417
- assert_raise(ArgumentError) { @draw.line(10, '20.5', 'x', 40.5) }
418
- assert_raise(ArgumentError) { @draw.line(10, '20.5', 30, 'x') }
419
- end
420
-
421
- def test_opacity
422
- @draw.opacity(0.8)
423
- assert_equal('opacity 0.8', @draw.inspect)
424
- assert_nothing_raised { @draw.draw(@img) }
425
-
426
- assert_nothing_raised { @draw.opacity(0.0) }
427
- assert_nothing_raised { @draw.opacity(1.0) }
428
- assert_nothing_raised { @draw.opacity('0.0') }
429
- assert_nothing_raised { @draw.opacity('1.0') }
430
- assert_nothing_raised { @draw.opacity('20%') }
431
-
432
- assert_raise(ArgumentError) { @draw.opacity(-0.01) }
433
- assert_raise(ArgumentError) { @draw.opacity(1.01) }
434
- assert_raise(ArgumentError) { @draw.opacity('-0.01') }
435
- assert_raise(ArgumentError) { @draw.opacity('1.01') }
436
- assert_raise(ArgumentError) { @draw.opacity('xxx') }
437
- end
438
-
439
- def test_path
440
- @draw.path('M110,100 h-75 a75,75 0 1,0 75,-75 z')
441
- assert_equal("path 'M110,100 h-75 a75,75 0 1,0 75,-75 z'", @draw.inspect)
442
- assert_nothing_raised { @draw.draw(@img) }
443
- end
444
-
445
- def test_pattern
446
- @draw.pattern('hat', 0, 10.5, 20, '20') {}
447
- assert_equal("push defs\npush pattern hat 0 10.5 20 20\npush graphic-context\npop graphic-context\npop pattern\npop defs", @draw.inspect)
448
- assert_nothing_raised { @draw.draw(@img) }
449
-
450
- assert_raise(ArgumentError) { @draw.pattern('hat', 'x', 0, 20, 20) {} }
451
- assert_raise(ArgumentError) { @draw.pattern('hat', 0, 'x', 20, 20) {} }
452
- assert_raise(ArgumentError) { @draw.pattern('hat', 0, 0, 'x', 20) {} }
453
- assert_raise(ArgumentError) { @draw.pattern('hat', 0, 0, 20, 'x') {} }
454
- end
455
-
456
- def test_point
457
- @draw.point(10.5, '20')
458
- assert_equal('point 10.5,20', @draw.inspect)
459
- assert_nothing_raised { @draw.draw(@img) }
460
-
461
- assert_raise(ArgumentError) { @draw.point('x', 20) }
462
- assert_raise(ArgumentError) { @draw.point(10, 'x') }
463
- end
464
-
465
- def test_pointsize
466
- @draw.pointsize(20.5)
467
- assert_equal('font-size 20.5', @draw.inspect)
468
- assert_nothing_raised { @draw.draw(@img) }
469
-
470
- assert_raise(ArgumentError) { @draw.pointsize('x') }
471
- end
472
-
473
- def test_font_size
474
- @draw.font_size(20)
475
- assert_equal('font-size 20', @draw.inspect)
476
- assert_nothing_raised { @draw.draw(@img) }
477
-
478
- assert_raise(ArgumentError) { @draw.font_size('x') }
479
- end
480
-
481
- def test_polygon
482
- @draw.polygon(0, '0.5', 8.5, 16, 16, 0, 0, 0)
483
- assert_equal('polygon 0,0.5,8.5,16,16,0,0,0', @draw.inspect)
484
- assert_nothing_raised { @draw.draw(@img) }
485
-
486
- assert_raise(ArgumentError) { @draw.polygon }
487
- assert_raise(ArgumentError) { @draw.polygon(0) }
488
- assert_raise(ArgumentError) { @draw.polygon('x', 0, 8, 16, 16, 0, 0, 0) }
489
- end
490
-
491
- def test_polyline
492
- @draw.polyline(0, '0.5', 16.5, 16)
493
- assert_equal('polyline 0,0.5,16.5,16', @draw.inspect)
494
- assert_nothing_raised { @draw.draw(@img) }
495
-
496
- assert_raise(ArgumentError) { @draw.polyline }
497
- assert_raise(ArgumentError) { @draw.polyline(0) }
498
- assert_raise(ArgumentError) { @draw.polyline('x', 0, 16, 16) }
499
- end
500
-
501
- def test_rectangle
502
- @draw.rectangle(10, '10', 100, 100)
503
- assert_equal('rectangle 10,10 100,100', @draw.inspect)
504
- assert_nothing_raised { @draw.draw(@img) }
505
-
506
- assert_raise(ArgumentError) { @draw.rectangle('x', 10, 20, 20) }
507
- assert_raise(ArgumentError) { @draw.rectangle(10, 'x', 20, 20) }
508
- assert_raise(ArgumentError) { @draw.rectangle(10, 10, 'x', 20) }
509
- assert_raise(ArgumentError) { @draw.rectangle(10, 10, 20, 'x') }
510
- end
511
-
512
- def test_rotate
513
- @draw.rotate(45)
514
- assert_equal('rotate 45', @draw.inspect)
515
- @draw.text(50, 50, 'Hello world')
516
- assert_nothing_raised { @draw.draw(@img) }
517
-
518
- assert_raise(ArgumentError) { @draw.rotate('x') }
519
- end
520
-
521
- def test_roundrectangle
522
- @draw.roundrectangle(10, '10', 100, 100, 20, 20)
523
- assert_equal('roundrectangle 10,10,100,100,20,20', @draw.inspect)
524
- assert_nothing_raised { @draw.draw(@img) }
525
-
526
- assert_raise(ArgumentError) { @draw.roundrectangle('x', '10', 100, 100, 20, 20) }
527
- assert_raise(ArgumentError) { @draw.roundrectangle(10, 'x', 100, 100, 20, 20) }
528
- assert_raise(ArgumentError) { @draw.roundrectangle(10, '10', 'x', 100, 20, 20) }
529
- assert_raise(ArgumentError) { @draw.roundrectangle(10, '10', 100, 'x', 20, 20) }
530
- assert_raise(ArgumentError) { @draw.roundrectangle(10, '10', 100, 100, 'x', 20) }
531
- assert_raise(ArgumentError) { @draw.roundrectangle(10, '10', 100, 100, 20, 'x') }
532
- end
533
-
534
- def test_scale
535
- @draw.scale('0.5', 1.5)
536
- assert_equal('scale 0.5,1.5', @draw.inspect)
537
- @draw.rectangle(10, '10', 100, 100)
538
- assert_nothing_raised { @draw.draw(@img) }
539
-
540
- assert_raise(ArgumentError) { @draw.scale('x', 1.5) }
541
- assert_raise(ArgumentError) { @draw.scale(0.5, 'x') }
542
- end
543
-
544
- def test_skewx
545
- @draw.skewx(45)
546
- assert_equal('skewX 45', @draw.inspect)
547
- @draw.text(50, 50, 'Hello world')
548
- assert_nothing_raised { @draw.draw(@img) }
549
-
550
- assert_raise(ArgumentError) { @draw.skewx('x') }
551
- end
552
-
553
- def test_skewy
554
- @draw.skewy(45)
555
- assert_equal('skewY 45', @draw.inspect)
556
- @draw.text(50, 50, 'Hello world')
557
- assert_nothing_raised { @draw.draw(@img) }
558
-
559
- assert_raise(ArgumentError) { @draw.skewy('x') }
560
- end
561
-
562
- def test_stroke
563
- @draw.stroke('red')
564
- assert_equal('stroke "red"', @draw.inspect)
565
- @draw.rectangle(10, '10', 100, 100)
566
- assert_nothing_raised { @draw.draw(@img) }
567
-
568
- # assert_raise(ArgumentError) { @draw.stroke(100) }
569
- end
570
-
571
- def test_stroke_color
572
- @draw.stroke_color('red')
573
- assert_equal('stroke "red"', @draw.inspect)
574
- @draw.rectangle(10, '10', 100, 100)
575
- assert_nothing_raised { @draw.draw(@img) }
576
-
577
- # assert_raise(ArgumentError) { @draw.stroke_color(100) }
578
- end
579
-
580
- def test_stroke_pattern
581
- @draw.stroke_pattern('red')
582
- assert_equal('stroke "red"', @draw.inspect)
583
- @draw.rectangle(10, '10', 100, 100)
584
- assert_nothing_raised { @draw.draw(@img) }
585
-
586
- # assert_raise(ArgumentError) { @draw.stroke_pattern(100) }
587
- end
588
-
589
- def test_stroke_antialias
590
- draw = Magick::Draw.new
591
- draw.stroke_antialias(true)
592
- assert_equal('stroke-antialias 1', draw.inspect)
593
- draw.stroke_pattern('red')
594
- draw.stroke_width(5)
595
- draw.circle(10, '20.5', 30, 40.5)
596
- assert_nothing_raised { draw.draw(@img) }
597
-
598
- draw = Magick::Draw.new
599
- draw.stroke_antialias(false)
600
- assert_equal('stroke-antialias 0', draw.inspect)
601
- draw.stroke_pattern('red')
602
- draw.stroke_width(5)
603
- draw.circle(10, '20.5', 30, 40.5)
604
- assert_nothing_raised { draw.draw(@img) }
605
- end
606
-
607
- def test_stroke_dasharray
608
- draw = Magick::Draw.new
609
- draw.stroke_dasharray(2, 2)
610
- assert_equal('stroke-dasharray 2,2', draw.inspect)
611
- draw.stroke_pattern('red')
612
- draw.stroke_width(2)
613
- draw.rectangle(10, '10', 100, 100)
614
- assert_nothing_raised { draw.draw(@img) }
615
-
616
- draw = Magick::Draw.new
617
- draw.stroke_dasharray
618
- assert_equal('stroke-dasharray none', draw.inspect)
619
- assert_nothing_raised { draw.draw(@img) }
620
-
621
- assert_raise(ArgumentError) { @draw.stroke_dasharray(-0.1) }
622
- assert_raise(ArgumentError) { @draw.stroke_dasharray('x') }
623
- end
624
-
625
- def test_stroke_dashoffset
626
- @draw.stroke_dashoffset(10)
627
- assert_equal('stroke-dashoffset 10', @draw.inspect)
628
- assert_nothing_raised { @draw.draw(@img) }
629
-
630
- assert_raise(ArgumentError) { @draw.stroke_dashoffset('x') }
631
- end
632
-
633
- def test_stroke_linecap
634
- draw = Magick::Draw.new
635
- draw.stroke_linecap('butt')
636
- assert_equal('stroke-linecap butt', draw.inspect)
637
- assert_nothing_raised { draw.draw(@img) }
638
-
639
- draw = Magick::Draw.new
640
- draw.stroke_linecap('round')
641
- assert_equal('stroke-linecap round', draw.inspect)
642
- assert_nothing_raised { draw.draw(@img) }
643
-
644
- draw = Magick::Draw.new
645
- draw.stroke_linecap('square')
646
- assert_equal('stroke-linecap square', draw.inspect)
647
- assert_nothing_raised { draw.draw(@img) }
648
-
649
- assert_raise(ArgumentError) { @draw.stroke_linecap('foo') }
650
- end
651
-
652
- def test_stroke_linejoin
653
- draw = Magick::Draw.new
654
- draw.stroke_linejoin('round')
655
- assert_equal('stroke-linejoin round', draw.inspect)
656
- assert_nothing_raised { draw.draw(@img) }
657
-
658
- draw = Magick::Draw.new
659
- draw.stroke_linejoin('miter')
660
- assert_equal('stroke-linejoin miter', draw.inspect)
661
- assert_nothing_raised { draw.draw(@img) }
662
-
663
- draw = Magick::Draw.new
664
- draw.stroke_linejoin('bevel')
665
- assert_equal('stroke-linejoin bevel', draw.inspect)
666
- assert_nothing_raised { draw.draw(@img) }
667
-
668
- assert_raise(ArgumentError) { @draw.stroke_linejoin('foo') }
669
- end
670
-
671
- def test_stroke_miterlimit
672
- draw = Magick::Draw.new
673
- draw.stroke_miterlimit(1.0)
674
- assert_equal('stroke-miterlimit 1.0', draw.inspect)
675
- assert_nothing_raised { draw.draw(@img) }
676
-
677
- assert_raise(ArgumentError) { @draw.stroke_miterlimit(0.9) }
678
- assert_raise(ArgumentError) { @draw.stroke_miterlimit('foo') }
679
- end
680
-
681
- def test_stroke_opacity
682
- @draw.stroke_opacity(0.8)
683
- assert_equal('stroke-opacity 0.8', @draw.inspect)
684
- assert_nothing_raised { @draw.draw(@img) }
685
-
686
- assert_nothing_raised { @draw.stroke_opacity(0.0) }
687
- assert_nothing_raised { @draw.stroke_opacity(1.0) }
688
- assert_nothing_raised { @draw.stroke_opacity('0.0') }
689
- assert_nothing_raised { @draw.stroke_opacity('1.0') }
690
- assert_nothing_raised { @draw.stroke_opacity('20%') }
691
-
692
- assert_raise(ArgumentError) { @draw.stroke_opacity(-0.01) }
693
- assert_raise(ArgumentError) { @draw.stroke_opacity(1.01) }
694
- assert_raise(ArgumentError) { @draw.stroke_opacity('-0.01') }
695
- assert_raise(ArgumentError) { @draw.stroke_opacity('1.01') }
696
- assert_raise(ArgumentError) { @draw.stroke_opacity('xxx') }
697
- end
698
-
699
- def test_stroke_width
700
- @draw.stroke_width(2.5)
701
- assert_equal('stroke-width 2.5', @draw.inspect)
702
- assert_nothing_raised { @draw.draw(@img) }
703
-
704
- assert_raise(ArgumentError) { @draw.stroke_width('xxx') }
705
- end
706
-
707
- def test_text
708
- draw = Magick::Draw.new
709
- draw.text(50, 50, 'Hello world')
710
- assert_equal("text 50,50 'Hello world'", draw.inspect)
711
- assert_nothing_raised { draw.draw(@img) }
712
-
713
- draw = Magick::Draw.new
714
- draw.text(50, 50, "Hello 'world'")
715
- assert_equal("text 50,50 \"Hello 'world'\"", draw.inspect)
716
- assert_nothing_raised { draw.draw(@img) }
717
-
718
- draw = Magick::Draw.new
719
- draw.text(50, 50, 'Hello "world"')
720
- assert_equal("text 50,50 'Hello \"world\"'", draw.inspect)
721
- assert_nothing_raised { draw.draw(@img) }
722
-
723
- draw = Magick::Draw.new
724
- draw.text(50, 50, "Hello 'world\"")
725
- assert_equal("text 50,50 {Hello 'world\"}", draw.inspect)
726
- assert_nothing_raised { draw.draw(@img) }
727
-
728
- draw = Magick::Draw.new
729
- draw.text(50, 50, "Hello {'world\"")
730
- assert_equal("text 50,50 {Hello {'world\"}", draw.inspect)
731
- assert_nothing_raised { draw.draw(@img) }
732
-
733
- assert_raise(ArgumentError) { @draw.text(50, 50, '') }
734
- assert_raise(ArgumentError) { @draw.text('x', 50, 'Hello world') }
735
- assert_raise(ArgumentError) { @draw.text(50, 'x', 'Hello world') }
736
- end
737
-
738
- def test_text_align
739
- draw = Magick::Draw.new
740
- draw.text_align(Magick::LeftAlign)
741
- assert_equal('text-align left', draw.inspect)
742
- draw.text(50, 50, 'Hello world')
743
- assert_nothing_raised { draw.draw(@img) }
744
-
745
- draw = Magick::Draw.new
746
- draw.text_align(Magick::RightAlign)
747
- assert_equal('text-align right', draw.inspect)
748
- draw.text(50, 50, 'Hello world')
749
- assert_nothing_raised { draw.draw(@img) }
750
-
751
- draw = Magick::Draw.new
752
- draw.text_align(Magick::CenterAlign)
753
- assert_equal('text-align center', draw.inspect)
754
- draw.text(50, 50, 'Hello world')
755
- assert_nothing_raised { draw.draw(@img) }
756
-
757
- assert_raise(ArgumentError) { @draw.text_align('x') }
758
- end
759
-
760
- def test_text_anchor
761
- draw = Magick::Draw.new
762
- draw.text_anchor(Magick::StartAnchor)
763
- assert_equal('text-anchor start', draw.inspect)
764
- draw.text(50, 50, 'Hello world')
765
- assert_nothing_raised { draw.draw(@img) }
766
-
767
- draw = Magick::Draw.new
768
- draw.text_anchor(Magick::MiddleAnchor)
769
- assert_equal('text-anchor middle', draw.inspect)
770
- draw.text(50, 50, 'Hello world')
771
- assert_nothing_raised { draw.draw(@img) }
772
-
773
- draw = Magick::Draw.new
774
- draw.text_anchor(Magick::EndAnchor)
775
- assert_equal('text-anchor end', draw.inspect)
776
- draw.text(50, 50, 'Hello world')
777
- assert_nothing_raised { draw.draw(@img) }
778
-
779
- assert_raise(ArgumentError) { @draw.text_anchor('x') }
780
- end
781
-
782
- def test_text_antialias
783
- draw = Magick::Draw.new
784
- draw.text_antialias(true)
785
- assert_equal('text-antialias 1', draw.inspect)
786
- draw.text(50, 50, 'Hello world')
787
- assert_nothing_raised { draw.draw(@img) }
788
-
789
- draw = Magick::Draw.new
790
- draw.text_antialias(false)
791
- assert_equal('text-antialias 0', draw.inspect)
792
- draw.text(50, 50, 'Hello world')
793
- assert_nothing_raised { draw.draw(@img) }
794
- end
795
-
796
- def test_text_undercolor
797
- @draw.text_undercolor('red')
798
- assert_equal('text-undercolor "red"', @draw.inspect)
799
- @draw.text(50, 50, 'Hello world')
800
- assert_nothing_raised { @draw.draw(@img) }
801
- end
802
-
803
- def test_translate
804
- @draw.translate('200', 300)
805
- assert_equal('translate 200,300', @draw.inspect)
806
- assert_nothing_raised { @draw.draw(@img) }
807
-
808
- assert_raise(ArgumentError) { @draw.translate('x', 300) }
809
- assert_raise(ArgumentError) { @draw.translate(200, 'x') }
810
- end
811
- end