cairo 1.6.3 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (445) hide show
  1. data/ChangeLog +206 -0
  2. data/NEWS +13 -0
  3. data/README +10 -3
  4. data/Rakefile +3 -2
  5. data/doc/en/cairo-antialias.html +0 -3
  6. data/doc/en/cairo-clip-not-representable-error.html +1 -4
  7. data/doc/en/cairo-color-base.html +0 -3
  8. data/doc/en/cairo-color-cmyk.html +1 -4
  9. data/doc/en/cairo-color-hsv.html +137 -0
  10. data/doc/en/cairo-color-rgb.html +142 -0
  11. data/doc/en/cairo-color-x11.html +173 -0
  12. data/doc/en/cairo-color.html +238 -0
  13. data/doc/en/cairo-content.html +37 -0
  14. data/doc/en/cairo-context-blur.html +39 -0
  15. data/doc/en/cairo-context-circle.html +39 -0
  16. data/doc/en/cairo-context-color.html +39 -0
  17. data/doc/en/cairo-context-path.html +44 -0
  18. data/doc/en/cairo-context-rectangle.html +0 -3
  19. data/doc/en/cairo-context-triangle.html +39 -0
  20. data/doc/en/cairo-context.html +124 -107
  21. data/doc/en/cairo-error.html +44 -0
  22. data/doc/en/cairo-extend.html +38 -0
  23. data/doc/en/cairo-file-not-found.html +1 -4
  24. data/doc/en/cairo-fill-rule.html +36 -0
  25. data/doc/en/cairo-filter.html +0 -3
  26. data/doc/en/cairo-font-extents.html +129 -0
  27. data/doc/en/cairo-font-face.html +38 -0
  28. data/doc/en/cairo-font-options.html +154 -0
  29. data/doc/en/cairo-font-slant.html +0 -3
  30. data/doc/en/cairo-font-type-mismatch.html +47 -0
  31. data/doc/en/cairo-font-weight.html +0 -3
  32. data/doc/en/cairo-format.html +0 -3
  33. data/doc/en/cairo-glyph.html +99 -0
  34. data/doc/en/cairo-gradient-pattern.html +74 -0
  35. data/doc/en/cairo-hint-metrics.html +37 -0
  36. data/doc/en/cairo-hint-style.html +0 -3
  37. data/doc/en/cairo-image-surface.html +82 -0
  38. data/doc/en/cairo-invalid-clusters.html +47 -0
  39. data/doc/en/cairo-invalid-content-error.html +47 -0
  40. data/doc/en/cairo-invalid-dash-error.html +0 -3
  41. data/doc/en/cairo-invalid-dsc-comment-error.html +47 -0
  42. data/doc/en/cairo-invalid-format-error.html +47 -0
  43. data/doc/en/cairo-invalid-index-error.html +47 -0
  44. data/doc/en/cairo-invalid-matrix-error.html +0 -3
  45. data/doc/en/cairo-invalid-path-data-error.html +47 -0
  46. data/doc/en/cairo-invalid-pop-group-error.html +1 -4
  47. data/doc/en/cairo-invalid-restore-error.html +47 -0
  48. data/doc/en/cairo-invalid-slant.html +47 -0
  49. data/doc/en/cairo-invalid-status-error.html +47 -0
  50. data/doc/en/cairo-invalid-stride-error.html +0 -3
  51. data/doc/en/cairo-invalid-string-error.html +47 -0
  52. data/doc/en/cairo-invalid-visual-error.html +47 -0
  53. data/doc/en/cairo-invalid-weight.html +47 -0
  54. data/doc/en/cairo-lcd-filter.html +39 -0
  55. data/doc/en/cairo-line-cap.html +37 -0
  56. data/doc/en/cairo-line-join.html +37 -0
  57. data/doc/en/cairo-linear-pattern.html +60 -0
  58. data/doc/en/cairo-matrix.html +259 -0
  59. data/doc/en/cairo-negative-count.html +47 -0
  60. data/doc/en/cairo-no-current-point-error.html +47 -0
  61. data/doc/en/cairo-null-pointer-error.html +0 -3
  62. data/doc/en/cairo-operator.html +0 -3
  63. data/doc/en/cairo-paper-parse-error.html +0 -3
  64. data/doc/en/cairo-paper-unknown-paper-name.html +66 -0
  65. data/doc/en/cairo-paper-unknown-unit.html +66 -0
  66. data/doc/en/cairo-paper-unrecognized-paper-description.html +1 -4
  67. data/doc/en/cairo-paper.html +0 -3
  68. data/doc/en/cairo-path-close-path.html +49 -0
  69. data/doc/en/cairo-path-curve-to.html +1 -4
  70. data/doc/en/cairo-path-data-type.html +0 -3
  71. data/doc/en/cairo-path-data.html +0 -3
  72. data/doc/en/cairo-path-line-to.html +1 -4
  73. data/doc/en/cairo-path-move-to.html +1 -4
  74. data/doc/en/cairo-path.html +0 -3
  75. data/doc/en/cairo-pattern-type-mismatch-error.html +47 -0
  76. data/doc/en/cairo-pattern.html +0 -3
  77. data/doc/en/cairo-pdf-surface.html +1 -4
  78. data/doc/en/cairo-point.html +0 -3
  79. data/doc/en/cairo-ps-level.html +49 -0
  80. data/doc/en/cairo-ps-surface.html +1 -4
  81. data/doc/en/cairo-quartz-image-surface.html +57 -0
  82. data/doc/en/cairo-quartz-surface.html +1 -4
  83. data/doc/en/cairo-radial-pattern.html +60 -0
  84. data/doc/en/cairo-read-error.html +47 -0
  85. data/doc/en/cairo-rectangle.html +0 -3
  86. data/doc/en/cairo-scaled-font.html +94 -0
  87. data/doc/en/cairo-solid-pattern.html +62 -0
  88. data/doc/en/cairo-subpixel-order.html +0 -3
  89. data/doc/en/cairo-surface-finished-error.html +1 -4
  90. data/doc/en/cairo-surface-pattern.html +0 -3
  91. data/doc/en/cairo-surface-type-mismatch-error.html +47 -0
  92. data/doc/en/cairo-surface.html +22 -15
  93. data/doc/en/cairo-svg-surface.html +77 -0
  94. data/doc/en/cairo-svg-version.html +0 -3
  95. data/doc/en/cairo-temp-file-error.html +47 -0
  96. data/doc/en/cairo-text-cluster.html +84 -0
  97. data/doc/en/cairo-text-extents.html +144 -0
  98. data/doc/en/cairo-toy-font-face.html +67 -0
  99. data/doc/en/cairo-user-font-error.html +47 -0
  100. data/doc/en/cairo-user-font-face-text-to-glyphs-data.html +94 -0
  101. data/doc/en/cairo-user-font-face.html +72 -0
  102. data/doc/en/cairo-user-font-immutable.html +47 -0
  103. data/doc/en/cairo-win32-printing-surface.html +57 -0
  104. data/doc/en/cairo-win32-surface.html +62 -0
  105. data/doc/en/cairo-write-error.html +47 -0
  106. data/doc/en/cairo.html +92 -80
  107. data/doc/en/index.html +1076 -989
  108. data/doc/ja/cairo-clip-not-representable-error.html +1 -1
  109. data/doc/ja/cairo-color-base.html +1 -1
  110. data/doc/ja/cairo-color-cmyk.html +9 -9
  111. data/doc/ja/cairo-color-hsv.html +8 -8
  112. data/doc/ja/cairo-color-rgb.html +9 -9
  113. data/doc/ja/cairo-color.html +8 -8
  114. data/doc/ja/cairo-context-circle.html +1 -1
  115. data/doc/ja/cairo-context-color.html +1 -1
  116. data/doc/ja/cairo-context-path.html +2 -2
  117. data/doc/ja/cairo-context.html +435 -342
  118. data/doc/ja/cairo-font-extents.html +69 -15
  119. data/doc/ja/cairo-font-face.html +3 -3
  120. data/doc/ja/cairo-font-options.html +37 -12
  121. data/doc/ja/cairo-font-slant.html +1 -1
  122. data/doc/ja/cairo-font-type-mismatch.html +52 -0
  123. data/doc/ja/cairo-glyph.html +5 -5
  124. data/doc/ja/cairo-gradient-pattern.html +6 -6
  125. data/doc/ja/cairo-image-surface.html +8 -8
  126. data/doc/ja/cairo-invalid-clusters.html +55 -0
  127. data/doc/ja/cairo-invalid-restore-error.html +1 -1
  128. data/doc/ja/cairo-invalid-slant.html +57 -0
  129. data/doc/ja/cairo-invalid-weight.html +57 -0
  130. data/doc/ja/cairo-lcd-filter.html +63 -0
  131. data/doc/ja/cairo-line-join.html +1 -1
  132. data/doc/ja/cairo-linear-pattern.html +2 -2
  133. data/doc/ja/cairo-matrix.html +35 -24
  134. data/doc/ja/cairo-negative-count.html +52 -0
  135. data/doc/ja/cairo-paper-unknown-paper-name.html +2 -2
  136. data/doc/ja/cairo-paper-unknown-unit.html +2 -2
  137. data/doc/ja/cairo-paper-unrecognized-paper-description.html +1 -1
  138. data/doc/ja/cairo-paper.html +12 -12
  139. data/doc/ja/cairo-path-close-path.html +1 -1
  140. data/doc/ja/cairo-path-curve-to.html +1 -1
  141. data/doc/ja/cairo-path-data.html +8 -8
  142. data/doc/ja/cairo-path-line-to.html +1 -1
  143. data/doc/ja/cairo-path-move-to.html +1 -1
  144. data/doc/ja/cairo-path.html +21 -21
  145. data/doc/ja/cairo-pattern.html +4 -4
  146. data/doc/ja/cairo-pdf-surface.html +2 -2
  147. data/doc/ja/cairo-point.html +5 -5
  148. data/doc/ja/cairo-ps-level.html +2 -2
  149. data/doc/ja/cairo-ps-surface.html +6 -6
  150. data/doc/ja/cairo-quartz-image-surface.html +2 -2
  151. data/doc/ja/cairo-quartz-surface.html +3 -3
  152. data/doc/ja/cairo-radial-pattern.html +2 -2
  153. data/doc/ja/cairo-rectangle.html +5 -5
  154. data/doc/ja/cairo-scaled-font.html +53 -17
  155. data/doc/ja/cairo-solid-pattern.html +3 -3
  156. data/doc/ja/cairo-surface-pattern.html +2 -2
  157. data/doc/ja/cairo-surface.html +58 -36
  158. data/doc/ja/cairo-svg-surface.html +4 -4
  159. data/doc/ja/cairo-svg-version.html +2 -2
  160. data/doc/ja/cairo-text-cluster.html +102 -0
  161. data/doc/ja/cairo-text-extents.html +84 -22
  162. data/doc/ja/cairo-toy-font-face.html +107 -0
  163. data/doc/ja/cairo-user-font-error.html +55 -0
  164. data/doc/ja/cairo-user-font-face-text-to-glyphs-data.html +155 -0
  165. data/doc/ja/cairo-user-font-face.html +268 -0
  166. data/doc/ja/cairo-user-font-immutable.html +54 -0
  167. data/doc/ja/cairo-win32-printing-surface.html +3 -3
  168. data/doc/ja/cairo-win32-surface.html +4 -4
  169. data/doc/ja/cairo.html +110 -77
  170. data/doc/ja/index.html +292 -205
  171. data/extconf.rb +1 -0
  172. data/src/cairo.def +8 -0
  173. data/src/lib/cairo.rb +12 -7
  174. data/src/lib/cairo/constants.rb +1 -0
  175. data/src/rb_cairo.c +25 -3
  176. data/src/rb_cairo.h +22 -1
  177. data/src/rb_cairo_constants.c +24 -1
  178. data/src/rb_cairo_context.c +147 -6
  179. data/src/rb_cairo_exception.c +143 -3
  180. data/src/rb_cairo_font_extents.c +81 -6
  181. data/src/rb_cairo_font_face.c +646 -4
  182. data/src/rb_cairo_font_options.c +24 -2
  183. data/src/rb_cairo_glyph.c +5 -3
  184. data/src/rb_cairo_matrix.c +17 -1
  185. data/src/rb_cairo_private.c +169 -5
  186. data/src/rb_cairo_private.h +36 -2
  187. data/src/rb_cairo_scaled_font.c +61 -3
  188. data/src/rb_cairo_surface.c +77 -52
  189. data/src/rb_cairo_text_cluster.c +151 -0
  190. data/src/rb_cairo_text_extents.c +85 -2
  191. data/test-unit/Rakefile +30 -0
  192. data/test-unit/bin/testrb +5 -0
  193. data/test-unit/lib/test/unit.rb +280 -0
  194. data/test-unit/lib/test/unit/assertionfailederror.rb +14 -0
  195. data/test-unit/lib/test/unit/assertions.rb +722 -0
  196. data/test-unit/lib/test/unit/attribute.rb +125 -0
  197. data/test-unit/lib/test/unit/autorunner.rb +254 -0
  198. data/test-unit/lib/test/unit/collector.rb +43 -0
  199. data/test-unit/lib/test/unit/collector/descendant.rb +23 -0
  200. data/test-unit/lib/test/unit/collector/dir.rb +108 -0
  201. data/test-unit/lib/test/unit/collector/load.rb +135 -0
  202. data/test-unit/lib/test/unit/collector/objectspace.rb +34 -0
  203. data/test-unit/lib/test/unit/color.rb +61 -0
  204. data/test-unit/lib/test/unit/diff.rb +524 -0
  205. data/test-unit/lib/test/unit/error.rb +124 -0
  206. data/test-unit/lib/test/unit/exceptionhandler.rb +39 -0
  207. data/test-unit/lib/test/unit/failure.rb +110 -0
  208. data/test-unit/lib/test/unit/fixture.rb +185 -0
  209. data/test-unit/lib/test/unit/notification.rb +125 -0
  210. data/test-unit/lib/test/unit/omission.rb +143 -0
  211. data/test-unit/lib/test/unit/pending.rb +146 -0
  212. data/test-unit/lib/test/unit/priority.rb +146 -0
  213. data/test-unit/lib/test/unit/runner/console.rb +46 -0
  214. data/test-unit/lib/test/unit/runner/emacs.rb +8 -0
  215. data/test-unit/lib/test/unit/testcase.rb +281 -0
  216. data/test-unit/lib/test/unit/testresult.rb +89 -0
  217. data/test-unit/lib/test/unit/testsuite.rb +110 -0
  218. data/test-unit/lib/test/unit/ui/console/outputlevel.rb +14 -0
  219. data/test-unit/lib/test/unit/ui/console/testrunner.rb +195 -0
  220. data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +49 -0
  221. data/test-unit/lib/test/unit/ui/testrunner.rb +20 -0
  222. data/test-unit/lib/test/unit/ui/testrunnermediator.rb +77 -0
  223. data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +41 -0
  224. data/test-unit/lib/test/unit/util/backtracefilter.rb +41 -0
  225. data/test-unit/lib/test/unit/util/observable.rb +90 -0
  226. data/test-unit/lib/test/unit/util/procwrapper.rb +48 -0
  227. data/test-unit/lib/test/unit/version.rb +7 -0
  228. data/test-unit/sample/adder.rb +13 -0
  229. data/test-unit/sample/subtracter.rb +12 -0
  230. data/test-unit/sample/tc_adder.rb +18 -0
  231. data/test-unit/sample/tc_subtracter.rb +18 -0
  232. data/test-unit/sample/ts_examples.rb +7 -0
  233. data/test-unit/test/collector/test_descendant.rb +135 -0
  234. data/test-unit/test/collector/test_dir.rb +406 -0
  235. data/test-unit/test/collector/test_load.rb +333 -0
  236. data/test-unit/test/collector/test_objectspace.rb +98 -0
  237. data/test-unit/test/run-test.rb +13 -0
  238. data/test-unit/test/test_assertions.rb +693 -0
  239. data/test-unit/test/test_attribute.rb +86 -0
  240. data/test-unit/test/test_color.rb +37 -0
  241. data/test-unit/test/test_diff.rb +477 -0
  242. data/test-unit/test/test_emacs_runner.rb +60 -0
  243. data/test-unit/test/test_error.rb +26 -0
  244. data/test-unit/test/test_failure.rb +33 -0
  245. data/test-unit/test/test_fixture.rb +252 -0
  246. data/test-unit/test/test_notification.rb +33 -0
  247. data/test-unit/test/test_omission.rb +81 -0
  248. data/test-unit/test/test_pending.rb +70 -0
  249. data/test-unit/test/test_priority.rb +89 -0
  250. data/test-unit/test/test_testcase.rb +430 -0
  251. data/test-unit/test/test_testresult.rb +113 -0
  252. data/test-unit/test/test_testsuite.rb +129 -0
  253. data/test-unit/test/testunit_test_util.rb +14 -0
  254. data/test-unit/test/ui/test_testrunmediator.rb +20 -0
  255. data/test-unit/test/util/test_backtracefilter.rb +41 -0
  256. data/test-unit/test/util/test_observable.rb +102 -0
  257. data/test-unit/test/util/test_procwrapper.rb +36 -0
  258. data/test/cairo-test-utils.rb +18 -0
  259. data/test/run-test.rb +14 -1
  260. data/test/test_constants.rb +19 -0
  261. data/test/test_context.rb +117 -0
  262. data/test/test_exception.rb +27 -0
  263. data/test/test_font_extents.rb +36 -0
  264. data/test/test_font_face.rb +244 -0
  265. data/test/test_font_options.rb +32 -0
  266. data/test/test_pkg_config.rb +3 -2
  267. data/test/test_scaled_font.rb +34 -0
  268. data/test/test_surface.rb +13 -0
  269. data/test/test_text_cluster.rb +32 -0
  270. data/test/test_text_extents.rb +40 -0
  271. data/test/test_text_to_glyphs_data.rb +47 -0
  272. metadata +156 -175
  273. data/doc/en/cairo-antialias.rbl +0 -8
  274. data/doc/en/cairo-antialias.rd +0 -16
  275. data/doc/en/cairo-antialias.rdc +0 -16
  276. data/doc/en/cairo-clip-not-representable-error.rbl +0 -4
  277. data/doc/en/cairo-clip-not-representable-error.rd +0 -17
  278. data/doc/en/cairo-clip-not-representable-error.rdc +0 -17
  279. data/doc/en/cairo-color-base.rbl +0 -11
  280. data/doc/en/cairo-color-base.rd +0 -38
  281. data/doc/en/cairo-color-base.rdc +0 -38
  282. data/doc/en/cairo-color-cmyk.rbl +0 -28
  283. data/doc/en/cairo-color-cmyk.rd +0 -107
  284. data/doc/en/cairo-color-cmyk.rdc +0 -107
  285. data/doc/en/cairo-color-hsv.rd +0 -91
  286. data/doc/en/cairo-color-rgb.rd +0 -95
  287. data/doc/en/cairo-color-x11.rd +0 -151
  288. data/doc/en/cairo-color.rd +0 -213
  289. data/doc/en/cairo-content.rd +0 -15
  290. data/doc/en/cairo-context-blur.rd +0 -15
  291. data/doc/en/cairo-context-circle.rd +0 -15
  292. data/doc/en/cairo-context-color.rd +0 -15
  293. data/doc/en/cairo-context-path.rd +0 -19
  294. data/doc/en/cairo-context-rectangle.rbl +0 -5
  295. data/doc/en/cairo-context-rectangle.rd +0 -15
  296. data/doc/en/cairo-context-rectangle.rdc +0 -15
  297. data/doc/en/cairo-context-triangle.rd +0 -15
  298. data/doc/en/cairo-context.rbl +0 -123
  299. data/doc/en/cairo-context.rd +0 -491
  300. data/doc/en/cairo-context.rdc +0 -491
  301. data/doc/en/cairo-error.rd +0 -16
  302. data/doc/en/cairo-extend.rd +0 -16
  303. data/doc/en/cairo-file-not-found.rbl +0 -4
  304. data/doc/en/cairo-file-not-found.rd +0 -17
  305. data/doc/en/cairo-file-not-found.rdc +0 -17
  306. data/doc/en/cairo-fill-rule.rd +0 -14
  307. data/doc/en/cairo-filter.rbl +0 -10
  308. data/doc/en/cairo-filter.rd +0 -18
  309. data/doc/en/cairo-filter.rdc +0 -18
  310. data/doc/en/cairo-font-extents.rd +0 -40
  311. data/doc/en/cairo-font-face.rd +0 -14
  312. data/doc/en/cairo-font-options.rd +0 -94
  313. data/doc/en/cairo-font-slant.rbl +0 -7
  314. data/doc/en/cairo-font-slant.rd +0 -15
  315. data/doc/en/cairo-font-slant.rdc +0 -15
  316. data/doc/en/cairo-font-weight.rbl +0 -6
  317. data/doc/en/cairo-font-weight.rd +0 -14
  318. data/doc/en/cairo-font-weight.rdc +0 -14
  319. data/doc/en/cairo-format.rbl +0 -10
  320. data/doc/en/cairo-format.rd +0 -22
  321. data/doc/en/cairo-format.rdc +0 -22
  322. data/doc/en/cairo-glyph.rd +0 -62
  323. data/doc/en/cairo-gradient-pattern.rd +0 -41
  324. data/doc/en/cairo-hint-metrics.rd +0 -15
  325. data/doc/en/cairo-hint-style.rbl +0 -9
  326. data/doc/en/cairo-hint-style.rd +0 -17
  327. data/doc/en/cairo-hint-style.rdc +0 -17
  328. data/doc/en/cairo-image-surface.rd +0 -47
  329. data/doc/en/cairo-invalid-content-error.rd +0 -17
  330. data/doc/en/cairo-invalid-dash-error.rbl +0 -4
  331. data/doc/en/cairo-invalid-dash-error.rd +0 -17
  332. data/doc/en/cairo-invalid-dash-error.rdc +0 -17
  333. data/doc/en/cairo-invalid-dsc-comment-error.rd +0 -17
  334. data/doc/en/cairo-invalid-format-error.rd +0 -17
  335. data/doc/en/cairo-invalid-index-error.rd +0 -17
  336. data/doc/en/cairo-invalid-matrix-error.rbl +0 -4
  337. data/doc/en/cairo-invalid-matrix-error.rd +0 -17
  338. data/doc/en/cairo-invalid-matrix-error.rdc +0 -17
  339. data/doc/en/cairo-invalid-path-data-error.rd +0 -17
  340. data/doc/en/cairo-invalid-pop-group-error.rbl +0 -4
  341. data/doc/en/cairo-invalid-pop-group-error.rd +0 -17
  342. data/doc/en/cairo-invalid-pop-group-error.rdc +0 -17
  343. data/doc/en/cairo-invalid-restore-error.rd +0 -17
  344. data/doc/en/cairo-invalid-status-error.rd +0 -17
  345. data/doc/en/cairo-invalid-stride-error.rbl +0 -4
  346. data/doc/en/cairo-invalid-stride-error.rd +0 -17
  347. data/doc/en/cairo-invalid-stride-error.rdc +0 -17
  348. data/doc/en/cairo-invalid-string-error.rd +0 -17
  349. data/doc/en/cairo-invalid-visual-error.rd +0 -17
  350. data/doc/en/cairo-line-cap.rd +0 -15
  351. data/doc/en/cairo-line-join.rd +0 -15
  352. data/doc/en/cairo-linear-pattern.rd +0 -28
  353. data/doc/en/cairo-matrix.rd +0 -186
  354. data/doc/en/cairo-no-current-point-error.rd +0 -17
  355. data/doc/en/cairo-null-pointer-error.rbl +0 -4
  356. data/doc/en/cairo-null-pointer-error.rd +0 -17
  357. data/doc/en/cairo-null-pointer-error.rdc +0 -17
  358. data/doc/en/cairo-operator.rbl +0 -18
  359. data/doc/en/cairo-operator.rd +0 -26
  360. data/doc/en/cairo-operator.rdc +0 -26
  361. data/doc/en/cairo-paper-parse-error.rbl +0 -4
  362. data/doc/en/cairo-paper-parse-error.rd +0 -17
  363. data/doc/en/cairo-paper-parse-error.rdc +0 -17
  364. data/doc/en/cairo-paper-unknown-paper-name.rd +0 -30
  365. data/doc/en/cairo-paper-unknown-unit.rd +0 -30
  366. data/doc/en/cairo-paper-unrecognized-paper-description.rbl +0 -8
  367. data/doc/en/cairo-paper-unrecognized-paper-description.rd +0 -30
  368. data/doc/en/cairo-paper-unrecognized-paper-description.rdc +0 -30
  369. data/doc/en/cairo-paper.rbl +0 -76
  370. data/doc/en/cairo-paper.rd +0 -141
  371. data/doc/en/cairo-paper.rdc +0 -141
  372. data/doc/en/cairo-path-close-path.rd +0 -21
  373. data/doc/en/cairo-path-curve-to.rbl +0 -6
  374. data/doc/en/cairo-path-curve-to.rd +0 -21
  375. data/doc/en/cairo-path-curve-to.rdc +0 -21
  376. data/doc/en/cairo-path-data-type.rbl +0 -8
  377. data/doc/en/cairo-path-data-type.rd +0 -16
  378. data/doc/en/cairo-path-data-type.rdc +0 -16
  379. data/doc/en/cairo-path-data.rbl +0 -17
  380. data/doc/en/cairo-path-data.rd +0 -62
  381. data/doc/en/cairo-path-data.rdc +0 -62
  382. data/doc/en/cairo-path-line-to.rbl +0 -6
  383. data/doc/en/cairo-path-line-to.rd +0 -21
  384. data/doc/en/cairo-path-line-to.rdc +0 -21
  385. data/doc/en/cairo-path-move-to.rbl +0 -6
  386. data/doc/en/cairo-path-move-to.rd +0 -21
  387. data/doc/en/cairo-path-move-to.rdc +0 -21
  388. data/doc/en/cairo-path.rbl +0 -32
  389. data/doc/en/cairo-path.rd +0 -109
  390. data/doc/en/cairo-path.rdc +0 -109
  391. data/doc/en/cairo-pattern-type-mismatch-error.rd +0 -17
  392. data/doc/en/cairo-pattern.rbl +0 -17
  393. data/doc/en/cairo-pattern.rd +0 -62
  394. data/doc/en/cairo-pattern.rdc +0 -62
  395. data/doc/en/cairo-pdf-surface.rbl +0 -8
  396. data/doc/en/cairo-pdf-surface.rd +0 -27
  397. data/doc/en/cairo-pdf-surface.rdc +0 -27
  398. data/doc/en/cairo-point.rbl +0 -12
  399. data/doc/en/cairo-point.rd +0 -42
  400. data/doc/en/cairo-point.rdc +0 -42
  401. data/doc/en/cairo-ps-level.rd +0 -24
  402. data/doc/en/cairo-ps-surface.rbl +0 -15
  403. data/doc/en/cairo-ps-surface.rd +0 -55
  404. data/doc/en/cairo-ps-surface.rdc +0 -55
  405. data/doc/en/cairo-quartz-image-surface.rd +0 -27
  406. data/doc/en/cairo-quartz-surface.rbl +0 -8
  407. data/doc/en/cairo-quartz-surface.rd +0 -27
  408. data/doc/en/cairo-quartz-surface.rdc +0 -27
  409. data/doc/en/cairo-radial-pattern.rd +0 -28
  410. data/doc/en/cairo-read-error.rd +0 -17
  411. data/doc/en/cairo-rectangle.rbl +0 -15
  412. data/doc/en/cairo-rectangle.rd +0 -54
  413. data/doc/en/cairo-rectangle.rdc +0 -54
  414. data/doc/en/cairo-scaled-font.rd +0 -50
  415. data/doc/en/cairo-solid-pattern.rd +0 -31
  416. data/doc/en/cairo-subpixel-order.rbl +0 -9
  417. data/doc/en/cairo-subpixel-order.rd +0 -17
  418. data/doc/en/cairo-subpixel-order.rdc +0 -17
  419. data/doc/en/cairo-surface-finished-error.rbl +0 -4
  420. data/doc/en/cairo-surface-finished-error.rd +0 -17
  421. data/doc/en/cairo-surface-finished-error.rdc +0 -17
  422. data/doc/en/cairo-surface-pattern.rbl +0 -8
  423. data/doc/en/cairo-surface-pattern.rd +0 -27
  424. data/doc/en/cairo-surface-pattern.rdc +0 -27
  425. data/doc/en/cairo-surface-type-mismatch-error.rd +0 -17
  426. data/doc/en/cairo-surface.rbl +0 -19
  427. data/doc/en/cairo-surface.rd +0 -72
  428. data/doc/en/cairo-surface.rdc +0 -72
  429. data/doc/en/cairo-svg-surface.rd +0 -44
  430. data/doc/en/cairo-svg-version.rbl +0 -9
  431. data/doc/en/cairo-svg-version.rd +0 -24
  432. data/doc/en/cairo-svg-version.rdc +0 -24
  433. data/doc/en/cairo-temp-file-error.rd +0 -17
  434. data/doc/en/cairo-text-extents.rd +0 -44
  435. data/doc/en/cairo-win32-printing-surface.rd +0 -27
  436. data/doc/en/cairo-win32-surface.rd +0 -31
  437. data/doc/en/cairo-write-error.rd +0 -17
  438. data/doc/en/cairo.rbl +0 -80
  439. data/doc/en/cairo.rd +0 -95
  440. data/doc/en/cairo.rdc +0 -95
  441. data/doc/en/index.rbl +0 -1
  442. data/doc/en/index.rd +0 -1051
  443. data/doc/en/index.rdc +0 -1051
  444. data/samples/agg/aa_demo.rb +0 -47
  445. data/src/lib/cairo/table.rb +0 -29
@@ -0,0 +1,86 @@
1
+ class TestUnitAttribute < Test::Unit::TestCase
2
+ class TestStack < Test::Unit::TestCase
3
+ class << self
4
+ def suite
5
+ Test::Unit::TestSuite.new(name)
6
+ end
7
+ end
8
+
9
+ class Stack
10
+ def initialize
11
+ @data = []
12
+ end
13
+
14
+ def push(data)
15
+ @data.push(data)
16
+ end
17
+
18
+ def peek
19
+ @data[-2]
20
+ end
21
+
22
+ def empty?
23
+ @data.empty?
24
+ end
25
+
26
+ def size
27
+ @data.size + 11
28
+ end
29
+ end
30
+
31
+ def setup
32
+ @stack = Stack.new
33
+ end
34
+
35
+ attribute :category, :accessor
36
+ def test_peek
37
+ @stack.push(1)
38
+ @stack.push(2)
39
+ assert_equal(2, @stack.peek)
40
+ end
41
+
42
+ attribute :bug, 1234
43
+ def test_bug_1234
44
+ assert_equal(0, @stack.size)
45
+ end
46
+
47
+ def test_no_attributes
48
+ assert(@stack.empty?)
49
+ @stack.push(1)
50
+ assert(!@stack.empty?)
51
+ assert_equal(1, @stack.size)
52
+ end
53
+ end
54
+
55
+ def test_set_attributes
56
+ test_for_accessor_category = TestStack.new("test_peek")
57
+ assert_equal({"category" => :accessor},
58
+ test_for_accessor_category.attributes)
59
+
60
+ test_for_bug_1234 = TestStack.new("test_bug_1234")
61
+ assert_equal({"bug" => 1234}, test_for_bug_1234.attributes)
62
+
63
+ test_no_attributes = TestStack.new("test_no_attributes")
64
+ assert_equal({}, test_no_attributes.attributes)
65
+ end
66
+
67
+ def test_callback
68
+ changed_attributes = []
69
+ observer = Proc.new do |test_case, key, old_value, value, method_name|
70
+ changed_attributes << [test_case, key, old_value, value, method_name]
71
+ end
72
+
73
+ test_case = Class.new(TestStack) do
74
+ register_attribute_observer(:bug, &observer)
75
+ attribute("bug", 9876, "test_bug_1234")
76
+ attribute(:description, "Test for peek", "test_peek")
77
+ attribute(:bug, 29, "test_peek")
78
+ end
79
+
80
+ assert_equal([
81
+ [test_case, "bug", 1234, 9876, "test_bug_1234"],
82
+ [test_case, "bug", nil, 29, "test_peek"],
83
+ ],
84
+ changed_attributes)
85
+ end
86
+ end
@@ -0,0 +1,37 @@
1
+ class TestUnitColor < Test::Unit::TestCase
2
+ def test_color_escape_sequence
3
+ assert_escape_sequence(["31"], color("red"))
4
+ assert_escape_sequence(["32", "1"], color("green", :bold => true))
5
+ assert_escape_sequence(["0"], color("reset"))
6
+ assert_escape_sequence(["45"], color("magenta", :foreground => false))
7
+ end
8
+
9
+ def test_mix_color_escape_sequence
10
+ assert_escape_sequence(["34", "1"],
11
+ mix_color([color("blue"),
12
+ color("none", :bold => true)]))
13
+ assert_escape_sequence(["34", "1", "4"],
14
+ mix_color([color("blue"),
15
+ color("none", :bold => true)]) +
16
+ color("none", :underline => true))
17
+ assert_escape_sequence(["34", "1", "4"],
18
+ color("blue") +
19
+ color("none", :bold => true) +
20
+ color("none", :underline => true))
21
+ end
22
+
23
+ private
24
+ def color(name, options={})
25
+ Test::Unit::Color.new(name, options)
26
+ end
27
+
28
+ def mix_color(colors)
29
+ Test::Unit::MixColor.new(colors)
30
+ end
31
+
32
+ def assert_escape_sequence(expected, color)
33
+ assert_equal(expected, color.sequence)
34
+ assert_match(/\e\[(?:\d+;)*\d+m/, color.escape_sequence)
35
+ assert_equal(expected, color.escape_sequence[2..-2].split(";"))
36
+ end
37
+ end
@@ -0,0 +1,477 @@
1
+ class TestUnitDiff < Test::Unit::TestCase
2
+ def test_to_indexes
3
+ assert_to_indexes({"abc def" => [0, 2], "abc" => [1]},
4
+ ["abc def", "abc", "abc def"])
5
+
6
+ assert_to_indexes({?a => [0, 3], ?b => [1], ?c => [2], ?d => [4]},
7
+ "abcad")
8
+
9
+ assert_to_indexes({
10
+ ?1 => [0, 35],
11
+ ?t => [2, 5, 16],
12
+ ?e => [3, 14, 31, 38],
13
+ ?s => [4, 6, 12, 13, 20, 32, 44],
14
+ ?, => [7, 21, 33],
15
+ ?0 => [9, 23],
16
+ ?a => [11, 26],
17
+ ?r => [15, 30],
18
+ ?i => [17, 27, 41],
19
+ ?o => [18],
20
+ ?n => [19, 39, 42],
21
+ ?f => [25],
22
+ ?l => [28],
23
+ ?u => [29],
24
+ ?p => [37],
25
+ ?d => [40],
26
+ ?g => [43],
27
+ },
28
+ "1 tests, 0 assertions, 0 failures, 1 pendings") do |x|
29
+ x == " "[0]
30
+ end
31
+ end
32
+
33
+ def test_longest_match
34
+ assert_longest_match([0, 1, 3],
35
+ %w(b c d), %w(a b c d x y z),
36
+ 0, 2, 0, 7)
37
+ assert_longest_match([1, 2, 2],
38
+ %w(b c d), %w(a b c d x y z),
39
+ 1, 2, 0, 6)
40
+ assert_longest_match([0, 0, 0],
41
+ %w(a b), %w(c),
42
+ 0, 1, 0, 0)
43
+ assert_longest_match([1, 0, 2],
44
+ %w(q a b x c d), %w(a b y c d f),
45
+ 0, 5, 0, 5)
46
+ assert_longest_match([4, 3, 2],
47
+ %w(q a b x c d), %w(a b y c d f),
48
+ 3, 5, 2, 5)
49
+
50
+ assert_longest_match([1, 0, 2], "qabxcd", "abycdf", 0, 5, 0, 5)
51
+ assert_longest_match([0, 0, 1], "efg", "eg", 0, 2, 0, 1)
52
+ assert_longest_match([2, 1, 1], "efg", "eg", 1, 2, 1, 1)
53
+ end
54
+
55
+ def test_longest_match_with_junk_predicate
56
+ assert_longest_match([0, 4, 5], " abcd", "abcd abcd", 0, 4, 0, 8)
57
+ assert_longest_match([1, 0, 4], " abcd", "abcd abcd", 0, 4, 0, 8) do |x|
58
+ x == ' '[0]
59
+ end
60
+ end
61
+
62
+ def test_matches
63
+ assert_matches([[0, 0, 2],
64
+ [3, 2, 2]],
65
+ %w(a b x c d), %w(a b c d))
66
+ assert_matches([[1, 0, 2],
67
+ [4, 3, 2]],
68
+ %w(q a b x c d), %w(a b y c d f))
69
+
70
+ assert_matches([[1, 0, 2],
71
+ [4, 3, 2]],
72
+ "qabxcd", "abycdf")
73
+ assert_matches([[0, 0, 1],
74
+ [2, 1, 1]],
75
+ "efg", "eg")
76
+ end
77
+
78
+ def test_matches_with_junk_predicate
79
+ assert_matches([[0, 0, 23],
80
+ [24, 24, 11],
81
+ [36, 36, 9]],
82
+ "1 tests, 0 assertions, 1 failures, 0 pendings",
83
+ "1 tests, 0 assertions, 0 failures, 1 pendings")
84
+
85
+ assert_matches([[0, 0, 1],
86
+ [1, 1, 8],
87
+ [9, 9, 1],
88
+ [10, 10, 13],
89
+ [24, 24, 11],
90
+ [36, 36, 9]],
91
+ "1 tests, 0 assertions, 1 failures, 0 pendings",
92
+ "1 tests, 0 assertions, 0 failures, 1 pendings") do |x|
93
+ x == " "[0]
94
+ end
95
+ end
96
+
97
+ def test_blocks
98
+ assert_blocks([[0, 0, 2],
99
+ [3, 2, 2],
100
+ [5, 4, 0]],
101
+ %w(a b x c d), %w(a b c d))
102
+ assert_blocks([[1, 0, 2],
103
+ [4, 3, 2],
104
+ [6, 6, 0]],
105
+ %w(q a b x c d), %w(a b y c d f))
106
+
107
+ assert_blocks([[1, 0, 2],
108
+ [4, 3, 2],
109
+ [6, 6, 0]],
110
+ "qabxcd", "abycdf")
111
+ assert_blocks([[0, 0, 1],
112
+ [2, 1, 1],
113
+ [3, 2, 0]],
114
+ "efg", "eg")
115
+ end
116
+
117
+ def test_blocks_with_junk_predicate
118
+ assert_blocks([[0, 0, 23],
119
+ [24, 24, 11],
120
+ [36, 36, 9],
121
+ [45, 45, 0]],
122
+ "1 tests, 0 assertions, 1 failures, 0 pendings",
123
+ "1 tests, 0 assertions, 0 failures, 1 pendings") do |x|
124
+ x == " "[0]
125
+ end
126
+ end
127
+
128
+ def test_operations
129
+ assert_operations([], %w(), %w())
130
+
131
+ assert_operations([[:delete, 0, 1, 0, 0],
132
+ [:equal, 1, 3, 0, 2],
133
+ [:replace, 3, 4, 2, 3],
134
+ [:equal, 4, 6, 3, 5],
135
+ [:insert, 6, 6, 5, 6]],
136
+ %w(q a b x c d), %w(a b y c d f))
137
+
138
+ assert_operations([[:delete, 0, 1, 0, 0],
139
+ [:equal, 1, 3, 0, 2],
140
+ [:replace, 3, 4, 2, 3],
141
+ [:equal, 4, 6, 3, 5],
142
+ [:insert, 6, 6, 5, 6]],
143
+ "qabxcd", "abycdf")
144
+
145
+ assert_operations([[:equal, 0, 23, 0, 23],
146
+ [:replace, 23, 24, 23, 24],
147
+ [:equal, 24, 35, 24, 35],
148
+ [:replace, 35, 36, 35, 36],
149
+ [:equal, 36, 45, 36, 45]],
150
+ "1 tests, 0 assertions, 1 failures, 0 pendings",
151
+ "1 tests, 0 assertions, 0 failures, 1 pendings")
152
+
153
+ assert_operations([[:equal, 0, 23, 0, 23],
154
+ [:replace, 23, 24, 23, 24],
155
+ [:equal, 24, 35, 24, 35],
156
+ [:replace, 35, 36, 35, 36],
157
+ [:equal, 36, 45, 36, 45]],
158
+ "1 tests, 0 assertions, 1 failures, 0 pendings",
159
+ "1 tests, 0 assertions, 0 failures, 1 pendings") do |x|
160
+ x == " "[0]
161
+ end
162
+ end
163
+
164
+ def test_grouped_operations
165
+ assert_grouped_operations([[[:equal, 0, 0, 0, 0]]],
166
+ %w(),
167
+ %w())
168
+
169
+ assert_grouped_operations([[[:equal, 0, 3, 0, 3]]],
170
+ %w(a b c),
171
+ %w(a b c))
172
+
173
+ assert_grouped_operations([[[:equal, 0, 1, 0, 1],
174
+ [:replace, 1, 2, 1, 2],
175
+ [:equal, 2, 5, 2, 5]],
176
+ [[:equal, 8, 11, 8, 11],
177
+ [:replace, 11, 12, 11, 12],
178
+ [:equal, 12, 13, 12, 13],
179
+ [:delete, 13, 16, 13, 13],
180
+ [:equal, 16, 17, 13, 14],
181
+ [:replace, 17, 18, 14, 15],
182
+ [:equal, 18, 20, 15, 17]]],
183
+ %w(1 2 3 4 5 6 7 8 9 a b c d e f g h i j k),
184
+ %w(1 i 3 4 5 6 7 8 9 a b cX d h iX j k))
185
+ end
186
+
187
+ def test_ratio
188
+ assert_ratio(0.75, "abcd", "bcde")
189
+ assert_ratio(0.80, "efg", "eg")
190
+ end
191
+
192
+ def test_same_contents_readable_diff
193
+ assert_readable_diff(" aaa", ["aaa"], ["aaa"])
194
+ assert_readable_diff(" aaa\n" \
195
+ " bbb",
196
+ ["aaa", "bbb"], ["aaa", "bbb"])
197
+ end
198
+
199
+ def test_deleted_readable_diff
200
+ assert_readable_diff(" aaa\n" \
201
+ "- bbb",
202
+ ["aaa", "bbb"], ["aaa"])
203
+ assert_readable_diff(" aaa\n" \
204
+ "- bbb\n" \
205
+ "- ccc\n" \
206
+ "- ddd",
207
+ ["aaa", "bbb", "ccc", "ddd"], ["aaa"])
208
+ end
209
+
210
+ def test_inserted_readable_diff
211
+ assert_readable_diff(" aaa\n" \
212
+ "+ bbb\n" \
213
+ "+ ccc\n" \
214
+ "+ ddd",
215
+ ["aaa"], ["aaa", "bbb", "ccc", "ddd"])
216
+ end
217
+
218
+ def test_replace_readable_diff
219
+ assert_readable_diff(" aaa\n" \
220
+ "- bbb\n" \
221
+ "+ BbB\n" \
222
+ " ccc\n" \
223
+ "- ddd\n" \
224
+ "- efg\n" \
225
+ "? -\n" \
226
+ "+ eg",
227
+ ["aaa", "bbb", "ccc", "ddd", "efg"],
228
+ ["aaa", "BbB", "ccc", "eg"])
229
+
230
+ assert_readable_diff("- abcd xyz abc\n" \
231
+ "? -\n" \
232
+ "+ abcd abcd xyz abc\n" \
233
+ "? +++++",
234
+ [" abcd xyz abc"],
235
+ ["abcd abcd xyz abc"])
236
+ end
237
+
238
+ def test_difference_readable_diff
239
+ assert_readable_diff("- 1 tests, 0 assertions, 1 failures, 0 pendings\n" \
240
+ "? ^ ^\n" \
241
+ "+ 1 tests, 0 assertions, 0 failures, 1 pendings\n" \
242
+ "? ^ ^",
243
+ ["1 tests, 0 assertions, 1 failures, 0 pendings"],
244
+ ["1 tests, 0 assertions, 0 failures, 1 pendings"])
245
+ end
246
+
247
+ def test_complex_readable_diff
248
+ assert_readable_diff(" aaa\n" \
249
+ "- bbb\n" \
250
+ "- ccc\n" \
251
+ "+ \n" \
252
+ "+ # \n" \
253
+ " ddd",
254
+ ["aaa", "bbb", "ccc", "ddd"],
255
+ ["aaa", "", " # ", "ddd"])
256
+
257
+ assert_readable_diff("- one1\n" \
258
+ "? ^\n" \
259
+ "+ ore1\n" \
260
+ "? ^\n" \
261
+ "- two2\n" \
262
+ "- three3\n" \
263
+ "? - -\n" \
264
+ "+ tree\n" \
265
+ "+ emu",
266
+ ["one1", "two2", "three3"],
267
+ ["ore1", "tree", "emu"])
268
+ end
269
+
270
+ def test_empty_readable_diff
271
+ assert_readable_diff("", [""], [""])
272
+ end
273
+
274
+ def test_unified_diff
275
+ assert_unified_diff("",
276
+ ["one", "two", "three"],
277
+ ["one", "two", "three"],
278
+ "content 1",
279
+ "content 2")
280
+
281
+ assert_unified_diff("--- Original Sat Jan 26 23:30:50 1991\n" \
282
+ "+++ Current Fri Jun 06 10:20:52 2003\n" \
283
+ "@@ -1,4 +1,4 @@\n" \
284
+ "+zero\n" \
285
+ " one\n" \
286
+ "-two\n" \
287
+ "-three\n" \
288
+ "+tree\n" \
289
+ " four",
290
+ ["one", "two", "three", "four"],
291
+ ["zero", "one", "tree", "four"],
292
+ "Original Sat Jan 26 23:30:50 1991",
293
+ "Current Fri Jun 06 10:20:52 2003",
294
+ :show_context => false)
295
+
296
+ from = File.read(__FILE__).split(/\n/)
297
+ to = from.dup
298
+ target_line = __LINE__
299
+ to[target_line - 1, 1] = []
300
+ context = " def test_unified_diff"
301
+ summary = "@@ -#{target_line - 3},7 +#{target_line - 3},6 @@ #{context}"
302
+ assert_unified_diff((["--- revision 10",
303
+ "+++ revision 11",
304
+ summary] +
305
+ from[target_line - 4, 3].collect {|line| " #{line}"} +
306
+ ["-#{from[target_line - 1]}"] +
307
+ from[target_line, 3].collect {|line| " #{line}"}
308
+ ).join("\n"),
309
+ from, to,
310
+ "revision 10",
311
+ "revision 11")
312
+ end
313
+
314
+ def test_empty_unified_diff
315
+ assert_unified_diff("", [""], [""], "From", "To")
316
+ assert_unified_diff("", [], [], "From", "To")
317
+ end
318
+
319
+ def test_diff_lines
320
+ assert_diff_lines(["- ddd",
321
+ "- efg",
322
+ "? -",
323
+ "+ eg"],
324
+ ["aaa", "bbb", "ccc", "ddd", "efg"],
325
+ ["aaa", "BbB", "ccc", "eg"],
326
+ 3, 5, 3, 4)
327
+ end
328
+
329
+ def test_diff_line
330
+ assert_diff_line(["- abcDefghiJkl",
331
+ "? ^ ^ ^",
332
+ "+ abcdefGhijkl",
333
+ "? ^ ^ ^"],
334
+ "abcDefghiJkl",
335
+ "abcdefGhijkl")
336
+
337
+ assert_diff_line(["- bcDefghiJklx",
338
+ "? ^ ^ ^ -",
339
+ "+ abcdefGhijkl",
340
+ "? + ^ ^ ^"],
341
+ "bcDefghiJklx",
342
+ "abcdefGhijkl")
343
+ end
344
+
345
+ def test_empty_diff_line
346
+ assert_diff_line(["- ",
347
+ "+ "],
348
+ "", "")
349
+ end
350
+
351
+ def test_format_diff_point
352
+ assert_format_diff_point(["- \tabcDefghiJkl",
353
+ "? \t ^ ^ ^",
354
+ "+ \t\tabcdefGhijkl",
355
+ "? \t ^ ^ ^"],
356
+ "\tabcDefghiJkl",
357
+ "\t\tabcdefGhijkl",
358
+ " ^ ^ ^ ",
359
+ "+ ^ ^ ^ ")
360
+ assert_format_diff_point(["- efg",
361
+ "? ^",
362
+ "+ eg"],
363
+ "efg",
364
+ "eg",
365
+ " ^",
366
+ "")
367
+ end
368
+
369
+ def test_interesting_line
370
+ from = ["class X",
371
+ " def find(x=0)",
372
+ " body",
373
+ " end",
374
+ "end"]
375
+ to = ["def xxx",
376
+ " raise 'not call me'",
377
+ "end"]
378
+ assert_interesting_line(" def find(x=0)",
379
+ from, to,
380
+ 2, 1)
381
+ assert_interesting_line("def xxx",
382
+ from, to,
383
+ 2, 0)
384
+ assert_interesting_line("class X",
385
+ from, to,
386
+ 0, 0)
387
+ end
388
+
389
+ private
390
+ def assert_to_indexes(expected, to, &junk_predicate)
391
+ matcher = Test::Unit::Diff::SequenceMatcher.new([""], to, &junk_predicate)
392
+ assert_equal(expected, matcher.instance_variable_get("@to_indexes"))
393
+ end
394
+
395
+ def assert_find_best_match_position(expected, from, to,
396
+ from_start, from_end,
397
+ to_start, to_end, &junk_predicate)
398
+ matcher = Test::Unit::Diff::SequenceMatcher.new(from, to, &junk_predicate)
399
+ assert_equal(expected, matcher.send(:find_best_match_position,
400
+ from_start, from_end,
401
+ to_start, to_end))
402
+ end
403
+
404
+ def assert_longest_match(expected, from, to,
405
+ from_start, from_end,
406
+ to_start, to_end, &junk_predicate)
407
+ matcher = Test::Unit::Diff::SequenceMatcher.new(from, to, &junk_predicate)
408
+ assert_equal(expected, matcher.longest_match(from_start, from_end,
409
+ to_start, to_end))
410
+ end
411
+
412
+ def assert_matches(expected, from, to, &junk_predicate)
413
+ matcher = Test::Unit::Diff::SequenceMatcher.new(from, to, &junk_predicate)
414
+ assert_equal(expected, matcher.send(:matches))
415
+ end
416
+
417
+ def assert_blocks(expected, from, to, &junk_predicate)
418
+ matcher = Test::Unit::Diff::SequenceMatcher.new(from, to, &junk_predicate)
419
+ assert_equal(expected, matcher.blocks)
420
+ end
421
+
422
+ def assert_operations(expected, from, to, &junk_predicate)
423
+ matcher = Test::Unit::Diff::SequenceMatcher.new(from, to, &junk_predicate)
424
+ assert_equal(expected, matcher.operations)
425
+ end
426
+
427
+ def assert_grouped_operations(expected, from, to)
428
+ matcher = Test::Unit::Diff::SequenceMatcher.new(from, to)
429
+ assert_equal(expected, matcher.grouped_operations)
430
+ end
431
+
432
+ def assert_ratio(expected, from, to)
433
+ matcher = Test::Unit::Diff::SequenceMatcher.new(from, to)
434
+ assert_in_delta(expected, 0.001, matcher.ratio)
435
+ end
436
+
437
+ def assert_readable_diff(expected, from, to)
438
+ assert_equal(expected,
439
+ Test::Unit::Diff.readable(from.join("\n"), to.join("\n")))
440
+ end
441
+
442
+ def assert_unified_diff(expected, from, to, from_label, to_label, options={})
443
+ options = options.merge(:from_label => from_label,
444
+ :to_label => to_label)
445
+ assert_equal(expected,
446
+ Test::Unit::Diff.unified(from.join("\n"), to.join("\n"),
447
+ options))
448
+ end
449
+
450
+ def assert_diff_lines(expected, from, to,
451
+ from_start, from_end,
452
+ to_start, to_end)
453
+ differ = Test::Unit::Diff::ReadableDiffer.new(from, to)
454
+ assert_equal(expected, differ.send(:diff_lines,
455
+ from_start, from_end,
456
+ to_start, to_end))
457
+ end
458
+
459
+ def assert_diff_line(expected, from_line, to_line)
460
+ differ = Test::Unit::Diff::ReadableDiffer.new([""], [""])
461
+ assert_equal(expected, differ.send(:diff_line, from_line, to_line))
462
+ end
463
+
464
+ def assert_format_diff_point(expected, from_line, to_line, from_tags, to_tags)
465
+ differ = Test::Unit::Diff::ReadableDiffer.new([""], [""])
466
+ assert_equal(expected, differ.send(:format_diff_point,
467
+ from_line, to_line,
468
+ from_tags, to_tags))
469
+ end
470
+
471
+ def assert_interesting_line(expected, from, to, from_start, to_start)
472
+ differ = Test::Unit::Diff::UnifiedDiffer.new(from, to)
473
+ assert_equal(expected, differ.send(:find_interesting_line,
474
+ from_start, to_start,
475
+ :define_line?))
476
+ end
477
+ end