docdiff 0.6.5 → 0.6.6

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 (43) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +7 -7
  3. data/Guardfile +4 -4
  4. data/Makefile +1 -1
  5. data/Rakefile +6 -6
  6. data/bin/docdiff +1 -1
  7. data/devutil/Rakefile +12 -5
  8. data/devutil/char_by_charclass.rb +43 -20
  9. data/devutil/charclass_by_char.rb +40 -19
  10. data/devutil/jis0208.rb +263 -231
  11. data/devutil/jis0208_test.rb +196 -0
  12. data/doc/news.md +8 -0
  13. data/docdiff.gemspec +12 -10
  14. data/lib/doc_diff.rb +59 -60
  15. data/lib/docdiff/charstring.rb +225 -241
  16. data/lib/docdiff/cli.rb +285 -250
  17. data/lib/docdiff/diff/contours.rb +1 -1
  18. data/lib/docdiff/diff/editscript.rb +1 -1
  19. data/lib/docdiff/diff/rcsdiff.rb +1 -1
  20. data/lib/docdiff/diff/shortestpath.rb +1 -1
  21. data/lib/docdiff/diff/speculative.rb +1 -1
  22. data/lib/docdiff/diff/subsequence.rb +1 -1
  23. data/lib/docdiff/diff/unidiff.rb +1 -1
  24. data/lib/docdiff/diff.rb +1 -1
  25. data/lib/docdiff/difference.rb +71 -70
  26. data/lib/docdiff/document.rb +129 -109
  27. data/lib/docdiff/encoding/en_ascii.rb +64 -58
  28. data/lib/docdiff/encoding/ja_eucjp.rb +250 -235
  29. data/lib/docdiff/encoding/ja_sjis.rb +240 -226
  30. data/lib/docdiff/encoding/ja_utf8.rb +6952 -6939
  31. data/lib/docdiff/version.rb +1 -1
  32. data/lib/docdiff/view.rb +522 -438
  33. data/lib/docdiff.rb +2 -2
  34. data/test/charstring_test.rb +475 -351
  35. data/test/cli_test.rb +103 -101
  36. data/test/diff_test.rb +15 -16
  37. data/test/difference_test.rb +40 -31
  38. data/test/docdiff_test.rb +162 -136
  39. data/test/document_test.rb +280 -175
  40. data/test/test_helper.rb +2 -1
  41. data/test/view_test.rb +636 -497
  42. metadata +8 -8
  43. data/devutil/testjis0208.rb +0 -38
data/test/view_test.rb CHANGED
@@ -1,596 +1,735 @@
1
1
  #!/usr/bin/ruby
2
2
  # -*- coding: utf-8; -*-
3
- require 'test/unit'
4
- require 'docdiff/view'
5
- require 'docdiff/difference'
6
- require 'nkf'
7
3
 
8
- class TC_DocDiff_View < Test::Unit::TestCase
4
+ require "test/unit"
5
+ require "docdiff/view"
6
+ require "docdiff/difference"
7
+ require "nkf"
8
+
9
+ class TestView < Test::Unit::TestCase
9
10
  View = DocDiff::View
10
11
  Difference = DocDiff::Difference
11
12
 
12
- def setup()
13
- #
13
+ def setup
14
14
  end
15
15
 
16
- def test_scan_lines_cr()
16
+ def test_scan_lines_cr
17
17
  str = "A\r\rA\n\nA\r\n\r\nA\n\r\n\rA"
18
- expected = ["A\r", "\r", "A\n\nA\r", "\n\r", "\nA\n\r", "\n\r", "A"]
18
+ expected = ["A\r", "\r", "A\n\nA\r", "\n\r", "\nA\n\r", "\n\r", "A"]
19
19
  actual = str.scan_lines("CR")
20
20
  assert_equal(expected, actual)
21
21
  end
22
- def test_scan_lines_lf()
22
+
23
+ def test_scan_lines_lf
23
24
  str = "A\r\rA\n\nA\r\n\r\nA\n\r\n\rA"
24
- expected = ["A\r\rA\n", "\n", "A\r\n", "\r\n", "A\n", "\r\n", "\rA"]
25
+ expected = ["A\r\rA\n", "\n", "A\r\n", "\r\n", "A\n", "\r\n", "\rA"]
25
26
  actual = str.scan_lines("LF")
26
27
  assert_equal(expected, actual)
27
28
  end
28
- def test_scan_lines_crlf()
29
+
30
+ def test_scan_lines_crlf
29
31
  str = "A\r\rA\n\nA\r\n\r\nA\n\r\n\rA"
30
32
  expected = ["A\r\rA\n\nA\r\n", "\r\n", "A\n\r\n", "\rA"]
31
33
  actual = str.scan_lines("CRLF")
32
34
  assert_equal(expected, actual)
33
35
  end
34
36
 
35
- def test_source_lines_cr()
36
- array1 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\rA".split(//)
37
+ def test_source_lines_cr
38
+ array1 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\rA".split("")
37
39
  array2 = ["b", "c", "c"]
38
- difference = Difference.new(array1, array2)
39
- expected = ["A\r", "\r", "A\n\nA\r", "\n\r", "\nA\n\r", "\n\r", "A"]
40
- actual = View.new(difference, "US-ASCII", "CR").source_lines
40
+ expected = ["A\r", "\r", "A\n\nA\r", "\n\r", "\nA\n\r", "\n\r", "A"]
41
+ actual = Difference.new(array1, array2).to_view("US-ASCII", "CR").source_lines
41
42
  assert_equal(expected, actual)
42
43
  end
43
- def test_source_lines_cr2()
44
- array1 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\r".split(//)
44
+
45
+ def test_source_lines_cr2
46
+ array1 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\r".split("")
45
47
  array2 = ["b", "c", "c"]
46
- difference = Difference.new(array1, array2)
47
- expected = ["A\r", "\r", "A\n\nA\r", "\n\r", "\nA\n\r", "\n\r"]
48
- actual = View.new(difference, "US-ASCII", "CR").source_lines
48
+ expected = ["A\r", "\r", "A\n\nA\r", "\n\r", "\nA\n\r", "\n\r"]
49
+ actual = Difference.new(array1, array2).to_view("US-ASCII", "CR").source_lines
49
50
  assert_equal(expected, actual)
50
51
  end
51
- def test_source_lines_lf()
52
- array1 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\rA".split(//)
52
+
53
+ def test_source_lines_lf
54
+ array1 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\rA".split("")
53
55
  array2 = ["b", "c", "c"]
54
- difference = Difference.new(array1, array2)
55
- expected = ["A\r\rA\n", "\n", "A\r\n", "\r\n", "A\n", "\r\n", "\rA"]
56
- actual = View.new(difference, "US-ASCII", "LF").source_lines
56
+ expected = ["A\r\rA\n", "\n", "A\r\n", "\r\n", "A\n", "\r\n", "\rA"]
57
+ actual = Difference.new(array1, array2).to_view("US-ASCII", "LF").source_lines
57
58
  assert_equal(expected, actual)
58
59
  end
59
- def test_source_lines_lf2()
60
- array1 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\r".split(//)
60
+
61
+ def test_source_lines_lf2
62
+ array1 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\r".split("")
61
63
  array2 = ["b", "c", "c"]
62
- difference = Difference.new(array1, array2)
63
- expected = ["A\r\rA\n", "\n", "A\r\n", "\r\n", "A\n", "\r\n", "\r"]
64
- actual = View.new(difference, "US-ASCII", "LF").source_lines
64
+ expected = ["A\r\rA\n", "\n", "A\r\n", "\r\n", "A\n", "\r\n", "\r"]
65
+ actual = Difference.new(array1, array2).to_view("US-ASCII", "LF").source_lines
65
66
  assert_equal(expected, actual)
66
67
  end
67
- def test_source_lines_crlf()
68
- array1 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\rA".split(//)
68
+
69
+ def test_source_lines_crlf
70
+ array1 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\rA".split("")
69
71
  array2 = ["b", "c", "c"]
70
- difference = Difference.new(array1, array2)
71
- expected = ["A\r\rA\n\nA\r\n", "\r\n", "A\n\r\n", "\rA"]
72
- actual = View.new(difference, "US-ASCII", "CRLF").source_lines
72
+ expected = ["A\r\rA\n\nA\r\n", "\r\n", "A\n\r\n", "\rA"]
73
+ actual = Difference.new(array1, array2).to_view("US-ASCII", "CRLF").source_lines
73
74
  assert_equal(expected, actual)
74
75
  end
75
- def test_source_lines_crlf2()
76
- array1 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\r".split(//)
76
+
77
+ def test_source_lines_crlf2
78
+ array1 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\r".split("")
77
79
  array2 = ["b", "c", "c"]
78
- difference = Difference.new(array1, array2)
79
- expected = ["A\r\rA\n\nA\r\n", "\r\n", "A\n\r\n", "\r"]
80
- actual = View.new(difference, "US-ASCII", "CRLF").source_lines
80
+ expected = ["A\r\rA\n\nA\r\n", "\r\n", "A\n\r\n", "\r"]
81
+ actual = Difference.new(array1, array2).to_view("US-ASCII", "CRLF").source_lines
81
82
  assert_equal(expected, actual)
82
83
  end
83
- def test_source_lines_noeol()
84
+
85
+ def test_source_lines_noeol
84
86
  array1 = ["a", "b", "c"]
85
87
  array2 = ["b", "c", "c"]
86
- difference = Difference.new(array1, array2)
87
- expected = ["abc"]
88
- actual = View.new(difference, "US-ASCII", nil).source_lines
88
+ expected = ["abc"]
89
+ actual = Difference.new(array1, array2).to_view("US-ASCII", nil).source_lines
89
90
  assert_equal(expected, actual)
90
91
  end
91
- def test_target_lines_cr()
92
+
93
+ def test_target_lines_cr
92
94
  array1 = ["a", "b", "\n", "c"]
93
- array2 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\rA".split(//)
94
- difference = Difference.new(array1, array2)
95
- expected = ["A\r", "\r", "A\n\nA\r", "\n\r", "\nA\n\r", "\n\r", "A"]
96
- actual = View.new(difference, "US-ASCII", "CR").target_lines
95
+ array2 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\rA".split("")
96
+ expected = ["A\r", "\r", "A\n\nA\r", "\n\r", "\nA\n\r", "\n\r", "A"]
97
+ actual = Difference.new(array1, array2).to_view("US-ASCII", "CR").target_lines
97
98
  assert_equal(expected, actual)
98
99
  end
99
- def test_target_lines_cr2()
100
+
101
+ def test_target_lines_cr2
100
102
  array1 = ["a", "b", "\n", "c"]
101
- array2 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\r".split(//)
102
- difference = Difference.new(array1, array2)
103
- expected = ["A\r", "\r", "A\n\nA\r", "\n\r", "\nA\n\r", "\n\r"]
104
- actual = View.new(difference, "US-ASCII", "CR").target_lines
103
+ array2 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\r".split("")
104
+ expected = ["A\r", "\r", "A\n\nA\r", "\n\r", "\nA\n\r", "\n\r"]
105
+ actual = Difference.new(array1, array2).to_view("US-ASCII", "CR").target_lines
105
106
  assert_equal(expected, actual)
106
107
  end
107
- def test_target_lines_lf()
108
+
109
+ def test_target_lines_lf
108
110
  array1 = ["a", "b", "\n", "c"]
109
- array2 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\rA".split(//)
110
- difference = Difference.new(array1, array2)
111
- expected = ["A\r\rA\n", "\n", "A\r\n", "\r\n", "A\n", "\r\n", "\rA"]
112
- actual = View.new(difference, "US-ASCII", "LF").target_lines
111
+ array2 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\rA".split("")
112
+ expected = ["A\r\rA\n", "\n", "A\r\n", "\r\n", "A\n", "\r\n", "\rA"]
113
+ actual = Difference.new(array1, array2).to_view("US-ASCII", "LF").target_lines
113
114
  assert_equal(expected, actual)
114
115
  end
115
- def test_target_lines_lf2()
116
+
117
+ def test_target_lines_lf2
116
118
  array1 = ["a", "b", "\n", "c"]
117
- array2 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\r".split(//)
118
- difference = Difference.new(array1, array2)
119
- expected = ["A\r\rA\n", "\n", "A\r\n", "\r\n", "A\n", "\r\n", "\r"]
120
- actual = View.new(difference, "US-ASCII", "LF").target_lines
119
+ array2 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\r".split("")
120
+ expected = ["A\r\rA\n", "\n", "A\r\n", "\r\n", "A\n", "\r\n", "\r"]
121
+ actual = Difference.new(array1, array2).to_view("US-ASCII", "LF").target_lines
121
122
  assert_equal(expected, actual)
122
123
  end
123
- def test_target_lines_crlf()
124
+
125
+ def test_target_lines_crlf
124
126
  array1 = ["a", "b", "\n", "c"]
125
- array2 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\rA".split(//)
126
- difference = Difference.new(array1, array2)
127
+ array2 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\rA".split("")
127
128
  expected = ["A\r\rA\n\nA\r\n", "\r\n", "A\n\r\n", "\rA"]
128
- actual = View.new(difference, "US-ASCII", "CRLF").target_lines
129
+ actual = Difference.new(array1, array2).to_view("US-ASCII", "CRLF").target_lines
129
130
  assert_equal(expected, actual)
130
131
  end
131
- def test_target_lines_crlf2()
132
+
133
+ def test_target_lines_crlf2
132
134
  array1 = ["a", "b", "\n", "c"]
133
- array2 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\r".split(//)
134
- difference = Difference.new(array1, array2)
135
+ array2 = "A\r\rA\n\nA\r\n\r\nA\n\r\n\r".split("")
135
136
  expected = ["A\r\rA\n\nA\r\n", "\r\n", "A\n\r\n", "\r"]
136
- actual = View.new(difference, "US-ASCII", "CRLF").target_lines
137
+ actual = Difference.new(array1, array2).to_view("US-ASCII", "CRLF").target_lines
137
138
  assert_equal(expected, actual)
138
139
  end
139
- def test_target_lines_noeol()
140
+
141
+ def test_target_lines_noeol
140
142
  array1 = ["a", "b", "c"]
141
143
  array2 = ["b", "c", "c"]
142
- difference = Difference.new(array1, array2)
143
- expected = ["bcc"]
144
- actual = View.new(difference, "US-ASCII", nil).target_lines
144
+ expected = ["bcc"]
145
+ actual = Difference.new(array1, array2).to_view("US-ASCII", nil).target_lines
145
146
  assert_equal(expected, actual)
146
147
  end
147
148
 
148
- def test_to_tty_del_add_ascii()
149
- array1 = ['a', 'b', 'c']
150
- array2 = ['b', 'c', 'c']
151
- difference = Difference.new(array1, array2)
152
- expected = ["\033[7;4;31ma\033[0m",
153
- "b",
154
- "\033[7;1;34mc\033[0m",
155
- "c"]
156
- assert_equal(expected, View.new(difference, "US-ASCII", nil).to_tty(nil, false))
157
- end
158
- def test_to_tty_change_ascii()
159
- array1 = ['a', 'b', 'c']
160
- array2 = ['a', 'x', 'c']
161
- difference = Difference.new(array1, array2)
162
- expected = ["a",
163
- "\033[7;4;33mb\033[0m\033[7;1;32mx\033[0m",
164
- "c"]
165
- assert_equal(expected, View.new(difference, "US-ASCII", nil).to_tty(nil, false))
166
- end
167
- def test_to_tty_del_add_ja()
168
- array1 = ['あ', 'い', 'う']
169
- array2 = ['い', 'う', 'う']
170
- expected = ["\033[7;4;31mあ\033[0m",
171
- "い",
172
- "\033[7;1;34mう\033[0m",
173
- "う"]
174
- assert_equal(expected.map{|i|NKF.nkf("--euc",i)},
175
- View.new(Difference.new(array1.map{|i|NKF.nkf("--euc",i)},
176
- array2.map{|i|NKF.nkf("--euc",i)}),
177
- "EUC-JP", nil).to_tty(nil, false))
178
- assert_equal(expected.map{|i|NKF.nkf("--sjis",i)},
179
- View.new(Difference.new(array1.map{|i|NKF.nkf("--sjis",i)},
180
- array2.map{|i|NKF.nkf("--sjis",i)}),
181
- "Shift_JIS", nil).to_tty(nil, false))
182
- assert_equal(expected.map{|i|NKF.nkf("--utf8", i)},
183
- View.new(Difference.new(array1.map{|i|NKF.nkf("--utf8", i)},
184
- array2.map{|i|NKF.nkf("--utf8", i)}),
185
- "UTF-8", nil).to_tty(nil, false))
186
- end
187
- def test_to_tty_change_ja()
188
- array1 = ['あ', 'い', 'う']
189
- array2 = ['あ', '漢', 'う']
190
- expected = ["",
191
- "\033[7;4;33mい\033[0m\033[7;1;32m漢\033[0m",
192
- ""]
193
- assert_equal(expected.map{|i|NKF.nkf("--euc",i)},
194
- View.new(Difference.new(array1.map{|i|NKF.nkf("--euc",i)},
195
- array2.map{|i|NKF.nkf("--euc",i)}),
196
- "EUC-JP", nil).to_tty(nil, false))
197
- assert_equal(expected.map{|i|NKF.nkf("--sjis",i)},
198
- View.new(Difference.new(array1.map{|i|NKF.nkf("--sjis",i)},
199
- array2.map{|i|NKF.nkf("--sjis",i)}),
200
- "Shift_JIS", nil).to_tty(nil, false))
201
- assert_equal(expected.map{|i|NKF.nkf("--utf8", i)},
202
- View.new(Difference.new(array1.map{|i|NKF.nkf("--utf8", i)},
203
- array2.map{|i|NKF.nkf("--utf8", i)}),
204
- "UTF-8", nil).to_tty(nil, false))
205
- end
206
- def test_to_tty_digest()
149
+ def test_to_tty_del_add_ascii
150
+ array1 = ["a", "b", "c"]
151
+ array2 = ["b", "c", "c"]
152
+ expected = [
153
+ "\033[7;4;31ma\033[0m",
154
+ "b",
155
+ "\033[7;1;34mc\033[0m",
156
+ "c",
157
+ ]
158
+ view = Difference.new(array1, array2).to_view("US-ASCII", nil)
159
+ assert_equal(expected, view.to_tty(nil, false))
160
+ end
161
+
162
+ def test_to_tty_change_ascii
163
+ array1 = ["a", "b", "c"]
164
+ array2 = ["a", "x", "c"]
165
+ expected = [
166
+ "a",
167
+ "\033[7;4;33mb\033[0m\033[7;1;32mx\033[0m",
168
+ "c",
169
+ ]
170
+ view = Difference.new(array1, array2).to_view("US-ASCII", nil)
171
+ assert_equal(expected, view.to_tty(nil, false))
172
+ end
173
+
174
+ def test_to_tty_del_add_ja
175
+ array1 = ["\u3042", "\u3044", "\u3046"]
176
+ array2 = ["\u3044", "\u3046", "\u3046"]
177
+ expected = [
178
+ "\033[7;4;31mあ\033[0m",
179
+ "",
180
+ "\033[7;1;34mう\033[0m",
181
+ "",
182
+ ]
183
+ assert_equal(
184
+ expected.map { |i| NKF.nkf("--euc", i) },
185
+ Difference.new(
186
+ array1.map { |i| NKF.nkf("--euc", i) },
187
+ array2.map { |i| NKF.nkf("--euc", i) },
188
+ ).to_view("EUC-JP", nil).to_tty(nil, false),
189
+ )
190
+ assert_equal(
191
+ expected.map { |i| NKF.nkf("--sjis", i) },
192
+ Difference.new(
193
+ array1.map { |i| NKF.nkf("--sjis", i) },
194
+ array2.map { |i| NKF.nkf("--sjis", i) },
195
+ ).to_view("Shift_JIS", nil).to_tty(nil, false),
196
+ )
197
+ assert_equal(
198
+ expected.map { |i| NKF.nkf("--utf8", i) },
199
+ Difference.new(
200
+ array1.map { |i| NKF.nkf("--utf8", i) },
201
+ array2.map { |i| NKF.nkf("--utf8", i) },
202
+ ).to_view("UTF-8", nil).to_tty(nil, false),
203
+ )
204
+ end
205
+
206
+ def test_to_tty_change_ja
207
+ array1 = ["\u3042", "\u3044", "\u3046"]
208
+ array2 = ["\u3042", "\u6F22", "\u3046"]
209
+ expected = [
210
+ "あ",
211
+ "\033[7;4;33mい\033[0m\033[7;1;32m漢\033[0m",
212
+ "う",
213
+ ]
214
+ assert_equal(
215
+ expected.map { |i| NKF.nkf("--euc", i) },
216
+ Difference.new(
217
+ array1.map { |i| NKF.nkf("--euc", i) },
218
+ array2.map { |i| NKF.nkf("--euc", i) },
219
+ ).to_view("EUC-JP", nil).to_tty(nil, false),
220
+ )
221
+ assert_equal(
222
+ expected.map { |i| NKF.nkf("--sjis", i) },
223
+ Difference.new(
224
+ array1.map { |i| NKF.nkf("--sjis", i) },
225
+ array2.map { |i| NKF.nkf("--sjis", i) },
226
+ ).to_view("Shift_JIS", nil).to_tty(nil, false),
227
+ )
228
+ assert_equal(
229
+ expected.map { |i| NKF.nkf("--utf8", i) },
230
+ Difference.new(
231
+ array1.map { |i| NKF.nkf("--utf8", i) },
232
+ array2.map { |i| NKF.nkf("--utf8", i) },
233
+ ).to_view("UTF-8", nil).to_tty(nil, false),
234
+ )
235
+ end
236
+
237
+ def test_to_tty_digest
207
238
  array1 = ["a", "\n", "b", "c", "d", "e", "\n", "f", "\n"]
208
239
  array2 = ["c", "d", "X", "\n", "Y", "e", "\n", "F", "\n"]
209
- expected = ["----\n",
210
- "1-2,(1)\n\033[7;4;31ma\nb\033[0mcd\n----\n",
211
- "(2),1-2\ncd\033[7;1;34mX\nY\033[0me\n\n----\n",
212
- "3,3\ne\n\033[7;4;33mf\033[0m\033[7;1;32mF\033[0m\n\n----\n"]
213
- assert_equal(expected, View.new(Difference.new(array1, array2), "US-ASCII", "LF").to_tty_digest(nil, false))
240
+ expected = [
241
+ "----\n",
242
+ "1-2,(1)\n\033[7;4;31ma\nb\033[0mcd\n----\n",
243
+ "(2),1-2\ncd\033[7;1;34mX\nY\033[0me\n\n----\n",
244
+ "3,3\ne\n\033[7;4;33mf\033[0m\033[7;1;32mF\033[0m\n\n----\n",
245
+ ]
246
+ view = View.new(Difference.new(array1, array2), "US-ASCII", "LF")
247
+ assert_equal(expected, view.to_tty_digest(nil, false))
214
248
  end
215
- def test_to_tty_digest_block()
249
+
250
+ def test_to_tty_digest_block
216
251
  array1 = ["a", "\n", "b", "c", "d", "e", "\n", "f", "\n"]
217
252
  array2 = ["c", "d", "X", "\n", "Y", "e", "\n", "F", "\n"]
218
- expected = ["----\n",
219
- "1-2,(1)\na\nbcd\n\033[7;4;31ma\nb\033[0mcd\n----\n",
220
- "(2),1-2\ncde\n\ncd\033[7;1;34mX\nY\033[0me\n\n----\n",
221
- "3,3\ne\n\033[7;4;33mf\033[0m\n\ne\n\033[7;1;32mF\033[0m\n\n----\n"]
222
- assert_equal(expected, View.new(Difference.new(array1, array2), "US-ASCII", "LF").to_tty_digest({:display=>'block'}, false))
223
- end
224
-
225
- def test_to_html_cr_ascii()
226
- array1 = ['a', "\r"]
227
- array2 = ['a', "\r"]
228
- difference = Difference.new(array1, array2)
229
- expected = ["<span class=\"common\">a<br />\r</span>"]
230
- assert_equal(expected, View.new(difference, "US-ASCII", "CR").to_html(nil, false))
231
- end
232
- def test_to_html_lf_ascii()
233
- array1 = ['a', "\n"]
234
- array2 = ['a', "\n"]
235
- difference = Difference.new(array1, array2)
236
- expected = ["<span class=\"common\">a<br />\n</span>"]
237
- assert_equal(expected, View.new(difference, "US-ASCII", "LF").to_html(nil, false))
238
- end
239
- def test_to_html_crlf_ascii()
240
- array1 = ['a', "\r\n"]
241
- array2 = ['a', "\r\n"]
242
- difference = Difference.new(array1, array2)
243
- expected = ["<span class=\"common\">a<br />\r\n</span>"]
244
- assert_equal(expected, View.new(difference, "US-ASCII", "CRLF").to_html(nil, false))
245
- end
246
- def test_to_html_escaping_ascii()
247
- array1 = ['<>& ']
248
- array2 = ['<>& ']
249
- difference = Difference.new(array1, array2)
250
- expected = ["<span class=\"common\">&lt;&gt;&amp;&nbsp;&nbsp; </span>"]
251
- assert_equal(expected, View.new(difference, "US-ASCII", nil).to_html(nil, false))
252
- end
253
- def test_to_html_digest()
253
+ expected = [
254
+ "----\n",
255
+ "1-2,(1)\na\nbcd\n\033[7;4;31ma\nb\033[0mcd\n----\n",
256
+ "(2),1-2\ncde\n\ncd\033[7;1;34mX\nY\033[0me\n\n----\n",
257
+ "3,3\ne\n\033[7;4;33mf\033[0m\n\ne\n\033[7;1;32mF\033[0m\n\n----\n",
258
+ ]
259
+ view = View.new(Difference.new(array1, array2), "US-ASCII", "LF")
260
+ assert_equal(expected, view.to_tty_digest({ display: "block" }, false))
261
+ end
262
+
263
+ def test_to_html_cr_ascii
264
+ array1 = ["a", "\r"]
265
+ array2 = ["a", "\r"]
266
+ expected = ["<span class=\"common\">a<br />\r</span>"]
267
+ view = Difference.new(array1, array2).to_view("US-ASCII", "CR")
268
+ assert_equal(expected, view.to_html(nil, false))
269
+ end
270
+
271
+ def test_to_html_lf_ascii
272
+ array1 = ["a", "\n"]
273
+ array2 = ["a", "\n"]
274
+ expected = ["<span class=\"common\">a<br />\n</span>"]
275
+ view = Difference.new(array1, array2).to_view("US-ASCII", "LF")
276
+ assert_equal(expected, view.to_html(nil, false))
277
+ end
278
+
279
+ def test_to_html_crlf_ascii
280
+ array1 = ["a", "\r\n"]
281
+ array2 = ["a", "\r\n"]
282
+ expected = ["<span class=\"common\">a<br />\r\n</span>"]
283
+ view = Difference.new(array1, array2).to_view("US-ASCII", "CRLF")
284
+ assert_equal(expected, view.to_html(nil, false))
285
+ end
286
+
287
+ def test_to_html_escaping_ascii
288
+ array1 = ["<>& "]
289
+ array2 = ["<>& "]
290
+ expected = ["<span class=\"common\">&lt;&gt;&amp;&nbsp;&nbsp; </span>"]
291
+ view = Difference.new(array1, array2).to_view("US-ASCII", nil)
292
+ assert_equal(expected, view.to_html(nil, false))
293
+ end
294
+
295
+ def test_to_html_digest
254
296
  array1 = ["a", "\n", "b", "c", "d", "e", "\n", "f", "\n"]
255
297
  array2 = ["c", "d", "X", "\n", "Y", "e", "\n", "F", "\n"]
256
- expected = ["<ul>",
257
- "<li class=\"entry\"><p class=\"position\">1-2,(1)</p><blockquote class=\"body\"><p class=\"body\"><span class=\"del\"><del>a<br />\nb</del></span>cd</p></blockquote></li>\n",
258
- "<li class=\"entry\"><p class=\"position\">(2),1-2</p><blockquote class=\"body\"><p class=\"body\">cd<span class=\"add\"><ins>X<br />\nY</ins></span>e<br />\n</p></blockquote></li>\n",
259
- "<li class=\"entry\"><p class=\"position\">3,3</p><blockquote class=\"body\"><p class=\"body\">e<br />\n<span class=\"before-change\"><del>f</del></span><span class=\"after-change\"><ins>F</ins></span><br />\n</p></blockquote></li>\n",
260
- "</ul>"]
261
- assert_equal(expected, View.new(Difference.new(array1, array2), "US-ASCII", "LF").to_html_digest(nil,false))
262
- end
263
- def test_to_html_digest_block()
298
+ expected = [
299
+ "<ul>",
300
+ "<li class=\"entry\"><p class=\"position\">1-2,(1)</p><blockquote class=\"body\"><p class=\"body\"><span class=\"del\"><del>a<br />\nb</del></span>cd</p></blockquote></li>\n",
301
+ "<li class=\"entry\"><p class=\"position\">(2),1-2</p><blockquote class=\"body\"><p class=\"body\">cd<span class=\"add\"><ins>X<br />\nY</ins></span>e<br />\n</p></blockquote></li>\n",
302
+ "<li class=\"entry\"><p class=\"position\">3,3</p><blockquote class=\"body\"><p class=\"body\">e<br />\n<span class=\"before-change\"><del>f</del></span><span class=\"after-change\"><ins>F</ins></span><br />\n</p></blockquote></li>\n",
303
+ "</ul>",
304
+ ]
305
+ view = Difference.new(array1, array2).to_view("US-ASCII", "LF")
306
+ assert_equal(expected, view.to_html_digest(nil, false))
307
+ end
308
+
309
+ def test_to_html_digest_block
264
310
  array1 = ["a", "\n", "b", "c", "d", "e", "\n", "f", "\n"]
265
311
  array2 = ["c", "d", "X", "\n", "Y", "e", "\n", "F", "\n"]
266
- expected = ["<ul>",
267
- "<li class=\"entry\"><p class=\"position\">1-2,(1)</p><blockquote class=\"body\"><p class=\"body\">a<br />\nbcd</p><p class=\"body\"><span class=\"del\"><del>a<br />\nb</del></span>cd</p></blockquote></li>\n",
268
- "<li class=\"entry\"><p class=\"position\">(2),1-2</p><blockquote class=\"body\"><p class=\"body\">cde<br />\n</p><p class=\"body\">cd<span class=\"add\"><ins>X<br />\nY</ins></span>e<br />\n</p></blockquote></li>\n",
269
- "<li class=\"entry\"><p class=\"position\">3,3</p><blockquote class=\"body\"><p class=\"body\">e<br />\n<span class=\"before-change\"><del>f</del></span><br />\n</p><p class=\"body\">e<br />\n<span class=\"after-change\"><ins>F</ins></span><br />\n</p></blockquote></li>\n",
270
- "</ul>"]
271
- assert_equal(expected, View.new(Difference.new(array1, array2), "US-ASCII", "LF").to_html_digest({:display=>'block'},false))
272
- end
273
-
274
- def test_to_html_del_add_ascii()
275
- array1 = ['a', 'b', 'c']
276
- array2 = ['b', 'c', 'c']
277
- difference = Difference.new(array1, array2)
278
- expected = ['<span class="del"><del>a</del></span>',
279
- '<span class="common">b</span>',
280
- '<span class="add"><ins>c</ins></span>',
281
- '<span class="common">c</span>']
282
- assert_equal(expected, View.new(difference, "US-ASCII", nil).to_html(nil, false))
283
- end
284
- def test_to_html_change_ascii()
285
- array1 = ['a', 'b', 'c']
286
- array2 = ['a', 'x', 'c']
287
- difference = Difference.new(array1, array2)
288
- expected = ['<span class="common">a</span>',
289
- '<span class="before-change"><del>b</del></span><span class="after-change"><ins>x</ins></span>',
290
- '<span class="common">c</span>']
291
- assert_equal(expected, View.new(difference, "US-ASCII", nil).to_html(nil, false))
292
- end
293
- def test_to_html_del_add_ja()
294
- array1 = ['あ', 'い', 'う']
295
- array2 = ['い', 'う', 'う']
296
- expected = ['<span class="del"><del>あ</del></span>',
297
- '<span class="common">い</span>',
298
- '<span class="add"><ins>う</ins></span>',
299
- '<span class="common">う</span>']
300
- assert_equal(expected.map{|i|NKF.nkf("--euc",i)},
301
- View.new(Difference.new(array1.map{|i|NKF.nkf("--euc",i)},
302
- array2.map{|i|NKF.nkf("--euc",i)}),
303
- "EUC-JP", nil).to_html(nil, false))
304
- assert_equal(expected.map{|i|NKF.nkf("--sjis",i)},
305
- View.new(Difference.new(array1.map{|i|NKF.nkf("--sjis",i)},
306
- array2.map{|i|NKF.nkf("--sjis",i)}),
307
- "Shift_JIS", nil).to_html(nil, false))
308
- assert_equal(expected.map{|i|NKF.nkf("--utf8", i)},
309
- View.new(Difference.new(array1.map{|i|NKF.nkf("--utf8", i)},
310
- array2.map{|i|NKF.nkf("--utf8", i)}),
311
- "UTF-8", nil).to_html(nil, false))
312
- end
313
- def test_to_html_change_ja()
314
- array1 = ['あ', 'い', 'う']
315
- array2 = ['あ', '漢', 'う']
316
- expected = ['<span class="common">あ</span>',
317
- '<span class="before-change"><del>い</del></span><span class="after-change"><ins>漢</ins></span>',
318
- '<span class="common">う</span>']
319
- assert_equal(expected.map{|i|NKF.nkf("--euc",i)},
320
- View.new(Difference.new(array1.map{|i|NKF.nkf("--euc",i)},
321
- array2.map{|i|NKF.nkf("--euc",i)}),
322
- "EUC-JP", nil).to_html(nil, false))
323
- assert_equal(expected.map{|i|NKF.nkf("--sjis",i)},
324
- View.new(Difference.new(array1.map{|i|NKF.nkf("--sjis",i)},
325
- array2.map{|i|NKF.nkf("--sjis",i)}),
326
- "Shift_JIS", nil).to_html(nil, false))
327
- assert_equal(expected.map{|i|NKF.nkf("--utf8", i)},
328
- View.new(Difference.new(array1.map{|i|NKF.nkf("--utf8", i)},
329
- array2.map{|i|NKF.nkf("--utf8", i)}),
330
- "UTF-8", nil).to_html(nil, false))
331
- end
332
-
333
- def test_to_manued_del_add_ascii()
334
- array1 = ['a', 'b', 'c']
335
- array2 = ['b', 'c', 'c']
336
- difference = Difference.new(array1, array2)
337
- expected = ['[a/]',
338
- 'b',
339
- '[/c]',
340
- 'c']
341
- assert_equal(expected, View.new(difference, "US-ASCII", nil).to_manued(nil, false))
342
- end
343
- def test_to_manued_change_ascii()
344
- array1 = ['a', 'b', 'c']
345
- array2 = ['a', 'x', 'c']
346
- difference = Difference.new(array1, array2)
347
- expected = ['a',
348
- '[b/x]',
349
- 'c']
350
- assert_equal(expected, View.new(difference, "US-ASCII", nil).to_manued(nil, false))
351
- end
352
- def test_to_manued_del_add_ja()
353
- array1 = ['あ', 'い', 'う']
354
- array2 = ['い', 'う', 'う']
355
- expected = ['[あ/]',
356
- 'い',
357
- '[/う]',
358
- 'う']
359
- assert_equal(expected.map{|i|NKF.nkf("--euc",i)},
360
- View.new(Difference.new(array1.map{|i|NKF.nkf("--euc",i)},
361
- array2.map{|i|NKF.nkf("--euc",i)}),
362
- "EUC-JP", nil).to_manued(nil, false))
363
- assert_equal(expected.map{|i|NKF.nkf("--sjis",i)},
364
- View.new(Difference.new(array1.map{|i|NKF.nkf("--sjis",i)},
365
- array2.map{|i|NKF.nkf("--sjis",i)}),
366
- "Shift_JIS", nil).to_manued(nil, false))
367
- assert_equal(expected.map{|i|NKF.nkf("--utf8", i)},
368
- View.new(Difference.new(array1.map{|i|NKF.nkf("--utf8", i)},
369
- array2.map{|i|NKF.nkf("--utf8", i)}),
370
- "UTF-8", nil).to_manued(nil, false))
371
- end
372
- def test_to_manued_change_ja()
373
- array1 = ['あ', 'い', 'う']
374
- array2 = ['あ', '漢', 'う']
375
- expected = ['あ',
376
- '[い/漢]',
377
- 'う']
378
- assert_equal(expected.map{|i|NKF.nkf("--euc",i)},
379
- View.new(Difference.new(array1.map{|i|NKF.nkf("--euc",i)},
380
- array2.map{|i|NKF.nkf("--euc",i)}),
381
- "EUC-JP", nil).to_manued(nil, false))
382
- assert_equal(expected.map{|i|NKF.nkf("--sjis",i)},
383
- View.new(Difference.new(array1.map{|i|NKF.nkf("--sjis",i)},
384
- array2.map{|i|NKF.nkf("--sjis",i)}),
385
- "Shift_JIS", nil).to_manued(nil, false))
386
- assert_equal(expected.map{|i|NKF.nkf("--utf8", i)},
387
- View.new(Difference.new(array1.map{|i|NKF.nkf("--utf8", i)},
388
- array2.map{|i|NKF.nkf("--utf8", i)}),
389
- "UTF-8", nil).to_manued(nil, false))
390
- end
391
- def test_to_manued_escaping_ascii()
392
- array1 = ['a', '[/;]~', 'b', '[/;]~']
393
- array2 = ['a', '[/;]~', 'b']
394
- difference = Difference.new(array1, array2)
395
- expected = ["a~[/;]~~b", "[~[~/~;~]~~/]"]
396
- assert_equal(expected, View.new(difference, "US-ASCII", nil).to_manued(nil, false))
397
- end
398
- def test_to_manued_digest()
312
+ expected = [
313
+ "<ul>",
314
+ "<li class=\"entry\"><p class=\"position\">1-2,(1)</p><blockquote class=\"body\"><p class=\"body\">a<br />\nbcd</p><p class=\"body\"><span class=\"del\"><del>a<br />\nb</del></span>cd</p></blockquote></li>\n",
315
+ "<li class=\"entry\"><p class=\"position\">(2),1-2</p><blockquote class=\"body\"><p class=\"body\">cde<br />\n</p><p class=\"body\">cd<span class=\"add\"><ins>X<br />\nY</ins></span>e<br />\n</p></blockquote></li>\n",
316
+ "<li class=\"entry\"><p class=\"position\">3,3</p><blockquote class=\"body\"><p class=\"body\">e<br />\n<span class=\"before-change\"><del>f</del></span><br />\n</p><p class=\"body\">e<br />\n<span class=\"after-change\"><ins>F</ins></span><br />\n</p></blockquote></li>\n",
317
+ "</ul>",
318
+ ]
319
+ view = View.new(Difference.new(array1, array2), "US-ASCII", "LF")
320
+ assert_equal(expected, view.to_html_digest({ display: "block" }, false))
321
+ end
322
+
323
+ def test_to_html_del_add_ascii
324
+ array1 = ["a", "b", "c"]
325
+ array2 = ["b", "c", "c"]
326
+ expected = [
327
+ '<span class="del"><del>a</del></span>',
328
+ '<span class="common">b</span>',
329
+ '<span class="add"><ins>c</ins></span>',
330
+ '<span class="common">c</span>',
331
+ ]
332
+ view = Difference.new(array1, array2).to_view("US-ASCII", nil)
333
+ assert_equal(expected, view.to_html(nil, false))
334
+ end
335
+
336
+ def test_to_html_change_ascii
337
+ array1 = ["a", "b", "c"]
338
+ array2 = ["a", "x", "c"]
339
+ expected = [
340
+ '<span class="common">a</span>',
341
+ '<span class="before-change"><del>b</del></span><span class="after-change"><ins>x</ins></span>',
342
+ '<span class="common">c</span>',
343
+ ]
344
+ view = Difference.new(array1, array2).to_view("US-ASCII", nil)
345
+ assert_equal(expected, view.to_html(nil, false))
346
+ end
347
+
348
+ def test_to_html_del_add_ja
349
+ array1 = ["\u3042", "\u3044", "\u3046"]
350
+ array2 = ["\u3044", "\u3046", "\u3046"]
351
+ expected = [
352
+ '<span class="del"><del>あ</del></span>',
353
+ '<span class="common">い</span>',
354
+ '<span class="add"><ins>う</ins></span>',
355
+ '<span class="common">う</span>',
356
+ ]
357
+ assert_equal(
358
+ expected.map { |i| NKF.nkf("--euc", i) },
359
+ Difference.new(
360
+ array1.map { |i| NKF.nkf("--euc", i) },
361
+ array2.map { |i| NKF.nkf("--euc", i) },
362
+ ).to_view("EUC-JP", nil).to_html(nil, false),
363
+ )
364
+ assert_equal(
365
+ expected.map { |i| NKF.nkf("--sjis", i) },
366
+ Difference.new(
367
+ array1.map { |i| NKF.nkf("--sjis", i) },
368
+ array2.map { |i| NKF.nkf("--sjis", i) },
369
+ ).to_view("Shift_JIS", nil).to_html(nil, false),
370
+ )
371
+ assert_equal(
372
+ expected.map { |i| NKF.nkf("--utf8", i) },
373
+ Difference.new(
374
+ array1.map { |i| NKF.nkf("--utf8", i) },
375
+ array2.map { |i| NKF.nkf("--utf8", i) },
376
+ ).to_view("UTF-8", nil).to_html(nil, false),
377
+ )
378
+ end
379
+
380
+ def test_to_html_change_ja
381
+ array1 = ["\u3042", "\u3044", "\u3046"]
382
+ array2 = ["\u3042", "\u6F22", "\u3046"]
383
+ expected = [
384
+ '<span class="common">あ</span>',
385
+ '<span class="before-change"><del>い</del></span><span class="after-change"><ins>漢</ins></span>',
386
+ '<span class="common">う</span>',
387
+ ]
388
+ assert_equal(
389
+ expected.map { |i| NKF.nkf("--euc", i) },
390
+ Difference.new(
391
+ array1.map { |i| NKF.nkf("--euc", i) },
392
+ array2.map { |i| NKF.nkf("--euc", i) },
393
+ ).to_view("EUC-JP", nil).to_html(nil, false),
394
+ )
395
+ assert_equal(
396
+ expected.map { |i| NKF.nkf("--sjis", i) },
397
+ Difference.new(
398
+ array1.map { |i| NKF.nkf("--sjis", i) },
399
+ array2.map { |i| NKF.nkf("--sjis", i) },
400
+ ).to_view("Shift_JIS", nil).to_html(nil, false),
401
+ )
402
+ assert_equal(
403
+ expected.map { |i| NKF.nkf("--utf8", i) },
404
+ Difference.new(
405
+ array1.map { |i| NKF.nkf("--utf8", i) },
406
+ array2.map { |i| NKF.nkf("--utf8", i) },
407
+ ).to_view("UTF-8", nil).to_html(nil, false),
408
+ )
409
+ end
410
+
411
+ def test_to_manued_del_add_ascii
412
+ array1 = ["a", "b", "c"]
413
+ array2 = ["b", "c", "c"]
414
+ expected = ["[a/]", "b", "[/c]", "c"]
415
+ view = Difference.new(array1, array2).to_view("US-ASCII", nil)
416
+ assert_equal(expected, view.to_manued(nil, false))
417
+ end
418
+
419
+ def test_to_manued_change_ascii
420
+ array1 = ["a", "b", "c"]
421
+ array2 = ["a", "x", "c"]
422
+ expected = ["a", "[b/x]", "c"]
423
+ view = Difference.new(array1, array2).to_view("US-ASCII", nil)
424
+ assert_equal(expected, view.to_manued(nil, false))
425
+ end
426
+
427
+ def test_to_manued_del_add_ja
428
+ array1 = ["\u3042", "\u3044", "\u3046"]
429
+ array2 = ["\u3044", "\u3046", "\u3046"]
430
+ expected = ["[\u3042/]", "\u3044", "[/\u3046]", "\u3046"]
431
+ assert_equal(
432
+ expected.map { |i| NKF.nkf("--euc", i) },
433
+ Difference.new(
434
+ array1.map { |i| NKF.nkf("--euc", i) },
435
+ array2.map { |i| NKF.nkf("--euc", i) },
436
+ ).to_view("EUC-JP", nil).to_manued(nil, false),
437
+ )
438
+ assert_equal(
439
+ expected.map { |i| NKF.nkf("--sjis", i) },
440
+ Difference.new(
441
+ array1.map { |i| NKF.nkf("--sjis", i) },
442
+ array2.map { |i| NKF.nkf("--sjis", i) },
443
+ ).to_view("Shift_JIS", nil).to_manued(nil, false),
444
+ )
445
+ assert_equal(
446
+ expected.map { |i| NKF.nkf("--utf8", i) },
447
+ Difference.new(
448
+ array1.map { |i| NKF.nkf("--utf8", i) },
449
+ array2.map { |i| NKF.nkf("--utf8", i) },
450
+ ).to_view("UTF-8", nil).to_manued(nil, false),
451
+ )
452
+ end
453
+
454
+ def test_to_manued_change_ja
455
+ array1 = ["\u3042", "\u3044", "\u3046"]
456
+ array2 = ["\u3042", "\u6F22", "\u3046"]
457
+ expected = ["\u3042", "[\u3044/\u6F22]", "\u3046"]
458
+ assert_equal(
459
+ expected.map { |i| NKF.nkf("--euc", i) },
460
+ Difference.new(
461
+ array1.map { |i| NKF.nkf("--euc", i) },
462
+ array2.map { |i| NKF.nkf("--euc", i) },
463
+ ).to_view("EUC-JP", nil).to_manued(nil, false),
464
+ )
465
+ assert_equal(
466
+ expected.map { |i| NKF.nkf("--sjis", i) },
467
+ Difference.new(
468
+ array1.map { |i| NKF.nkf("--sjis", i) },
469
+ array2.map { |i| NKF.nkf("--sjis", i) },
470
+ ).to_view("Shift_JIS", nil).to_manued(nil, false),
471
+ )
472
+ assert_equal(
473
+ expected.map { |i| NKF.nkf("--utf8", i) },
474
+ Difference.new(
475
+ array1.map { |i| NKF.nkf("--utf8", i) },
476
+ array2.map { |i| NKF.nkf("--utf8", i) },
477
+ ).to_view("UTF-8", nil).to_manued(nil, false),
478
+ )
479
+ end
480
+
481
+ def test_to_manued_escaping_ascii
482
+ array1 = ["a", "[/;]~", "b", "[/;]~"]
483
+ array2 = ["a", "[/;]~", "b"]
484
+ expected = ["a~[/;]~~b", "[~[~/~;~]~~/]"]
485
+ view = Difference.new(array1, array2).to_view("US-ASCII", nil)
486
+ assert_equal(expected, view.to_manued(nil, false))
487
+ end
488
+
489
+ def test_to_manued_digest
399
490
  array1 = ["a", "\n", "b", "c", "d", "e", "\n", "f", "\n"]
400
491
  array2 = ["c", "d", "X", "\n", "Y", "e", "\n", "F", "\n"]
401
- expected = ["----\n",
402
- "1-2,(1)\n[a\nb/]cd\n----\n",
403
- "(2),1-2\ncd[/X\nY]e\n\n----\n",
404
- "3,3\ne\n[f/F]\n\n----\n"]
405
- assert_equal(expected, View.new(Difference.new(array1, array2), "US-ASCII", "LF").to_manued_digest(nil,false))
492
+ expected = [
493
+ "----\n",
494
+ "1-2,(1)\n[a\nb/]cd\n----\n",
495
+ "(2),1-2\ncd[/X\nY]e\n\n----\n",
496
+ "3,3\ne\n[f/F]\n\n----\n",
497
+ ]
498
+ view = Difference.new(array1, array2).to_view("US-ASCII", "LF")
499
+ assert_equal(expected, view.to_manued_digest(nil, false))
406
500
  end
407
- def test_to_manued_digest_block()
501
+
502
+ def test_to_manued_digest_block
408
503
  array1 = ["a", "\n", "b", "c", "d", "e", "\n", "f", "\n"]
409
504
  array2 = ["c", "d", "X", "\n", "Y", "e", "\n", "F", "\n"]
410
- expected = ["----\n",
411
- "1-2,(1)\na\nbcd\n[a\nb/]cd\n----\n",
412
- "(2),1-2\ncde\n\ncd[/X\nY]e\n\n----\n",
413
- "3,3\ne\n[f/]\n\ne\n[/F]\n\n----\n"]
414
- assert_equal(expected, View.new(Difference.new(array1, array2), "US-ASCII", "LF").to_manued_digest({:display=>'block'},false))
415
- end
416
-
417
- def test_to_wdiff_del_add_ascii()
418
- array1 = ['a', 'b', 'c']
419
- array2 = ['b', 'c', 'c']
420
- difference = Difference.new(array1, array2)
421
- expected = ['[-a-]',
422
- 'b',
423
- '{+c+}',
424
- 'c']
425
- assert_equal(expected, View.new(difference, "US-ASCII", nil).to_wdiff(nil, false))
426
- end
427
- def test_to_wdiff_change_ascii()
428
- array1 = ['a', 'b', 'c']
429
- array2 = ['a', 'x', 'c']
430
- difference = Difference.new(array1, array2)
431
- expected = ['a',
432
- '[-b-]{+x+}',
433
- 'c']
434
- assert_equal(expected, View.new(difference, "US-ASCII", nil).to_wdiff(nil, false))
435
- end
436
- def test_to_wdiff_del_add_ja()
437
- array1 = ['あ', 'い', 'う']
438
- array2 = ['い', 'う', 'う']
439
- expected = ['[-あ-]',
440
- 'い',
441
- '{+う+}',
442
- 'う']
443
- assert_equal(expected.map{|i|NKF.nkf("--euc",i)},
444
- View.new(Difference.new(array1.map{|i|NKF.nkf("--euc",i)},
445
- array2.map{|i|NKF.nkf("--euc",i)}),
446
- "EUC-JP", nil).to_wdiff(nil, false))
447
- assert_equal(expected.map{|i|NKF.nkf("--sjis",i)},
448
- View.new(Difference.new(array1.map{|i|NKF.nkf("--sjis",i)},
449
- array2.map{|i|NKF.nkf("--sjis",i)}),
450
- "Shift_JIS", nil).to_wdiff(nil, false))
451
- assert_equal(expected.map{|i|NKF.nkf("--utf8", i)},
452
- View.new(Difference.new(array1.map{|i|NKF.nkf("--utf8", i)},
453
- array2.map{|i|NKF.nkf("--utf8", i)}),
454
- "UTF-8", nil).to_wdiff(nil, false))
455
- end
456
- def test_to_wdiff_change_ja()
457
- array1 = ['あ', 'い', 'う']
458
- array2 = ['あ', '漢', 'う']
459
- expected = ['あ',
460
- '[-い-]{+漢+}',
461
- 'う']
462
- assert_equal(expected.map{|i|NKF.nkf("--euc",i)},
463
- View.new(Difference.new(array1.map{|i|NKF.nkf("--euc",i)},
464
- array2.map{|i|NKF.nkf("--euc",i)}),
465
- "EUC-JP", nil).to_wdiff(nil, false))
466
- assert_equal(expected.map{|i|NKF.nkf("--sjis",i)},
467
- View.new(Difference.new(array1.map{|i|NKF.nkf("--sjis",i)},
468
- array2.map{|i|NKF.nkf("--sjis",i)}),
469
- "Shift_JIS", nil).to_wdiff(nil, false))
470
- assert_equal(expected.map{|i|NKF.nkf("--utf8", i)},
471
- View.new(Difference.new(array1.map{|i|NKF.nkf("--utf8", i)},
472
- array2.map{|i|NKF.nkf("--utf8", i)}),
473
- "UTF-8", nil).to_wdiff(nil, false))
474
- end
475
- def test_to_wdiff_digest()
505
+ expected = [
506
+ "----\n",
507
+ "1-2,(1)\na\nbcd\n[a\nb/]cd\n----\n",
508
+ "(2),1-2\ncde\n\ncd[/X\nY]e\n\n----\n",
509
+ "3,3\ne\n[f/]\n\ne\n[/F]\n\n----\n",
510
+ ]
511
+ view = Difference.new(array1, array2).to_view("US-ASCII", "LF")
512
+ assert_equal(expected, view.to_manued_digest({ display: "block" }, false))
513
+ end
514
+
515
+ def test_to_wdiff_del_add_ascii
516
+ array1 = ["a", "b", "c"]
517
+ array2 = ["b", "c", "c"]
518
+ expected = ["[-a-]", "b", "{+c+}", "c"]
519
+ view = Difference.new(array1, array2).to_view("US-ASCII", nil)
520
+ assert_equal(expected, view.to_wdiff(nil, false))
521
+ end
522
+
523
+ def test_to_wdiff_change_ascii
524
+ array1 = ["a", "b", "c"]
525
+ array2 = ["a", "x", "c"]
526
+ expected = ["a", "[-b-]{+x+}", "c"]
527
+ view = Difference.new(array1, array2).to_view("US-ASCII", nil)
528
+ assert_equal(expected, view.to_wdiff(nil, false))
529
+ end
530
+
531
+ def test_to_wdiff_del_add_ja
532
+ array1 = ["\u3042", "\u3044", "\u3046"]
533
+ array2 = ["\u3044", "\u3046", "\u3046"]
534
+ expected = ["[-\u3042-]", "\u3044", "{+\u3046+}", "\u3046"]
535
+ assert_equal(
536
+ expected.map { |i| NKF.nkf("--euc", i) },
537
+ Difference.new(
538
+ array1.map { |i| NKF.nkf("--euc", i) },
539
+ array2.map { |i| NKF.nkf("--euc", i) },
540
+ ).to_view("EUC-JP", nil).to_wdiff(nil, false),
541
+ )
542
+ assert_equal(
543
+ expected.map { |i| NKF.nkf("--sjis", i) },
544
+ Difference.new(
545
+ array1.map { |i| NKF.nkf("--sjis", i) },
546
+ array2.map { |i| NKF.nkf("--sjis", i) },
547
+ ).to_view("Shift_JIS", nil).to_wdiff(nil, false),
548
+ )
549
+ assert_equal(
550
+ expected.map { |i| NKF.nkf("--utf8", i) },
551
+ Difference.new(
552
+ array1.map { |i| NKF.nkf("--utf8", i) },
553
+ array2.map { |i| NKF.nkf("--utf8", i) },
554
+ ).to_view("UTF-8", nil).to_wdiff(nil, false),
555
+ )
556
+ end
557
+
558
+ def test_to_wdiff_change_ja
559
+ array1 = ["\u3042", "\u3044", "\u3046"]
560
+ array2 = ["\u3042", "\u6F22", "\u3046"]
561
+ expected = ["\u3042", "[-\u3044-]{+\u6F22+}", "\u3046"]
562
+ assert_equal(
563
+ expected.map { |i| NKF.nkf("--euc", i) },
564
+ Difference.new(
565
+ array1.map { |i| NKF.nkf("--euc", i) },
566
+ array2.map { |i| NKF.nkf("--euc", i) },
567
+ ).to_view("EUC-JP", nil).to_wdiff(nil, false),
568
+ )
569
+ assert_equal(
570
+ expected.map { |i| NKF.nkf("--sjis", i) },
571
+ Difference.new(
572
+ array1.map { |i| NKF.nkf("--sjis", i) },
573
+ array2.map { |i| NKF.nkf("--sjis", i) },
574
+ ).to_view("Shift_JIS", nil).to_wdiff(nil, false),
575
+ )
576
+ assert_equal(
577
+ expected.map { |i| NKF.nkf("--utf8", i) },
578
+ Difference.new(
579
+ array1.map { |i| NKF.nkf("--utf8", i) },
580
+ array2.map { |i| NKF.nkf("--utf8", i) },
581
+ ).to_view("UTF-8", nil).to_wdiff(nil, false),
582
+ )
583
+ end
584
+
585
+ def test_to_wdiff_digest
476
586
  array1 = ["a", "\n", "b", "c", "d", "e", "\n", "f", "\n"]
477
587
  array2 = ["c", "d", "X", "\n", "Y", "e", "\n", "F", "\n"]
478
- expected = ["----\n",
479
- "1-2,(1)\n[-a\nb-]cd\n----\n",
480
- "(2),1-2\ncd{+X\nY+}e\n\n----\n",
481
- "3,3\ne\n[-f-]{+F+}\n\n----\n"]
482
- assert_equal(expected, View.new(Difference.new(array1, array2), "US-ASCII", "LF").to_wdiff_digest(nil,false))
588
+ expected = [
589
+ "----\n",
590
+ "1-2,(1)\n[-a\nb-]cd\n----\n",
591
+ "(2),1-2\ncd{+X\nY+}e\n\n----\n",
592
+ "3,3\ne\n[-f-]{+F+}\n\n----\n",
593
+ ]
594
+ view = Difference.new(array1, array2).to_view("US-ASCII", "LF")
595
+ assert_equal(expected, view.to_wdiff_digest(nil, false))
483
596
  end
484
- def test_to_wdiff_digest_block()
597
+
598
+ def test_to_wdiff_digest_block
485
599
  array1 = ["a", "\n", "b", "c", "d", "e", "\n", "f", "\n"]
486
600
  array2 = ["c", "d", "X", "\n", "Y", "e", "\n", "F", "\n"]
487
- expected = ["----\n",
488
- "1-2,(1)\na\nbcd\n[-a\nb-]cd\n----\n",
489
- "(2),1-2\ncde\n\ncd{+X\nY+}e\n\n----\n",
490
- "3,3\ne\n[-f-]\n\ne\n{+F+}\n\n----\n"]
491
- assert_equal(expected, View.new(Difference.new(array1, array2), "US-ASCII", "LF").to_wdiff_digest({:display => 'block'}, false))
492
- end
493
-
494
- def test_to_user_del_add_en()
495
- array1 = ['a', 'b', 'c']
496
- array2 = ['b', 'c', 'c']
497
- difference = Difference.new(array1, array2)
498
- user_tags = {:start_common => '<=>',
499
- :end_common => '</=>',
500
- :start_del => '<->',
501
- :end_del => '</->',
502
- :start_add => '<+>',
503
- :end_add => '</+>',
504
- :start_before_change => '<!->',
505
- :end_before_change => '</!->',
506
- :start_after_change => '<!+>',
507
- :end_after_change => '</!+>'}
508
- expected = ['<->a</->',
509
- '<=>b</=>',
510
- '<+>c</+>',
511
- '<=>c</=>']
512
- assert_equal(expected, View.new(difference, "US-ASCII", nil).to_user(user_tags, false))
513
- end
514
- def test_to_user_change_en()
515
- array1 = ['a', 'b', 'c']
516
- array2 = ['a', 'x', 'c']
517
- difference = Difference.new(array1, array2)
518
- user_tags = {:start_common => '<=>',
519
- :end_common => '</=>',
520
- :start_del => '<->',
521
- :end_del => '</->',
522
- :start_add => '<+>',
523
- :end_add => '</+>',
524
- :start_before_change => '<!->',
525
- :end_before_change => '</!->',
526
- :start_after_change => '<!+>',
527
- :end_after_change => '</!+>'}
528
- expected = ['<=>a</=>',
529
- '<!->b</!-><!+>x</!+>',
530
- '<=>c</=>']
531
- assert_equal(expected, View.new(difference, "US-ASCII", nil).to_user(user_tags, false))
532
- end
533
- def test_to_user_digest()
601
+ expected = [
602
+ "----\n",
603
+ "1-2,(1)\na\nbcd\n[-a\nb-]cd\n----\n",
604
+ "(2),1-2\ncde\n\ncd{+X\nY+}e\n\n----\n",
605
+ "3,3\ne\n[-f-]\n\ne\n{+F+}\n\n----\n",
606
+ ]
607
+ view = Difference.new(array1, array2).to_view("US-ASCII", "LF")
608
+ assert_equal(expected, view.to_wdiff_digest({ display: "block" }, false))
609
+ end
610
+
611
+ def test_to_user_del_add_en
612
+ array1 = ["a", "b", "c"]
613
+ array2 = ["b", "c", "c"]
614
+ user_tags = {
615
+ start_common: "<=>",
616
+ end_common: "</=>",
617
+ start_del: "<->",
618
+ end_del: "</->",
619
+ start_add: "<+>",
620
+ end_add: "</+>",
621
+ start_before_change: "<!->",
622
+ end_before_change: "</!->",
623
+ start_after_change: "<!+>",
624
+ end_after_change: "</!+>",
625
+ }
626
+ expected = [
627
+ "<->a</->",
628
+ "<=>b</=>",
629
+ "<+>c</+>",
630
+ "<=>c</=>",
631
+ ]
632
+ view = Difference.new(array1, array2).to_view("US-ASCII", nil)
633
+ assert_equal(expected, view.to_user(user_tags, false))
634
+ end
635
+
636
+ def test_to_user_change_en
637
+ array1 = ["a", "b", "c"]
638
+ array2 = ["a", "x", "c"]
639
+ user_tags = {
640
+ start_common: "<=>",
641
+ end_common: "</=>",
642
+ start_del: "<->",
643
+ end_del: "</->",
644
+ start_add: "<+>",
645
+ end_add: "</+>",
646
+ start_before_change: "<!->",
647
+ end_before_change: "</!->",
648
+ start_after_change: "<!+>",
649
+ end_after_change: "</!+>",
650
+ }
651
+ expected = [
652
+ "<=>a</=>",
653
+ "<!->b</!-><!+>x</!+>",
654
+ "<=>c</=>",
655
+ ]
656
+ view = Difference.new(array1, array2).to_view("US-ASCII", nil)
657
+ assert_equal(expected, view.to_user(user_tags, false))
658
+ end
659
+
660
+ def test_to_user_digest
534
661
  array1 = ["a", "\n", "b", "c", "d", "e", "\n", "f", "\n"]
535
662
  array2 = ["c", "d", "X", "\n", "Y", "e", "\n", "F", "\n"]
536
- user_tags = {:start_common => '<=>',
537
- :end_common => '</=>',
538
- :start_del => '<->',
539
- :end_del => '</->',
540
- :start_add => '<+>',
541
- :end_add => '</+>',
542
- :start_before_change => '<!->',
543
- :end_before_change => '</!->',
544
- :start_after_change => '<!+>',
545
- :end_after_change => '</!+>'}
546
- expected = ["1-2,(1) <->a\nb</->cd\n",
547
- "(2),1-2 cd<+>X\nY</+>e\n\n",
548
- "3,3 e\n<!->f</!-><!+>F</!+>\n\n"]
549
- assert_equal(expected, View.new(Difference.new(array1, array2), "US-ASCII", "LF").to_user_digest(user_tags, false))
550
- end
551
- def test_to_user_digest_block()
663
+ user_tags = {
664
+ start_common: "<=>",
665
+ end_common: "</=>",
666
+ start_del: "<->",
667
+ end_del: "</->",
668
+ start_add: "<+>",
669
+ end_add: "</+>",
670
+ start_before_change: "<!->",
671
+ end_before_change: "</!->",
672
+ start_after_change: "<!+>",
673
+ end_after_change: "</!+>",
674
+ }
675
+ expected = [
676
+ "1-2,(1) <->a\nb</->cd\n",
677
+ "(2),1-2 cd<+>X\nY</+>e\n\n",
678
+ "3,3 e\n<!->f</!-><!+>F</!+>\n\n",
679
+ ]
680
+ view = Difference.new(array1, array2).to_view("US-ASCII", "LF")
681
+ assert_equal(expected, view.to_user_digest(user_tags, false))
682
+ end
683
+
684
+ def test_to_user_digest_block
552
685
  array1 = ["a", "\n", "b", "c", "d", "e", "\n", "f", "\n"]
553
686
  array2 = ["c", "d", "X", "\n", "Y", "e", "\n", "F", "\n"]
554
- user_tags = {:start_common => '<=>',
555
- :end_common => '</=>',
556
- :start_del => '<->',
557
- :end_del => '</->',
558
- :start_add => '<+>',
559
- :end_add => '</+>',
560
- :start_before_change => '<!->',
561
- :end_before_change => '</!->',
562
- :start_after_change => '<!+>',
563
- :end_after_change => '</!+>',
564
- :display => 'block'}
565
- expected = ["1-2,(1) a\nbcd<->a\nb</->cd\n",
566
- "(2),1-2 cde\ncd<+>X\nY</+>e\n\n",
567
- "3,3 e\n<!->f</!->\ne\n<!+>F</!+>\n\n"]
568
- assert_equal(expected, View.new(Difference.new(array1, array2), "US-ASCII", "LF").to_user_digest(user_tags, false))
569
- end
570
-
571
- def test_difference_whole()
687
+ user_tags = {
688
+ start_common: "<=>",
689
+ end_common: "</=>",
690
+ start_del: "<->",
691
+ end_del: "</->",
692
+ start_add: "<+>",
693
+ end_add: "</+>",
694
+ start_before_change: "<!->",
695
+ end_before_change: "</!->",
696
+ start_after_change: "<!+>",
697
+ end_after_change: "</!+>",
698
+ display: "block",
699
+ }
700
+ expected = [
701
+ "1-2,(1) a\nbcd<->a\nb</->cd\n",
702
+ "(2),1-2 cde\ncd<+>X\nY</+>e\n\n",
703
+ "3,3 e\n<!->f</!->\ne\n<!+>F</!+>\n\n",
704
+ ]
705
+ view = Difference.new(array1, array2).to_view("US-ASCII", "LF")
706
+ assert_equal(expected, view.to_user_digest(user_tags, false))
707
+ end
708
+
709
+ def test_difference_whole
572
710
  array1 = ["a", "\n", "b", "c", "d", "e", "\n", "f", "\n"] # a \n b c d e \n f \n
573
711
  array2 = ["c", "d", "X", "\n", "Y", "e", "\n", "F", "\n"] # c d X \n Y e \n F \n
574
- expected = [[:del_elt, ["a", "\n", "b"], nil],
575
- [:common_elt_elt, ["c", "d"], ["c", "d"]],
576
- [:add_elt, nil, ["X", "\n", "Y"]],
577
- [:common_elt_elt, ["e", "\n"], ["e", "\n"]],
578
- [:change_elt, ["f"], ["F"]],
579
- [:common_elt_elt, ["\n"], ["\n"]]]
580
- assert_equal(expected, View.new(Difference.new(array1, array2), "US-ASCII", "LF").difference_whole)
712
+ expected = [
713
+ [:del_elt, ["a", "\n", "b"], nil],
714
+ [:common_elt_elt, ["c", "d"], ["c", "d"]],
715
+ [:add_elt, nil, ["X", "\n", "Y"]],
716
+ [:common_elt_elt, ["e", "\n"], ["e", "\n"]],
717
+ [:change_elt, ["f"], ["F"]],
718
+ [:common_elt_elt, ["\n"], ["\n"]],
719
+ ]
720
+ view = Difference.new(array1, array2).to_view("US-ASCII", "LF")
721
+ assert_equal(expected, view.difference_whole)
581
722
  end
582
723
 
583
- # def test_difference_digest()
584
- # array1 = ["a", "\n", "b", "c", "d", "e", "\n", "f", "\n"] # a \n b c d e \n f \n
585
- # array2 = ["c", "d", "X", "\n", "Y", "e", "\n", "F", "\n"] # c d X \n Y e \n F \n
586
- # expected = [
587
- # # something
588
- # ]
589
- # assert_equal(expected, View.new(Difference.new(array1, array2), "US-ASCII", "LF").difference_digest)
590
- # end
724
+ # def test_difference_digest()
725
+ # array1 = ["a", "\n", "b", "c", "d", "e", "\n", "f", "\n"] # a \n b c d e \n f \n
726
+ # array2 = ["c", "d", "X", "\n", "Y", "e", "\n", "F", "\n"] # c d X \n Y e \n F \n
727
+ # expected = [
728
+ # # something
729
+ # ]
730
+ # assert_equal(expected, View.new(Difference.new(array1, array2), "US-ASCII", "LF").difference_digest)
731
+ # end
591
732
 
592
- def teardown()
593
- #
733
+ def teardown
594
734
  end
595
-
596
735
  end