cairo 1.8.5 → 1.10.0

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

Potentially problematic release.


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

Files changed (106) hide show
  1. data/NEWS +2 -2
  2. data/Rakefile +44 -7
  3. data/ext/cairo/cairo.def +28 -1
  4. data/ext/cairo/extconf.rb +14 -16
  5. data/ext/cairo/rb_cairo.c +4 -1
  6. data/ext/cairo/rb_cairo.h +65 -1
  7. data/ext/cairo/rb_cairo_constants.c +150 -3
  8. data/ext/cairo/rb_cairo_context.c +17 -0
  9. data/ext/cairo/rb_cairo_device.c +406 -0
  10. data/ext/cairo/rb_cairo_exception.c +83 -32
  11. data/ext/cairo/rb_cairo_io.c +166 -0
  12. data/ext/cairo/rb_cairo_io.h +44 -0
  13. data/ext/cairo/rb_cairo_matrix.c +1 -1
  14. data/ext/cairo/rb_cairo_private.h +3 -0
  15. data/ext/cairo/rb_cairo_region.c +385 -0
  16. data/ext/cairo/rb_cairo_surface.c +674 -199
  17. data/samples/blur.rb +2 -3
  18. data/samples/{pac2.rb → pac-nomralize.rb} +5 -6
  19. data/samples/pac-tee.rb +170 -0
  20. data/samples/pac.rb +2 -3
  21. data/samples/png.rb +2 -3
  22. data/samples/scalable.rb +2 -3
  23. data/samples/text-on-path.rb +2 -3
  24. data/samples/text2.rb +2 -3
  25. data/test/cairo-test-utils.rb +15 -0
  26. data/test/run-test.rb +5 -4
  27. data/test/test_context.rb +4 -4
  28. data/test/test_font_face.rb +34 -21
  29. data/test/test_recording_surface.rb +18 -0
  30. data/test/test_region.rb +102 -0
  31. data/test/test_script_device.rb +46 -0
  32. data/test/test_script_surface.rb +13 -0
  33. data/test/test_surface.rb +14 -4
  34. data/test/test_tee_surface.rb +32 -0
  35. data/test/test_xml_device.rb +22 -0
  36. data/test/test_xml_surface.rb +32 -0
  37. metadata +49 -77
  38. data/pkg-config.rb +0 -313
  39. data/test-unit/Rakefile +0 -30
  40. data/test-unit/bin/testrb +0 -5
  41. data/test-unit/lib/test/unit.rb +0 -280
  42. data/test-unit/lib/test/unit/assertionfailederror.rb +0 -14
  43. data/test-unit/lib/test/unit/assertions.rb +0 -722
  44. data/test-unit/lib/test/unit/attribute.rb +0 -125
  45. data/test-unit/lib/test/unit/autorunner.rb +0 -254
  46. data/test-unit/lib/test/unit/collector.rb +0 -43
  47. data/test-unit/lib/test/unit/collector/descendant.rb +0 -23
  48. data/test-unit/lib/test/unit/collector/dir.rb +0 -108
  49. data/test-unit/lib/test/unit/collector/load.rb +0 -135
  50. data/test-unit/lib/test/unit/collector/objectspace.rb +0 -34
  51. data/test-unit/lib/test/unit/color.rb +0 -61
  52. data/test-unit/lib/test/unit/diff.rb +0 -524
  53. data/test-unit/lib/test/unit/error.rb +0 -124
  54. data/test-unit/lib/test/unit/exceptionhandler.rb +0 -39
  55. data/test-unit/lib/test/unit/failure.rb +0 -110
  56. data/test-unit/lib/test/unit/fixture.rb +0 -185
  57. data/test-unit/lib/test/unit/notification.rb +0 -125
  58. data/test-unit/lib/test/unit/omission.rb +0 -143
  59. data/test-unit/lib/test/unit/pending.rb +0 -146
  60. data/test-unit/lib/test/unit/priority.rb +0 -146
  61. data/test-unit/lib/test/unit/runner/console.rb +0 -46
  62. data/test-unit/lib/test/unit/runner/emacs.rb +0 -8
  63. data/test-unit/lib/test/unit/testcase.rb +0 -281
  64. data/test-unit/lib/test/unit/testresult.rb +0 -89
  65. data/test-unit/lib/test/unit/testsuite.rb +0 -110
  66. data/test-unit/lib/test/unit/ui/console/outputlevel.rb +0 -14
  67. data/test-unit/lib/test/unit/ui/console/testrunner.rb +0 -195
  68. data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +0 -49
  69. data/test-unit/lib/test/unit/ui/testrunner.rb +0 -20
  70. data/test-unit/lib/test/unit/ui/testrunnermediator.rb +0 -77
  71. data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +0 -41
  72. data/test-unit/lib/test/unit/util/backtracefilter.rb +0 -41
  73. data/test-unit/lib/test/unit/util/observable.rb +0 -90
  74. data/test-unit/lib/test/unit/util/procwrapper.rb +0 -48
  75. data/test-unit/lib/test/unit/version.rb +0 -7
  76. data/test-unit/sample/adder.rb +0 -13
  77. data/test-unit/sample/subtracter.rb +0 -12
  78. data/test-unit/sample/tc_adder.rb +0 -18
  79. data/test-unit/sample/tc_subtracter.rb +0 -18
  80. data/test-unit/sample/ts_examples.rb +0 -7
  81. data/test-unit/test/collector/test_descendant.rb +0 -135
  82. data/test-unit/test/collector/test_dir.rb +0 -406
  83. data/test-unit/test/collector/test_load.rb +0 -333
  84. data/test-unit/test/collector/test_objectspace.rb +0 -98
  85. data/test-unit/test/run-test.rb +0 -13
  86. data/test-unit/test/test_assertions.rb +0 -693
  87. data/test-unit/test/test_attribute.rb +0 -86
  88. data/test-unit/test/test_color.rb +0 -37
  89. data/test-unit/test/test_diff.rb +0 -477
  90. data/test-unit/test/test_emacs_runner.rb +0 -60
  91. data/test-unit/test/test_error.rb +0 -26
  92. data/test-unit/test/test_failure.rb +0 -33
  93. data/test-unit/test/test_fixture.rb +0 -252
  94. data/test-unit/test/test_notification.rb +0 -33
  95. data/test-unit/test/test_omission.rb +0 -81
  96. data/test-unit/test/test_pending.rb +0 -70
  97. data/test-unit/test/test_priority.rb +0 -89
  98. data/test-unit/test/test_testcase.rb +0 -430
  99. data/test-unit/test/test_testresult.rb +0 -113
  100. data/test-unit/test/test_testsuite.rb +0 -129
  101. data/test-unit/test/testunit_test_util.rb +0 -14
  102. data/test-unit/test/ui/test_testrunmediator.rb +0 -20
  103. data/test-unit/test/util/test_backtracefilter.rb +0 -41
  104. data/test-unit/test/util/test_observable.rb +0 -102
  105. data/test-unit/test/util/test_procwrapper.rb +0 -36
  106. data/test/test_pkg_config.rb +0 -123
@@ -1,86 +0,0 @@
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
@@ -1,37 +0,0 @@
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
@@ -1,477 +0,0 @@
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